{"id":11149,"date":"2026-03-15T02:18:30","date_gmt":"2026-03-15T00:18:30","guid":{"rendered":"https:\/\/www.politouvasia.com\/ai-hair-extensions\/"},"modified":"2026-03-15T03:47:01","modified_gmt":"2026-03-15T01:47:01","slug":"ai-hair-extensions","status":"publish","type":"page","link":"https:\/\/www.politouvasia.com\/en\/ai-hair-extensions\/","title":{"rendered":"Ai hair extensions"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"11149\" class=\"elementor elementor-11149 elementor-11134\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-882a9f2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"882a9f2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b7102f9\" data-id=\"b7102f9\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5086a50 elementor-widget elementor-widget-html\" data-id=\"5086a50\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section id=\"pvaihp-white-en\" class=\"pvaihp-white-wrap\">\n  <style>\n    #pvaihp-white-en.pvaihp-white-wrap {\n      --pv-bg: #ffffff;\n      --pv-bg-soft: #f8f8f8;\n      --pv-card: #ffffff;\n      --pv-line: #d9d9d9;\n      --pv-line-soft: #ececec;\n      --pv-text: #1f1f1f;\n      --pv-muted: #6f6f6f;\n      --pv-accent: #444444;\n      --pv-accent-soft: #efefef;\n      --pv-success-bg: #eef7ef;\n      --pv-success-text: #21512c;\n      --pv-error-bg: #fff1f1;\n      --pv-error-text: #8a2f2f;\n      max-width: 1180px;\n      margin: 42px auto;\n      padding: 0 16px;\n      font-family: Inter, Arial, sans-serif;\n      color: var(--pv-text);\n    }\n\n    #pvaihp-white-en * { box-sizing: border-box; }\n\n    #pvaihp-white-en .pv-shell {\n      display: grid;\n      grid-template-columns: 1.05fr 0.95fr;\n      gap: 22px;\n      align-items: start;\n    }\n\n    #pvaihp-white-en .pv-card {\n      background: var(--pv-card);\n      border: 1px solid var(--pv-line);\n      border-radius: 24px;\n      overflow: hidden;\n      box-shadow: 0 8px 24px rgba(0,0,0,0.04);\n    }\n\n    #pvaihp-white-en .pv-hero {\n      padding: 34px;\n      border-bottom: 1px solid var(--pv-line-soft);\n      background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%);\n    }\n\n    #pvaihp-white-en .pv-kicker {\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      padding: 7px 12px;\n      border-radius: 999px;\n      background: #f4f4f4;\n      border: 1px solid var(--pv-line);\n      color: #555;\n      font-size: 12px;\n      letter-spacing: .08em;\n      text-transform: uppercase;\n      font-weight: 700;\n      margin-bottom: 16px;\n    }\n\n    #pvaihp-white-en h2 {\n      margin: 0 0 12px;\n      font-size: clamp(30px, 4vw, 46px);\n      line-height: 1.04;\n      letter-spacing: -.03em;\n      color: #1f1f1f;\n    }\n\n    #pvaihp-white-en .pv-sub {\n      margin: 0 0 18px;\n      color: var(--pv-muted);\n      font-size: 16px;\n      line-height: 1.8;\n      max-width: 58ch;\n    }\n\n    #pvaihp-white-en .pv-points {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 10px;\n      list-style: none;\n      padding: 0;\n      margin: 0;\n    }\n\n    #pvaihp-white-en .pv-points li {\n      padding: 10px 14px;\n      border-radius: 999px;\n      background: #fff;\n      border: 1px solid var(--pv-line);\n      color: #555;\n      font-size: 13px;\n    }\n\n    #pvaihp-white-en .pv-body {\n      padding: 28px;\n    }\n\n    #pvaihp-white-en .pv-form-head {\n      margin-bottom: 18px;\n    }\n\n    #pvaihp-white-en .pv-form-head h3 {\n      margin: 0 0 8px;\n      font-size: 24px;\n      letter-spacing: -.02em;\n      color: #1f1f1f;\n    }\n\n    #pvaihp-white-en .pv-form-head p {\n      margin: 0;\n      color: var(--pv-muted);\n      line-height: 1.7;\n      font-size: 14px;\n    }\n\n    #pvaihp-white-en form {\n      margin: 0;\n    }\n\n    #pvaihp-white-en .pv-grid {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 14px;\n      margin-bottom: 14px;\n    }\n\n    #pvaihp-white-en .pv-field,\n    #pvaihp-white-en .pv-field-full {\n      display: flex;\n      flex-direction: column;\n      gap: 8px;\n    }\n\n    #pvaihp-white-en .pv-field-full { margin-bottom: 14px; }\n\n    #pvaihp-white-en label {\n      font-size: 13px;\n      font-weight: 700;\n      color: #2b2b2b;\n    }\n\n    #pvaihp-white-en input,\n    #pvaihp-white-en select,\n    #pvaihp-white-en textarea {\n      width: 100%;\n      padding: 14px 14px;\n      border-radius: 14px;\n      border: 1px solid var(--pv-line);\n      background: #fff;\n      color: var(--pv-text);\n      font-size: 15px;\n      outline: none;\n      transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;\n      appearance: none;\n    }\n\n    #pvaihp-white-en input::placeholder,\n    #pvaihp-white-en textarea::placeholder {\n      color: #8b8b8b;\n    }\n\n    #pvaihp-white-en input:focus,\n    #pvaihp-white-en select:focus,\n    #pvaihp-white-en textarea:focus {\n      border-color: #9e9e9e;\n      box-shadow: 0 0 0 4px rgba(0,0,0,0.05);\n      background: #fff;\n    }\n\n    #pvaihp-white-en textarea {\n      min-height: 110px;\n      resize: vertical;\n    }\n\n    #pvaihp-white-en .pv-photo-actions {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 10px;\n      margin-bottom: 14px;\n    }\n\n    #pvaihp-white-en .pv-photo-btn {\n      appearance: none;\n      border: 1px solid #2c2c2c;\n      background: #2c2c2c;\n      color: #fff;\n      border-radius: 999px;\n      padding: 13px 18px;\n      font-size: 14px;\n      font-weight: 700;\n      cursor: pointer;\n      transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;\n    }\n\n    #pvaihp-white-en .pv-photo-btn:hover {\n      transform: translateY(-1px);\n      background: #1f1f1f;\n      border-color: #1f1f1f;\n    }\n\n    #pvaihp-white-en .pv-photo-btn-secondary {\n      background: #fff;\n      color: #2c2c2c;\n      border-color: #cfcfcf;\n    }\n\n    #pvaihp-white-en .pv-photo-btn-secondary:hover {\n      background: #f7f7f7;\n      color: #1f1f1f;\n      border-color: #9e9e9e;\n    }\n\n    #pvaihp-white-en .pv-upload-info {\n      border: 1.5px dashed #bdbdbd;\n      border-radius: 18px;\n      padding: 20px;\n      background: #fafafa;\n    }\n\n    #pvaihp-white-en .pv-upload-info .pv-upload-title {\n      display: block;\n      font-size: 16px;\n      font-weight: 700;\n      margin-bottom: 8px;\n      color: #222;\n    }\n\n    #pvaihp-white-en .pv-upload-info .pv-upload-note {\n      display: block;\n      font-size: 13px;\n      line-height: 1.7;\n      color: var(--pv-muted);\n      max-width: 48ch;\n    }\n\n    #pvaihp-white-en .pv-file {\n      display: none;\n      margin-top: 10px;\n      padding: 8px 12px;\n      border-radius: 999px;\n      background: #f1f1f1;\n      border: 1px solid var(--pv-line);\n      font-size: 12px;\n      color: #444;\n    }\n\n    #pvaihp-white-en .pv-consents {\n      display: grid;\n      gap: 10px;\n      margin: 16px 0;\n    }\n\n    #pvaihp-white-en .pv-check {\n      display: flex;\n      gap: 10px;\n      align-items: flex-start;\n      padding: 12px 14px;\n      border-radius: 14px;\n      background: #fafafa;\n      border: 1px solid var(--pv-line-soft);\n    }\n\n    #pvaihp-white-en .pv-check input {\n      width: 18px;\n      height: 18px;\n      margin-top: 2px;\n      flex: 0 0 18px;\n      accent-color: #444;\n    }\n\n    #pvaihp-white-en .pv-check span {\n      display: block;\n      color: var(--pv-muted);\n      font-size: 13px;\n      line-height: 1.65;\n    }\n\n    #pvaihp-white-en .pv-actions {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 14px;\n      align-items: center;\n      margin-top: 18px;\n    }\n\n    #pvaihp-white-en .pv-btn {\n      border: 0;\n      border-radius: 999px;\n      padding: 15px 24px;\n      background: #2c2c2c;\n      color: #fff;\n      font-size: 15px;\n      font-weight: 800;\n      cursor: pointer;\n      transition: transform .2s ease, opacity .2s ease, background .2s ease;\n    }\n\n    #pvaihp-white-en .pv-btn:hover { transform: translateY(-1px); background: #1f1f1f; }\n    #pvaihp-white-en .pv-btn:disabled { opacity: .65; cursor: not-allowed; transform: none; }\n\n    #pvaihp-white-en .pv-mini {\n      max-width: 42ch;\n      color: var(--pv-muted);\n      font-size: 12px;\n      line-height: 1.7;\n    }\n\n    #pvaihp-white-en .pv-loading {\n      display: none;\n      align-items: center;\n      gap: 12px;\n      margin-top: 16px;\n      padding: 14px 16px;\n      border-radius: 16px;\n      background: #f7f7f7;\n      border: 1px solid var(--pv-line);\n      font-size: 14px;\n      color: #333;\n    }\n\n    #pvaihp-white-en .pv-loading.is-visible { display: flex; }\n\n    #pvaihp-white-en .pv-spinner {\n      width: 18px;\n      height: 18px;\n      border-radius: 999px;\n      border: 2px solid rgba(0,0,0,0.12);\n      border-top-color: #222;\n      animation: pvspinwhiteen .8s linear infinite;\n      flex: 0 0 18px;\n    }\n\n    @keyframes pvspinwhiteen { to { transform: rotate(360deg); } }\n\n    #pvaihp-white-en .pv-status {\n      display: none;\n      margin-top: 16px;\n      padding: 14px 16px;\n      border-radius: 16px;\n      font-size: 14px;\n      line-height: 1.6;\n    }\n\n    #pvaihp-white-en .pv-status.is-success {\n      display: block;\n      background: var(--pv-success-bg);\n      color: var(--pv-success-text);\n      border: 1px solid #d8e7da;\n    }\n\n    #pvaihp-white-en .pv-status.is-error {\n      display: block;\n      background: var(--pv-error-bg);\n      color: var(--pv-error-text);\n      border: 1px solid #f0d4d4;\n    }\n\n    #pvaihp-white-en .pv-result {\n      display: none;\n      margin-top: 20px;\n      padding-top: 20px;\n      border-top: 1px solid var(--pv-line-soft);\n    }\n\n    #pvaihp-white-en .pv-result.is-visible { display: block; }\n\n    #pvaihp-white-en .pv-result-grid {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 14px;\n    }\n\n    #pvaihp-white-en .pv-shot {\n      border-radius: 18px;\n      overflow: hidden;\n      border: 1px solid var(--pv-line);\n      background: #fff;\n    }\n\n    #pvaihp-white-en .pv-shot-head {\n      padding: 12px 14px;\n      border-bottom: 1px solid var(--pv-line-soft);\n      font-size: 12px;\n      font-weight: 700;\n      letter-spacing: .08em;\n      text-transform: uppercase;\n      color: #5d5d5d;\n      background: #fafafa;\n    }\n\n    #pvaihp-white-en .pv-shot img {\n      display: block;\n      width: 100%;\n      aspect-ratio: 4 \/ 5;\n      object-fit: cover;\n      background: #f0f0f0;\n    }\n\n    #pvaihp-white-en .pv-side {\n      padding: 24px;\n      display: grid;\n      gap: 18px;\n      background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%);\n    }\n\n    #pvaihp-white-en .pv-mockup {\n      border-radius: 20px;\n      overflow: hidden;\n      border: 1px solid var(--pv-line);\n      background: #fff;\n    }\n\n    #pvaihp-white-en .pv-mockup img {\n      display: block;\n      width: 100%;\n      height: auto;\n    }\n\n    #pvaihp-white-en .pv-box {\n      padding: 18px;\n      border-radius: 20px;\n      border: 1px solid var(--pv-line);\n      background: #fff;\n    }\n\n    #pvaihp-white-en .pv-box h4 {\n      margin: 0 0 10px;\n      font-size: 16px;\n      color: #242424;\n    }\n\n    #pvaihp-white-en .pv-box p,\n    #pvaihp-white-en .pv-box li {\n      margin: 0;\n      color: var(--pv-muted);\n      font-size: 14px;\n      line-height: 1.7;\n    }\n\n    #pvaihp-white-en .pv-list {\n      margin: 0;\n      padding-left: 18px;\n      display: grid;\n      gap: 6px;\n    }\n\n    #pvaihp-white-en .pv-hidden {\n      position: absolute !important;\n      left: -9999px !important;\n      opacity: 0 !important;\n      pointer-events: none !important;\n    }\n\n    @media (max-width: 980px) {\n      #pvaihp-white-en .pv-shell { grid-template-columns: 1fr; }\n    }\n\n    @media (max-width: 640px) {\n      #pvaihp-white-en .pv-hero,\n      #pvaihp-white-en .pv-body,\n      #pvaihp-white-en .pv-side { padding: 22px; }\n\n      #pvaihp-white-en .pv-grid,\n      #pvaihp-white-en .pv-result-grid { grid-template-columns: 1fr; }\n\n      #pvaihp-white-en .pv-actions { flex-direction: column; align-items: stretch; }\n      #pvaihp-white-en .pv-btn,\n      #pvaihp-white-en .pv-photo-btn { width: 100%; }\n    }\n  <\/style>\n\n  <div class=\"pv-shell\">\n    <div class=\"pv-card\">\n      <div class=\"pv-hero\">\n        <span class=\"pv-kicker\">AI Hair Preview<\/span>\n        <h2>See a clean preview of your future hair extensions<\/h2>\n        <p class=\"pv-sub\">\n          Upload a clear selfie, choose your ideal length and tone, and get an indicative AI preview before booking your consultation.\n        <\/p>\n        <ul class=\"pv-points\">\n          <li>AI hair extensions preview<\/li>\n          <li>Nano \/ Micro Rings<\/li>\n          <li>40\u201370cm length<\/li>\n        <\/ul>\n      <\/div>\n\n      <div class=\"pv-body\">\n        <div class=\"pv-form-head\">\n          <h3>Upload your photo<\/h3>\n          <p>For a better result, use a front-facing photo with good lighting and no filters.<\/p>\n        <\/div>\n\n        <form id=\"pv-form-white-en\" novalidate>\n          <div class=\"pv-grid\">\n            <div class=\"pv-field\">\n              <label for=\"pvwe-first-name\">First name<\/label>\n              <input id=\"pvwe-first-name\" name=\"first_name\" type=\"text\" placeholder=\"Your first name\" required>\n            <\/div>\n            <div class=\"pv-field\">\n              <label for=\"pvwe-last-name\">Last name<\/label>\n              <input id=\"pvwe-last-name\" name=\"last_name\" type=\"text\" placeholder=\"Your last name\" required>\n            <\/div>\n          <\/div>\n\n          <div class=\"pv-grid\">\n            <div class=\"pv-field\">\n              <label for=\"pvwe-email\">Email<\/label>\n              <input id=\"pvwe-email\" name=\"email\" type=\"email\" placeholder=\"Your email\" required>\n            <\/div>\n            <div class=\"pv-field\">\n              <label for=\"pvwe-phone\">Phone<\/label>\n              <input id=\"pvwe-phone\" name=\"phone\" type=\"text\" placeholder=\"Your phone\">\n            <\/div>\n          <\/div>\n\n          <div class=\"pv-grid\">\n            <div class=\"pv-field\">\n              <label for=\"pvwe-city\">City<\/label>\n              <select id=\"pvwe-city\" name=\"city\">\n                <option value=\"\">Select city<\/option>\n                <option value=\"Athens\">Athens<\/option>\n                <option value=\"Thessaloniki\">Thessaloniki<\/option>\n                <option value=\"Other\">Other<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"pv-field\">\n              <label for=\"pvwe-method\">Method<\/label>\n              <select id=\"pvwe-method\" name=\"method\">\n                <option value=\"nano rings\">Nano Rings<\/option>\n                <option value=\"micro rings\">Micro Rings<\/option>\n                <option value=\"consultation suggestion\">I need a recommendation<\/option>\n              <\/select>\n            <\/div>\n          <\/div>\n\n          <div class=\"pv-grid\">\n            <div class=\"pv-field\">\n              <label for=\"pvwe-length\">Length<\/label>\n              <select id=\"pvwe-length\" name=\"length_cm\">\n                <option value=\"40\">40 cm<\/option>\n                <option value=\"50\">50 cm<\/option>\n                <option value=\"60\">60 cm<\/option>\n                <option value=\"70\">70 cm<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"pv-field\">\n              <label for=\"pvwe-color-family\">Tone<\/label>\n              <select id=\"pvwe-color-family\" name=\"color_family\">\n                <option value=\"\">Select tone<\/option>\n                <option value=\"black\">Black<\/option>\n                <option value=\"dark brown\">Dark Brown<\/option>\n                <option value=\"brown\">Brown<\/option>\n                <option value=\"dark blonde\">Dark Blonde<\/option>\n                <option value=\"blonde\">Blonde<\/option>\n                <option value=\"mixed\">Mixed<\/option>\n                <option value=\"balayage\">Balayage<\/option>\n              <\/select>\n            <\/div>\n          <\/div>\n\n          <div class=\"pv-grid\">\n            <div class=\"pv-field\">\n              <label for=\"pvwe-texture\">Texture<\/label>\n              <select id=\"pvwe-texture\" name=\"texture\">\n                <option value=\"straight\">Straight<\/option>\n                <option value=\"soft wave\">Soft Wavy<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"pv-field\">\n              <label for=\"pvwe-finish\">Style<\/label>\n              <select id=\"pvwe-finish\" name=\"finish\">\n                <option value=\"natural\">Natural<\/option>\n                <option value=\"glam\">Glam<\/option>\n                <option value=\"dramatic\">Extra Glam<\/option>\n              <\/select>\n            <\/div>\n          <\/div>\n\n          <div class=\"pv-field-full\">\n            <label for=\"pvwe-color-code\">Shade \/ Blend<\/label>\n            <input id=\"pvwe-color-code\" name=\"color_code\" type=\"text\" placeholder=\"e.g. 18\/60 or custom blend\">\n          <\/div>\n\n          <div class=\"pv-field-full\">\n            <label for=\"pvwe-notes\">Notes<\/label>\n            <textarea id=\"pvwe-notes\" name=\"hair_notes\" placeholder=\"Tell me what result you would like.\"><\/textarea>\n          <\/div>\n\n          <div class=\"pv-field-full\">\n            <label>Photo<\/label>\n\n            <div class=\"pv-photo-actions\">\n              <button type=\"button\" class=\"pv-photo-btn\" id=\"pvwe-open-selfie\">Take Selfie<\/button>\n              <button type=\"button\" class=\"pv-photo-btn pv-photo-btn-secondary\" id=\"pvwe-open-upload\">Upload Photo<\/button>\n            <\/div>\n\n            <div class=\"pv-upload-info\">\n              <span class=\"pv-upload-title\">Choose how to send your photo<\/span>\n              <span class=\"pv-upload-note\">\n                On some phones, the selfie option may open the front camera directly. On others, it may show a camera \/ photos chooser depending on the device and browser.\n              <\/span>\n              <span class=\"pv-file\" id=\"pvwe-file-name\"><\/span>\n            <\/div>\n\n            <input id=\"pvwe-photo-selfie\" type=\"file\" accept=\"image\/*\" capture=\"user\" class=\"pv-hidden\">\n            <input id=\"pvwe-photo-upload\" type=\"file\" accept=\"image\/*\" class=\"pv-hidden\">\n          <\/div>\n\n          <div class=\"pv-consents\">\n            <label class=\"pv-check\">\n              <input type=\"checkbox\" name=\"consent_privacy\" value=\"1\" required>\n              <span>I accept the privacy policy and the use of my details for communication regarding the service.<\/span>\n            <\/label>\n            <label class=\"pv-check\">\n              <input type=\"checkbox\" name=\"consent_ai_preview\" value=\"1\" required>\n              <span>I agree to the use of my photo for an indicative AI preview.<\/span>\n            <\/label>\n          <\/div>\n\n          <input type=\"hidden\" name=\"language\" value=\"en\">\n          <input type=\"hidden\" name=\"form_token\" value=\"\">\n          <input type=\"hidden\" name=\"public_token\" value=\"\">\n          <input type=\"hidden\" name=\"public_sig\" value=\"\">\n          <input type=\"hidden\" name=\"photo_source\" value=\"\">\n          <input type=\"text\" name=\"company\" value=\"\" class=\"pv-hidden\" tabindex=\"-1\" autocomplete=\"off\">\n\n          <div class=\"pv-actions\">\n            <button type=\"submit\" class=\"pv-btn\" id=\"pvwe-submit-btn\">Generate preview<\/button>\n            <div class=\"pv-mini\">This preview is indicative and helps visualize the possible final result.<\/div>\n          <\/div>\n\n          <div class=\"pv-loading\" id=\"pvwe-loading\">\n            <span class=\"pv-spinner\"><\/span>\n            <span>Your photo is being processed. Please wait a few seconds\u2026<\/span>\n          <\/div>\n\n          <div class=\"pv-status\" id=\"pvwe-status\"><\/div>\n\n          <div class=\"pv-result\" id=\"pvwe-result\">\n            <div class=\"pv-result-grid\">\n              <div class=\"pv-shot\">\n                <div class=\"pv-shot-head\">Your photo<\/div>\n                <img decoding=\"async\" id=\"pvwe-original-img\" src=\"\" alt=\"Original photo\">\n              <\/div>\n              <div class=\"pv-shot\">\n                <div class=\"pv-shot-head\">AI Preview<\/div>\n                <img decoding=\"async\" id=\"pvwe-preview-img\" src=\"\" alt=\"AI preview\">\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/form>\n      <\/div>\n    <\/div>\n\n    <aside class=\"pv-card\">\n      <div class=\"pv-side\">\n        <div class=\"pv-mockup\">\n          <img decoding=\"async\" src=\"https:\/\/www.politouvasia.com\/wp-content\/uploads\/2026\/03\/a_promotional_digital_digital_photograph_composite.png\" alt=\"AI Hair Extensions Preview Mockup\">\n        <\/div>\n\n        <div class=\"pv-box\">\n          <h4>How it works<\/h4>\n          <ul class=\"pv-list\">\n            <li>Upload one selfie or an existing photo.<\/li>\n            <li>Choose length, tone and style.<\/li>\n            <li>Receive an AI hair extensions preview image.<\/li>\n          <\/ul>\n        <\/div>\n\n        <div class=\"pv-box\">\n          <h4>Important note<\/h4>\n          <p>The preview is indicative. The final result depends on your natural hair length, density and overall hair condition.<\/p>\n        <\/div>\n      <\/div>\n    <\/aside>\n  <\/div>\n\n  <script>\n    (function () {\n      const form = document.getElementById('pv-form-white-en');\n\n      const selfieInput = document.getElementById('pvwe-photo-selfie');\n      const uploadInput = document.getElementById('pvwe-photo-upload');\n      const openSelfieBtn = document.getElementById('pvwe-open-selfie');\n      const openUploadBtn = document.getElementById('pvwe-open-upload');\n\n      const fileName = document.getElementById('pvwe-file-name');\n      const loading = document.getElementById('pvwe-loading');\n      const statusBox = document.getElementById('pvwe-status');\n      const resultBox = document.getElementById('pvwe-result');\n      const originalImg = document.getElementById('pvwe-original-img');\n      const previewImg = document.getElementById('pvwe-preview-img');\n      const submitBtn = document.getElementById('pvwe-submit-btn');\n      const photoSourceInput = form.querySelector('input[name=\"photo_source\"]');\n\n      const cfg = window.PVAIHP_PUBLIC || {};\n      const endpoint = cfg.endpoint || (window.location.origin.replace(\/\\\/$\/, '') + '\/wp-json\/pv-ai\/v1\/preview');\n\n      const formToken = form.querySelector('input[name=\"form_token\"]');\n      const publicToken = form.querySelector('input[name=\"public_token\"]');\n      const publicSig = form.querySelector('input[name=\"public_sig\"]');\n\n      if (formToken && cfg.formToken) formToken.value = cfg.formToken;\n      if (publicToken && cfg.publicToken) publicToken.value = cfg.publicToken;\n      if (publicSig && cfg.publicSig) publicSig.value = cfg.publicSig;\n\n      let selectedFile = null;\n\n      function showStatus(message, type) {\n        statusBox.className = 'pv-status ' + (type === 'error' ? 'is-error' : 'is-success');\n        statusBox.textContent = message;\n      }\n\n      function clearStatus() {\n        statusBox.className = 'pv-status';\n        statusBox.textContent = '';\n      }\n\n      function updatePreviewFromFile(file, source) {\n        if (!file) return;\n\n        selectedFile = file;\n        if (photoSourceInput) photoSourceInput.value = source || '';\n\n        fileName.textContent = file.name;\n        fileName.style.display = 'inline-flex';\n\n        const reader = new FileReader();\n        reader.onload = function (e) {\n          originalImg.src = e.target.result;\n        };\n        reader.readAsDataURL(file);\n      }\n\n      openSelfieBtn.addEventListener('click', function () {\n        selfieInput.click();\n      });\n\n      openUploadBtn.addEventListener('click', function () {\n        uploadInput.click();\n      });\n\n      selfieInput.addEventListener('change', function () {\n        const file = this.files && this.files[0];\n        if (file) updatePreviewFromFile(file, 'selfie');\n      });\n\n      uploadInput.addEventListener('change', function () {\n        const file = this.files && this.files[0];\n        if (file) updatePreviewFromFile(file, 'upload');\n      });\n\n      form.addEventListener('submit', async function (e) {\n        e.preventDefault();\n        clearStatus();\n        resultBox.classList.remove('is-visible');\n\n        if (!selectedFile) {\n          showStatus('Please choose a selfie or upload a photo first.', 'error');\n          return;\n        }\n\n        const formData = new FormData(form);\n        formData.append('photo', selectedFile);\n\n        loading.classList.add('is-visible');\n        submitBtn.disabled = true;\n\n        try {\n          const response = await fetch(endpoint, {\n            method: 'POST',\n            body: formData,\n            credentials: 'same-origin'\n          });\n\n          const data = await response.json().catch(() => ({}));\n\n          if (!response.ok) {\n            throw new Error(data.message || data.error || 'Something went wrong while generating the preview.');\n          }\n\n          if (data.original_url) originalImg.src = data.original_url;\n\n          if (data.preview_url) {\n            previewImg.src = data.preview_url;\n            resultBox.classList.add('is-visible');\n          }\n\n          showStatus('Your preview was generated successfully.', 'success');\n        } catch (error) {\n          showStatus(error.message || 'An error occurred. Please try again later.', 'error');\n        } finally {\n          loading.classList.remove('is-visible');\n          submitBtn.disabled = false;\n        }\n      });\n    })();\n  <\/script>\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>AI Hair Preview See a clean preview of your future hair extensions Upload a clear selfie, choose your ideal length and tone, and get an indicative AI preview before booking your consultation. AI hair extensions preview Nano \/ Micro Rings 40\u201370cm length Upload your photo For a better result, use a front-facing photo with good [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":11144,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-11149","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.politouvasia.com\/en\/wp-json\/wp\/v2\/pages\/11149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.politouvasia.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.politouvasia.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.politouvasia.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.politouvasia.com\/en\/wp-json\/wp\/v2\/comments?post=11149"}],"version-history":[{"count":8,"href":"https:\/\/www.politouvasia.com\/en\/wp-json\/wp\/v2\/pages\/11149\/revisions"}],"predecessor-version":[{"id":11178,"href":"https:\/\/www.politouvasia.com\/en\/wp-json\/wp\/v2\/pages\/11149\/revisions\/11178"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.politouvasia.com\/en\/wp-json\/wp\/v2\/media\/11144"}],"wp:attachment":[{"href":"https:\/\/www.politouvasia.com\/en\/wp-json\/wp\/v2\/media?parent=11149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}