{"id":15159,"date":"2026-05-02T13:58:23","date_gmt":"2026-05-02T13:58:23","guid":{"rendered":"https:\/\/vocgems.com\/?page_id=15159"},"modified":"2026-07-13T14:56:45","modified_gmt":"2026-07-13T14:56:45","slug":"%d0%b2%d0%be%d0%b9%d1%82%d0%b8","status":"publish","type":"page","link":"https:\/\/vocgems.com\/ru\/login\/","title":{"rendered":"\u0432\u043e\u0439\u0442\u0438"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15159\" class=\"elementor elementor-15159\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f8657b0 e-flex e-con-boxed e-con e-parent\" data-id=\"f8657b0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9fce916 elementor-widget elementor-widget-html\" data-id=\"9fce916\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n    .elementor-widget-html { width: 100vw !important; max-width: 100vw !important; margin-left: calc(-50vw + 50%) !important; margin-right: calc(-50vw + 50%) !important; }\n\n    :root {\n        --primary: #45BDB0;\n        --primary-light: #E5F8F6;\n        --accent: #3AA89C;\n        --orange: #C9A86C;\n        --white: #FFFFFF;\n        --off-white: #FAFAF8;\n        --black: #1A1A1A;\n        --gray: #666666;\n        --light-gray: #E5E5E5;\n        --red: #E53935;\n    }\n\n    .voc-login * { margin: 0; padding: 0; box-sizing: border-box; }\n    .voc-login {\n        font-family: 'DM Sans', sans-serif;\n        background: var(--off-white);\n        color: var(--black);\n        min-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        padding: clamp(40px, 5vw, 80px) clamp(16px, 4vw, 40px);\n    }\n    .voc-login h1, .voc-login h2, .voc-login h3 { font-family: 'Playfair Display', serif; font-weight: 400; }\n    .voc-login a { text-decoration: none; color: inherit; }\n\n    .voc-login-card {\n        background: var(--white);\n        border-radius: 20px;\n        padding: clamp(32px, 4vw, 56px);\n        width: 100%;\n        max-width: 480px;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.08);\n    }\n    .voc-login-logo {\n        text-align: center;\n        margin-bottom: 28px;\n    }\n    .voc-login-logo img { height: 44px; }\n    .voc-login-title {\n        font-size: clamp(24px, 2.5vw, 32px);\n        text-align: center;\n        margin-bottom: 32px;\n        color: var(--black);\n    }\n\n    \/* Quick access block *\/\n    .voc-login-block {\n        background: var(--off-white);\n        border-radius: 14px;\n        padding: 22px;\n        margin-bottom: 20px;\n        border: 1px solid var(--light-gray);\n    }\n    .voc-login-block-title {\n        font-size: 13px;\n        font-weight: 600;\n        letter-spacing: 0.8px;\n        text-transform: uppercase;\n        color: var(--gray);\n        margin-bottom: 16px;\n    }\n    .voc-login-field { margin-bottom: 14px; }\n    .voc-login-field label {\n        display: block;\n        font-size: 11px;\n        font-weight: 600;\n        letter-spacing: 1px;\n        text-transform: uppercase;\n        color: #aaa;\n        margin-bottom: 6px;\n    }\n    .voc-login-field input {\n        width: 100%;\n        padding: 12px 14px;\n        border: 1.5px solid var(--light-gray);\n        border-radius: 10px;\n        font-family: 'DM Sans', sans-serif;\n        font-size: 15px;\n        color: var(--black);\n        outline: none;\n        transition: border-color 0.2s;\n        background: var(--white);\n    }\n    .voc-login-field input:focus { border-color: var(--primary); }\n    .voc-login-btn {\n        width: 100%;\n        padding: 13px;\n        background: var(--primary);\n        color: #fff;\n        border: none;\n        border-radius: 50px;\n        font-family: 'DM Sans', sans-serif;\n        font-size: 15px;\n        font-weight: 600;\n        cursor: pointer;\n        transition: background 0.2s;\n    }\n    .voc-login-btn:hover { background: var(--accent); }\n    .voc-login-btn:disabled { opacity: 0.6; cursor: default; }\n    .voc-login-btn.orange { background: var(--orange); }\n    .voc-login-btn.orange:hover { background: #b8954f; }\n\n    .voc-login-hint {\n        font-size: 12px;\n        color: #aaa;\n        text-align: center;\n        margin-top: 10px;\n        line-height: 1.5;\n    }\n\n    \/* Divider *\/\n    .voc-login-or {\n        display: flex;\n        align-items: center;\n        gap: 12px;\n        margin: 4px 0;\n        color: #ccc;\n        font-size: 13px;\n    }\n    .voc-login-or::before, .voc-login-or::after {\n        content: '';\n        flex: 1;\n        height: 1px;\n        background: var(--light-gray);\n    }\n\n    \/* Message *\/\n    .voc-login-msg {\n        padding: 12px 16px;\n        border-radius: 10px;\n        font-size: 14px;\n        margin-bottom: 16px;\n        display: none;\n        line-height: 1.5;\n    }\n    .voc-login-msg.success { background: #E8F5E9; color: #2E7D32; display: block; }\n    .voc-login-msg.error   { background: #FFEBEE; color: #C62828; display: block; }\n    .voc-login-msg.info    { background: var(--primary-light); color: var(--accent); display: block; }\n\n    \/* Error from URL *\/\n    .voc-login-url-error {\n        background: #FFF3E0;\n        border-radius: 10px;\n        padding: 12px 16px;\n        margin-bottom: 20px;\n        font-size: 14px;\n        color: #E65100;\n        text-align: center;\n    }\n\n    \/* Lost access link *\/\n    .voc-login-lost {\n        text-align: center;\n        margin-top: 24px;\n        font-size: 13px;\n        color: var(--gray);\n    }\n    .voc-login-lost a { color: var(--primary); text-decoration: underline; }\n\n    @media (max-width: 520px) {\n        .voc-login { padding: 24px 12px; align-items: flex-start; padding-top: 40px; }\n        .voc-login-card { padding: 24px 20px; border-radius: 16px; }\n    }\n<\/style>\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:wght@400;500&family=DM+Sans:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n\n<div class=\"voc-login\">\n    <div class=\"voc-login-card\">\n\n        <div class=\"voc-login-logo\">\n            <a href=\"\/\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2025\/03\/VOC-logo-2.png\" alt=\"VOC Gems\"><\/a>\n        <\/div>\n\n        <h1 class=\"voc-login-title\" id=\"loginTitle\">Log in to VOC Gems<\/h1>\n\n        <!-- URL error messages -->\n        <div id=\"urlError\" class=\"voc-login-url-error\" style=\"display:none;\"><\/div>\n\n        <!-- Message area -->\n        <div id=\"loginMsg\" class=\"voc-login-msg\"><\/div>\n\n        <!-- ===== QUICK ACCESS (Magic Link) ===== -->\n        <div class=\"voc-login-block\">\n            <div class=\"voc-login-block-title\" id=\"lblQuickTitle\">Quick access \u2014 no password needed<\/div>\n            <div class=\"voc-login-field\">\n                <label id=\"lblMagicEmail\">Email<\/label>\n                <input type=\"email\" id=\"magicEmail\" placeholder=\"you@email.com\" autocomplete=\"email\">\n            <\/div>\n            <button class=\"voc-login-btn\" onclick=\"sendMagicLink()\" id=\"btnMagic\">Send me a login link \u2192<\/button>\n            <p class=\"voc-login-hint\" id=\"lblMagicHint\">We'll email you a secure link. No password needed.<\/p>\n        <\/div>\n\n        <div class=\"voc-login-or\" id=\"lblOr\">or<\/div>\n\n        <!-- ===== PASSWORD LOGIN ===== -->\n        <div class=\"voc-login-block\">\n            <div class=\"voc-login-block-title\" id=\"lblPassTitle\">With password<\/div>\n            <div class=\"voc-login-field\">\n                <label id=\"lblPassEmail\">Email<\/label>\n                <input type=\"email\" id=\"passEmail\" placeholder=\"you@email.com\" autocomplete=\"email\">\n            <\/div>\n            <div class=\"voc-login-field\">\n                <label id=\"lblPassword\">Password<\/label>\n                <input type=\"password\" id=\"passPassword\" placeholder=\"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\" autocomplete=\"current-password\"\n                    onkeydown=\"if(event.key==='Enter') loginWithPassword()\">\n            <\/div>\n            <button class=\"voc-login-btn orange\" onclick=\"loginWithPassword()\" id=\"btnPass\">Log in \u2192<\/button>\n        <\/div>\n\n        <div class=\"voc-login-lost\">\n            <span id=\"lblLostAccess\">Lost access to your email?<\/span>\n            <a href=\"\/contact-lost-access\/\" id=\"linkContact\">Contact us<\/a>\n        <\/div>\n\n    <\/div>\n<\/div>\n\n<script>\nvar isRu = (document.documentElement.lang || '').toLowerCase().startsWith('ru')\n        || window.location.pathname.indexOf('\/ru\/') === 0;\n\n\/\/ \u2500\u2500\u2500 i18n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nvar T = {\n    loginTitle:    isRu ? '\u0412\u0445\u043e\u0434 \u0432 VOC Gems'                       : 'Log in to VOC Gems',\n    quickTitle:    isRu ? '\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0432\u0445\u043e\u0434 \u2014 \u0431\u0435\u0437 \u043f\u0430\u0440\u043e\u043b\u044f'             : 'Quick access \u2014 no password needed',\n    magicEmail:    isRu ? 'Email'                                  : 'Email',\n    btnMagic:      isRu ? '\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430 \u2192'          : 'Send me a login link \u2192',\n    magicHint:     isRu ? '\u041c\u044b \u0432\u044b\u0448\u043b\u0435\u043c \u0432\u0430\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443.'      : \"We'll email you a secure link. No password needed.\",\n    or:            isRu ? '\u0438\u043b\u0438'                                    : 'or',\n    passTitle:     isRu ? '\u0421 \u043f\u0430\u0440\u043e\u043b\u0435\u043c'                             : 'With password',\n    passEmail:     isRu ? 'Email'                                  : 'Email',\n    password:      isRu ? '\u041f\u0430\u0440\u043e\u043b\u044c'                                 : 'Password',\n    btnPass:       isRu ? '\u0412\u043e\u0439\u0442\u0438 \u2192'                               : 'Log in \u2192',\n    lostAccess:    isRu ? '\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a email? '                  : 'Lost access to your email? ',\n    contactUs:     isRu ? '\u0421\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u043d\u0430\u043c\u0438'                      : 'Contact us',\n\n    errNoEmail:    isRu ? '\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 email.'             : 'Please enter your email.',\n    errInvalidEmail: isRu ? '\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 email.'            : 'Please enter a valid email.',\n    errNoPass:     isRu ? '\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c.'            : 'Please enter your password.',\n    errNotFound:   isRu ? '\u0410\u043a\u043a\u0430\u0443\u043d\u0442 \u0441 \u044d\u0442\u0438\u043c email \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d. \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0430\u043a\u043a\u0430\u0443\u043d\u0442, \u043e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043a\u0430\u043c\u0435\u043d\u044c \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435.' : 'No account found with this email. To create one, send a request for any stone in our catalog.',\n    errWrongPass:  isRu ? '\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 email \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c.'             : 'Incorrect email or password.',\n    errServer:     isRu ? '\u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437.'   : 'Server error. Please try again.',\n    errRateLimit:  isRu ? '\u0421\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a. \u041f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e.' : 'Too many attempts. Please wait.',\n\n    msgLinkSent:   isRu ? '\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043f\u043e\u0447\u0442\u0443 \u2014 \u043c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u0432\u0430\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430.' : \"Check your email \u2014 we've sent you a login link.\",\n    msgSending:    isRu ? '\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c...'                          : 'Sending...',\n    msgLoggingIn:  isRu ? '\u0412\u0445\u043e\u0434\u0438\u043c...'                             : 'Logging in...',\n\n    errExpired:    isRu ? '\u0421\u0441\u044b\u043b\u043a\u0430 \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0430 \u0438\u043b\u0438 \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430. \u0417\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u0435 \u043d\u043e\u0432\u0443\u044e \u043d\u0438\u0436\u0435.' : 'Link expired or invalid. Request a new one below.',\n    errInvalid:    isRu ? '\u041d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430. \u0417\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u0435 \u043d\u043e\u0432\u0443\u044e \u043d\u0438\u0436\u0435.'             : 'Invalid link. Request a new one below.',\n};\n\n\/\/ Apply translations\ndocument.getElementById('loginTitle').textContent  = T.loginTitle;\ndocument.getElementById('lblQuickTitle').textContent = T.quickTitle;\ndocument.getElementById('lblMagicEmail').textContent = T.magicEmail;\ndocument.getElementById('btnMagic').textContent    = T.btnMagic;\ndocument.getElementById('lblMagicHint').textContent = T.magicHint;\ndocument.getElementById('lblOr').innerHTML         = '<span>' + T.or + '<\/span>';\ndocument.getElementById('lblPassTitle').textContent = T.passTitle;\ndocument.getElementById('lblPassEmail').textContent = T.passEmail;\ndocument.getElementById('lblPassword').textContent  = T.password;\ndocument.getElementById('btnPass').textContent     = T.btnPass;\ndocument.getElementById('lblLostAccess').textContent = T.lostAccess;\ndocument.getElementById('linkContact').textContent  = T.contactUs;\n\n\/\/ \u2500\u2500\u2500 URL error messages \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n(function() {\n    var params = new URLSearchParams(window.location.search);\n    var err = params.get('voc_error');\n    var urlErrEl = document.getElementById('urlError');\n    if (err === 'expired') {\n        urlErrEl.textContent = T.errExpired;\n        urlErrEl.style.display = 'block';\n    } else if (err === 'invalid') {\n        urlErrEl.textContent = T.errInvalid;\n        urlErrEl.style.display = 'block';\n    }\n    \/\/ Prefill email if passed\n    var email = params.get('email');\n    if (email) {\n        document.getElementById('magicEmail').value = decodeURIComponent(email);\n        document.getElementById('passEmail').value  = decodeURIComponent(email);\n    }\n})();\n\n\/\/ \u2500\u2500\u2500 Show message \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction showMsg(text, type) {\n    var el = document.getElementById('loginMsg');\n    el.textContent = text;\n    el.className = 'voc-login-msg ' + (type || 'info');\n}\n\n\/\/ \u2500\u2500\u2500 Send magic link \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nasync function sendMagicLink() {\n    var email = document.getElementById('magicEmail').value.trim();\n    if (!email) { showMsg(T.errNoEmail, 'error'); return; }\n    if (!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email)) { showMsg(T.errInvalidEmail, 'error'); return; }\n\n    var btn = document.getElementById('btnMagic');\n    btn.disabled = true;\n    btn.textContent = T.msgSending;\n\n    try {\n        var resp = await fetch('\/wp-json\/vocgems\/v1\/send-login-link', {\n            method: 'POST',\n            headers: { 'Content-Type': 'application\/json' },\n            body: JSON.stringify({ email: email, lang: isRu ? 'ru' : 'en' })\n        });\n        var data = await resp.json();\n        if (data.success) {\n            showMsg(T.msgLinkSent, 'success');\n        } else if (data.code === 'not_found') {\n            showMsg(T.errNotFound, 'error');\n        } else if (data.code === 'rate_limit') {\n            showMsg(T.errRateLimit, 'error');\n        } else {\n            showMsg(T.errServer, 'error');\n        }\n    } catch(e) {\n        showMsg(T.errServer, 'error');\n    }\n    btn.disabled = false;\n    btn.textContent = T.btnMagic;\n}\n\n\/\/ \u2500\u2500\u2500 Login with password \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nasync function loginWithPassword() {\n    var email = document.getElementById('passEmail').value.trim();\n    var pass  = document.getElementById('passPassword').value;\n    if (!email) { showMsg(T.errNoEmail, 'error'); return; }\n    if (!pass)  { showMsg(T.errNoPass,  'error'); return; }\n\n    var btn = document.getElementById('btnPass');\n    btn.disabled = true;\n    btn.textContent = T.msgLoggingIn;\n\n    try {\n        var resp = await fetch('\/wp-json\/vocgems\/v1\/login-password', {\n            method: 'POST',\n            headers: { 'Content-Type': 'application\/json' },\n            body: JSON.stringify({ email: email, password: pass })\n        });\n        var data = await resp.json();\n        if (data.success) {\n            var redirect = new URLSearchParams(window.location.search).get('redirect_to') || '\/dash\/';\n            window.location.href = redirect;\n        } else if (data.code === 'wrong_credentials') {\n            showMsg(T.errWrongPass, 'error');\n        } else {\n            showMsg(T.errServer, 'error');\n        }\n    } catch(e) {\n        showMsg(T.errServer, 'error');\n    }\n    btn.disabled = false;\n    btn.textContent = T.btnPass;\n}\n\n\/\/ If already logged in \u2014 redirect\nif (window.VOC_LOGGED_IN) {\n    window.location.href = '\/dash\/';\n}\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-15159","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>login - VOC Gems<\/title>\n<meta name=\"robots\" content=\"noindex, follow\" \/>\n<meta property=\"og:locale\" content=\"ru_RU\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"login - VOC Gems\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vocgems.com\/ru\/\u0432\u043e\u0439\u0442\u0438\/\" \/>\n<meta property=\"og:site_name\" content=\"VOC Gems\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-13T14:56:45+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 \u043c\u0438\u043d\u0443\u0442\u0430\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vocgems.com\/login\/\",\"url\":\"https:\/\/vocgems.com\/login\/\",\"name\":\"login - VOC Gems\",\"isPartOf\":{\"@id\":\"https:\/\/vocgems.com\/#website\"},\"datePublished\":\"2026-05-02T13:58:23+00:00\",\"dateModified\":\"2026-07-13T14:56:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vocgems.com\/login\/#breadcrumb\"},\"inLanguage\":\"ru-RU\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vocgems.com\/login\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vocgems.com\/login\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\/\/vocgems.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"login\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vocgems.com\/#website\",\"url\":\"https:\/\/vocgems.com\/\",\"name\":\"VOC Gems\",\"description\":\"Gemstones shop\",\"publisher\":{\"@id\":\"https:\/\/vocgems.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vocgems.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ru-RU\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vocgems.com\/#organization\",\"name\":\"VOC Gems\",\"url\":\"https:\/\/vocgems.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ru-RU\",\"@id\":\"https:\/\/vocgems.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vocgems.com\/wp-content\/uploads\/2026\/02\/cropped-Green_logo-Photoroom-2.png\",\"contentUrl\":\"https:\/\/vocgems.com\/wp-content\/uploads\/2026\/02\/cropped-Green_logo-Photoroom-2.png\",\"width\":848,\"height\":417,\"caption\":\"VOC Gems\"},\"image\":{\"@id\":\"https:\/\/vocgems.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u0432\u043e\u0439\u0442\u0438 - VOC Gems","robots":{"index":"noindex","follow":"follow"},"og_locale":"ru_RU","og_type":"article","og_title":"login - VOC Gems","og_url":"https:\/\/vocgems.com\/ru\/\u0432\u043e\u0439\u0442\u0438\/","og_site_name":"VOC Gems","article_modified_time":"2026-07-13T14:56:45+00:00","twitter_card":"summary_large_image","twitter_misc":{"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f":"1 \u043c\u0438\u043d\u0443\u0442\u0430"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vocgems.com\/login\/","url":"https:\/\/vocgems.com\/login\/","name":"\u0432\u043e\u0439\u0442\u0438 - VOC Gems","isPartOf":{"@id":"https:\/\/vocgems.com\/#website"},"datePublished":"2026-05-02T13:58:23+00:00","dateModified":"2026-07-13T14:56:45+00:00","breadcrumb":{"@id":"https:\/\/vocgems.com\/login\/#breadcrumb"},"inLanguage":"ru-RU","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vocgems.com\/login\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/vocgems.com\/login\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/vocgems.com\/"},{"@type":"ListItem","position":2,"name":"login"}]},{"@type":"WebSite","@id":"https:\/\/vocgems.com\/#website","url":"https:\/\/vocgems.com\/","name":"VOC Gems","description":"\u041c\u0430\u0433\u0430\u0437\u0438\u043d \u0434\u0440\u0430\u0433\u043e\u0446\u0435\u043d\u043d\u044b\u0445 \u043a\u0430\u043c\u043d\u0435\u0439","publisher":{"@id":"https:\/\/vocgems.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vocgems.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ru-RU"},{"@type":"Organization","@id":"https:\/\/vocgems.com\/#organization","name":"VOC Gems","url":"https:\/\/vocgems.com\/","logo":{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https:\/\/vocgems.com\/#\/schema\/logo\/image\/","url":"https:\/\/vocgems.com\/wp-content\/uploads\/2026\/02\/cropped-Green_logo-Photoroom-2.png","contentUrl":"https:\/\/vocgems.com\/wp-content\/uploads\/2026\/02\/cropped-Green_logo-Photoroom-2.png","width":848,"height":417,"caption":"VOC Gems"},"image":{"@id":"https:\/\/vocgems.com\/#\/schema\/logo\/image\/"}}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/vocgems.com\/ru\/wp-json\/wp\/v2\/pages\/15159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vocgems.com\/ru\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vocgems.com\/ru\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vocgems.com\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vocgems.com\/ru\/wp-json\/wp\/v2\/comments?post=15159"}],"version-history":[{"count":3,"href":"https:\/\/vocgems.com\/ru\/wp-json\/wp\/v2\/pages\/15159\/revisions"}],"predecessor-version":[{"id":15167,"href":"https:\/\/vocgems.com\/ru\/wp-json\/wp\/v2\/pages\/15159\/revisions\/15167"}],"wp:attachment":[{"href":"https:\/\/vocgems.com\/ru\/wp-json\/wp\/v2\/media?parent=15159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}