{"id":301,"date":"2026-04-23T14:09:48","date_gmt":"2026-04-23T14:09:48","guid":{"rendered":"https:\/\/360stark.com\/?page_id=301"},"modified":"2026-04-23T14:18:18","modified_gmt":"2026-04-23T14:18:18","slug":"javiertorres","status":"publish","type":"page","link":"https:\/\/360stark.com\/en\/javiertorres\/","title":{"rendered":"JavierTorres"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"301\" class=\"elementor elementor-301\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fbff337 e-con-full e-flex e-con e-parent\" data-id=\"fbff337\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c1ab909 elementor-widget elementor-widget-html\" data-id=\"c1ab909\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"de\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0\">\n<title>Francisco Javier Torres Gallego \u00b7 DNT83 & UMDO<\/title>\n<meta name=\"description\" content=\"Francisco Javier Torres Gallego \u00b7 DNT83 Agency & UMDO Agency.\">\n<meta property=\"og:type\" content=\"website\">\n<meta property=\"og:title\" content=\"Francisco Javier Torres Gallego\">\n<meta property=\"og:description\" content=\"DNT83 Agency & UMDO Agency.\">\n<meta property=\"og:image\" content=\"https:\/\/360stark.link\/Biolinks\/JavierTorres\/Profil-JavierTorres.jpeg\">\n<meta name=\"theme-color\" content=\"#0f1117\">\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow:wght@300;400;600;700&family=Barlow+Condensed:wght@700&display=swap\" rel=\"stylesheet\">\n\n<style>\n:root {\n    \/* \u2500\u2500 Paleta SILVER (DNT83) \u2500\u2500 *\/\n    --silver:         #D4D4D8;\n    --silver-bright:  #E5E7EB;\n    --silver-deep:    #A1A1AA;\n    --silver-muted:   rgba(212,212,216,0.7);\n\n    \/* \u2500\u2500 Paleta UMDO \u2500\u2500 *\/\n    --umdo:           #CCCB1A;\n    --umdo-bright:    #E0DF3E;\n    --umdo-deep:      #A8A713;\n    --umdo-muted:     rgba(204,203,26,0.7);\n\n    \/* \u2500\u2500 Accent din\u00e1mico (cambia seg\u00fan tab) \u2500\u2500 *\/\n    --accent:         var(--silver);\n    --accent-bright:  var(--silver-bright);\n    --accent-deep:    var(--silver-deep);\n    --accent-muted:   var(--silver-muted);\n    --accent-rgb:     212, 212, 216;\n\n    \/* \u2500\u2500 Base \u2500\u2500 *\/\n    --carbon:         #0f1117;\n    --carbon-mid:     #161b24;\n    --carbon-border:  rgba(255,255,255,0.07);\n    --white:          #ffffff;\n    --white-muted:    rgba(255,255,255,0.6);\n}\n\n\/* \u2500\u2500 Variante UMDO (se aplica con data-company=\"umdo\" en <body>) \u2500\u2500 *\/\nbody[data-company=\"umdo\"] {\n    --accent:         var(--umdo);\n    --accent-bright:  var(--umdo-bright);\n    --accent-deep:    var(--umdo-deep);\n    --accent-muted:   var(--umdo-muted);\n    --accent-rgb:     204, 203, 26;\n}\n\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\nhtml { background: var(--carbon) !important; overscroll-behavior: none; }\n\nbody {\n    font-family: 'Barlow', Arial, sans-serif;\n    color: var(--white);\n    overflow-x: hidden;\n    min-height: 100vh;\n    background: var(--carbon) !important;\n    transition: --accent-rgb 0.5s ease;\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   HERO BACKGROUND\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n#hero-bg {\n    position: fixed;\n    top: -200px; bottom: -200px;\n    left: -20px; right: -20px;\n    z-index: -3;\n    background: var(--carbon);\n    pointer-events: none;\n}\n\n#hero-radial {\n    position: fixed;\n    top: -200px; bottom: -200px;\n    left: -20px; right: -20px;\n    z-index: -2;\n    background:\n        radial-gradient(ellipse 60% 50% at 70% 40%, rgba(var(--accent-rgb),0.08) 0%, transparent 70%),\n        radial-gradient(ellipse 40% 60% at 20% 70%, rgba(107,122,144,0.06) 0%, transparent 70%);\n    pointer-events: none;\n    transition: background 0.5s ease;\n}\n\n#hero-grid {\n    position: fixed;\n    top: -200px; bottom: -200px;\n    left: -20px; right: -20px;\n    z-index: -1;\n    background-image:\n        linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),\n        linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);\n    background-size: 80px 80px;\n    mask-image: radial-gradient(ellipse at center, black 30%, transparent 80%);\n    -webkit-mask-image: radial-gradient(ellipse at center, black 30%, transparent 80%);\n    pointer-events: none;\n}\n\n\/* \u2500\u2500 LAYOUT \u2500\u2500 *\/\n.wrap {\n    max-width: 480px;\n    margin: 0 auto;\n    padding: 0 20px 90px;\n    position: relative;\n    z-index: 1;\n    min-height: 100vh;\n}\n\n\/* \u2500\u2500 HEADER \u2500\u2500 *\/\n.header {\n    display: flex; flex-direction: column; align-items: center;\n    padding: 44px 0 20px;\n}\n\n.logo-circle {\n    position: relative;\n    width: 120px; height: 120px;\n    margin-bottom: 18px;\n    display: flex; align-items: center; justify-content: center;\n}\n\n.profile-photo {\n    width: 104px; height: 104px;\n    border-radius: 50%; object-fit: cover;\n    position: absolute; top: 50%; left: 50%;\n    transform: translate(-50%, -50%);\n    border: 2px solid rgba(var(--accent-rgb), 0.4);\n    z-index: 1;\n    transition: border-color 0.5s ease;\n}\n\n.orbit-svg {\n    position: absolute; top: 0; left: 0;\n    width: 120px; height: 120px;\n    z-index: 2; pointer-events: none;\n}\n\n.orbit-accent { stroke: var(--accent); transition: stroke 0.5s ease; }\n.orbit-accent-soft { stroke: rgba(var(--accent-rgb), 0.35); transition: stroke 0.5s ease; }\n\n\/* \u2500\u2500 BRAND (cambia seg\u00fan empresa) \u2500\u2500 *\/\n.company-logo-wrap {\n    height: 48px;\n    margin-bottom: 6px;\n    display: flex; align-items: center; justify-content: center;\n}\n.company-logo {\n    max-height: 48px;\n    max-width: 200px;\n    width: auto;\n    object-fit: contain;\n    filter: drop-shadow(0 2px 8px rgba(var(--accent-rgb), 0.25));\n    transition: filter 0.5s ease;\n}\n\n.contact-name {\n    font-family: 'Barlow Condensed', Arial, sans-serif;\n    font-size: 22px; font-weight: 700;\n    letter-spacing: 1.8px; color: var(--white);\n    text-transform: uppercase;\n    margin-top: 10px;\n    margin-bottom: 4px;\n    text-align: center;\n}\n\n.brand-sub {\n    font-size: 11px; font-weight: 300;\n    color: rgba(var(--accent-rgb), 0.75);\n    letter-spacing: 3px; text-transform: uppercase;\n    transition: color 0.5s ease;\n}\n\n\/* \u2500\u2500 SELECTOR IDIOMAS \u2500\u2500 *\/\n.selector-idiomas {\n    position: relative; display: flex;\n    justify-content: center; margin: 22px 0 0;\n}\n\n#idioma-toggle {\n    background: rgba(20,20,20,0.97);\n    color: var(--white); height: 38px; padding: 0 18px;\n    border-radius: 33px;\n    border: 1px solid var(--accent);\n    box-shadow: 0 4px 20px rgba(var(--accent-rgb), 0.2);\n    cursor: pointer; display: flex; align-items: center; gap: 6px;\n    font-size: 13px; font-family: 'Barlow', Arial, sans-serif;\n    white-space: nowrap;\n    transition: background 0.2s, box-shadow 0.2s, border-color 0.5s ease;\n}\n#idioma-toggle:hover { background: #1a1a2e; box-shadow: 0 4px 24px rgba(var(--accent-rgb), 0.35); }\n#idioma-toggle .caret { font-size: 9px; transition: transform 0.25s, color 0.5s ease; color: var(--accent); }\n#idioma-toggle[aria-expanded=\"true\"] .caret { transform: rotate(180deg); }\n#idioma-toggle .flag { font-size: 16px; }\n\n#idioma-list {\n    position: absolute; top: calc(100% + 10px); left: 50%;\n    transform: translateX(-50%);\n    background: rgba(14,12,20,0.99);\n    border-radius: 16px; border: 1px solid rgba(var(--accent-rgb), 0.3);\n    box-shadow: 0 8px 28px rgba(var(--accent-rgb), 0.2);\n    display: none; flex-direction: column;\n    padding: 8px 0; min-width: 180px;\n    list-style: none; z-index: 999;\n    animation: dropdownAnim 0.2s ease forwards;\n    transition: border-color 0.5s ease;\n}\n#idioma-list.abierto { display: flex; }\n#idioma-list li {\n    padding: 11px 18px; cursor: pointer;\n    display: flex; gap: 10px; align-items: center;\n    color: var(--white); font-size: 13px;\n    font-family: 'Barlow', Arial, sans-serif;\n    transition: background 0.15s;\n}\n#idioma-list li:hover { background: rgba(var(--accent-rgb), 0.12); }\n#idioma-list li.activo { color: var(--accent); font-weight: 600; }\n#idioma-list li:first-child { border-radius: 16px 16px 0 0; }\n#idioma-list li:last-child  { border-radius: 0 0 16px 16px; }\n#idioma-list li .flag { font-size: 16px; }\n\n@keyframes dropdownAnim {\n    from { opacity: 0; transform: translateX(-50%) translateY(-8px); }\n    to   { opacity: 1; transform: translateX(-50%) translateY(0); }\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   TABS EMPRESAS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.company-tabs {\n    display: flex;\n    justify-content: center;\n    gap: 8px;\n    margin: 20px auto 0;\n    padding: 5px;\n    background: rgba(255,255,255,0.04);\n    border: 1px solid rgba(255,255,255,0.08);\n    border-radius: 33px;\n    max-width: 340px;\n}\n\n.company-tab {\n    flex: 1;\n    background: transparent;\n    border: none;\n    color: rgba(255,255,255,0.55);\n    padding: 10px 16px;\n    border-radius: 28px;\n    cursor: pointer;\n    font-family: 'Barlow Condensed', Arial, sans-serif;\n    font-size: 14px;\n    font-weight: 700;\n    letter-spacing: 2px;\n    text-transform: uppercase;\n    transition: all 0.35s ease;\n    position: relative;\n    overflow: hidden;\n}\n\n.company-tab:hover { color: var(--white); }\n\n.company-tab.active {\n    color: #0f1117;\n    background: var(--accent);\n    box-shadow: 0 4px 16px rgba(var(--accent-rgb), 0.4);\n}\n\nbody[data-company=\"dnt83\"] .company-tab.active {\n    background: linear-gradient(135deg, #E5E7EB 0%, #A1A1AA 100%);\n}\n\nbody[data-company=\"umdo\"] .company-tab.active {\n    background: linear-gradient(135deg, #E0DF3E 0%, #A8A713 100%);\n}\n\n\/* \u2500\u2500 SECCIONES \u2500\u2500 *\/\n.section { margin-top: 28px; }\n.section-label {\n    font-size: 10px; letter-spacing: 3px; text-transform: uppercase;\n    color: rgba(var(--accent-rgb), 0.75); margin-bottom: 10px; padding-left: 2px;\n    transition: color 0.5s ease;\n}\n\n\/* \u2500\u2500 INFO CARD \u2500\u2500 *\/\n.info-card {\n    background: rgba(255,255,255,0.04);\n    border: 1px solid rgba(255,255,255,0.08);\n    border-radius: 16px; overflow: hidden;\n}\n.info-row {\n    display: flex; align-items: center; gap: 14px;\n    padding: 14px 18px;\n    border-bottom: 1px solid rgba(255,255,255,0.05);\n    text-decoration: none; color: inherit; transition: background 0.15s;\n}\n.info-row:last-child { border-bottom: none; }\n.info-row:hover { background: rgba(var(--accent-rgb), 0.07); }\n\n.info-icon {\n    width: 38px; height: 38px; border-radius: 11px;\n    display: flex; align-items: center; justify-content: center; flex-shrink: 0;\n    transition: background 0.5s ease;\n}\n.ic-accent { background: rgba(var(--accent-rgb), 0.18); }\n.ic-blue   { background: rgba(100,160,255,0.15); }\n.info-icon svg { width: 18px; height: 18px; }\n.ic-accent svg { stroke: var(--accent); transition: stroke 0.5s ease; }\n\n.info-text { flex: 1; min-width: 0; }\n.info-label { font-size: 11px; color: rgba(130,170,220,0.7); margin-bottom: 2px; }\n.info-value { font-size: 15px; color: #dde6f5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n.info-row:hover .info-value { color: var(--white); }\n.arrow-icon { flex-shrink: 0; opacity: 0.35; }\n\n\/* \u2500\u2500 CTA BUTTONS \u2500\u2500 *\/\n.cta-btn {\n    display: flex; align-items: center; justify-content: center; gap: 10px;\n    width: 100%; padding: 15px 20px; border-radius: 14px;\n    font-family: 'Barlow', Arial, sans-serif; font-size: 15px; font-weight: 600;\n    text-decoration: none !important; letter-spacing: 0.3px;\n    transition: transform 0.2s, box-shadow 0.2s, background 0.2s, border-color 0.5s ease;\n    border: 1px solid transparent; cursor: pointer; margin-bottom: 12px;\n}\n.cta-btn:hover { transform: scale(1.02); }\n.btn-icon { width: 22px; height: 22px; flex-shrink: 0; }\n\n.btn-whatsapp  { background:rgba(37,211,102,0.15)!important; border-color:rgba(37,211,102,0.35)!important; color:#4de08a!important; }\n.btn-whatsapp:hover  { background:rgba(37,211,102,0.25)!important; box-shadow:0 4px 16px rgba(37,211,102,0.25); }\n.btn-instagram { background:rgba(193,53,132,0.15)!important; border-color:rgba(193,53,132,0.35)!important; color:#e87fc0!important; }\n.btn-instagram:hover { background:rgba(193,53,132,0.25)!important; }\n.btn-linkedin  { background:rgba(10,102,194,0.15)!important; border-color:rgba(10,102,194,0.35)!important; color:#6da8e0!important; }\n.btn-linkedin:hover  { background:rgba(10,102,194,0.25)!important; }\n\n\/* Bot\u00f3n Web \u2014 din\u00e1mico con accent *\/\n.btn-web {\n    background: rgba(var(--accent-rgb), 0.12) !important;\n    border-color: rgba(var(--accent-rgb), 0.45) !important;\n    color: var(--accent-bright) !important;\n    box-shadow: 0 4px 16px rgba(var(--accent-rgb), 0.1);\n    transition: background 0.4s ease, border-color 0.4s ease, color 0.4s ease, box-shadow 0.4s ease, transform 0.2s;\n}\n.btn-web:hover {\n    background: rgba(var(--accent-rgb), 0.22) !important;\n    box-shadow: 0 4px 24px rgba(var(--accent-rgb), 0.3);\n}\n\n.btn-review { background:rgba(250,180,30,0.12)!important; border-color:rgba(250,180,30,0.3)!important; color:#f5c842!important; }\n.btn-review:hover { background:rgba(250,180,30,0.22)!important; box-shadow:0 4px 16px rgba(250,180,30,0.2); }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   DIVIDER\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.divider {\n    height: 1px;\n    margin: 28px 0;\n    background: linear-gradient(90deg,\n        transparent 0%,\n        rgba(var(--accent-rgb), 0.25) 20%,\n        rgba(var(--accent-rgb), 0.6) 50%,\n        rgba(var(--accent-rgb), 0.25) 80%,\n        transparent 100%);\n    animation: dividerFade 3s ease-in-out infinite;\n    transition: background 0.5s ease;\n}\n\n@keyframes dividerFade {\n    0%, 100% { opacity: 0.5; }\n    50%       { opacity: 1;   }\n}\n\n\/* \u2500\u2500 FAB \u2500\u2500 *\/\n.fab-wrap {\n    position: fixed; bottom: 28px;\n    right: max(20px, calc(50vw - 220px));\n    z-index: 8888;\n    display: flex; flex-direction: column-reverse; align-items: flex-end; gap: 10px;\n}\n\n.fab-main {\n    width: 140px; height: 48px; border-radius: 14px;\n    background: rgba(var(--accent-rgb), 0.18);\n    border: 1.5px solid rgba(var(--accent-rgb), 0.6) !important;\n    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);\n    box-shadow: 0 4px 20px rgba(var(--accent-rgb), 0.25);\n    color: var(--white); font-family: 'Barlow', Arial, sans-serif;\n    font-size: 12px; font-weight: 600; letter-spacing: 0.3px;\n    display: flex; align-items: center; justify-content: center; gap: 7px;\n    cursor: pointer;\n    transition: background 0.3s, box-shadow 0.3s, transform 0.2s, border-color 0.5s ease;\n    text-decoration: none !important;\n}\n.fab-main:hover { background: rgba(var(--accent-rgb), 0.32); box-shadow: 0 6px 28px rgba(var(--accent-rgb), 0.4); transform: scale(1.04); }\n.fab-main svg { width: 16px; height: 16px; flex-shrink: 0; transition: transform 0.3s; }\n.fab-wrap.open .fab-main { background: rgba(var(--accent-rgb), 0.35); }\n.fab-wrap.open .fab-main .fab-arrow { transform: rotate(180deg); }\n\n.fab-options {\n    display: flex; flex-direction: column; align-items: stretch; gap: 8px;\n    overflow: hidden; max-height: 0;\n    transition: max-height 0.35s cubic-bezier(.4,0,.2,1), opacity 0.25s;\n    opacity: 0; pointer-events: none; width: 160px;\n}\n.fab-wrap.open .fab-options { max-height: 500px; opacity: 1; pointer-events: all; }\n\n.fab-option {\n    display: flex; align-items: center; gap: 10px; width: 100%;\n    background: rgba(10,12,16,0.92);\n    border: 1px solid rgba(var(--accent-rgb), 0.25);\n    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);\n    border-radius: 14px; padding: 10px 14px; cursor: pointer;\n    white-space: nowrap; font-family: 'Barlow', Arial, sans-serif;\n    font-size: 13px; font-weight: 600; color: #e8edf5;\n    transition: background 0.2s, transform 0.15s, border-color 0.5s ease;\n    box-shadow: 0 2px 12px rgba(0,0,0,0.4); text-align: left;\n}\n.fab-option:hover { background: rgba(var(--accent-rgb), 0.15); transform: scale(1.02); }\n.fab-option svg { width: 16px; height: 16px; flex-shrink: 0; }\n.fab-opt-icon { width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }\n.fab-opt-accent { background: rgba(var(--accent-rgb), 0.2); transition: background 0.5s ease; }\n.fab-opt-purple { background: rgba(130,80,220,0.25); }\n.fab-opt-green  { background: rgba(37,211,102,0.2); }\n.fab-opt-white  { background: rgba(255,255,255,0.1); }\n\n.fab-opt-accent svg { stroke: var(--accent-bright); transition: stroke 0.5s ease; }\n\n\/* \u2500\u2500 QR POPUP \u2500\u2500 *\/\n#qr-overlay {\n    display: none; position: fixed; inset: 0;\n    background: rgba(0,0,0,0.78); z-index: 99999;\n    justify-content: center; align-items: center;\n}\n#qr-overlay.activo { display: flex; }\n.qr-box {\n    background: #0d0c14;\n    border: 1px solid rgba(var(--accent-rgb), 0.3);\n    border-radius: 20px; padding: 2rem; text-align: center;\n    max-width: 300px; width: 90%;\n    animation: popIn .3s cubic-bezier(.34,1.56,.64,1) both;\n    transition: border-color 0.5s ease;\n}\n.qr-box h4 {\n    font-family: 'Barlow Condensed', Arial, sans-serif;\n    font-size: 16px; font-weight: 700; color: #e8edf5;\n    letter-spacing: 1px; text-transform: uppercase; margin-bottom: 4px;\n}\n.qr-box p { font-size: 12px; color: rgba(140,170,210,0.7); margin-bottom: 16px; }\n.qr-box img#qr-image {\n    border-radius: 12px;\n    background: #0f1117;\n    padding: 10px;\n    max-width: 220px;\n    width: 100%;\n    height: auto;\n    display: block;\n    margin: 0 auto;\n}\n.qr-close-btn {\n    margin-top: 16px;\n    background: rgba(var(--accent-rgb), 0.12);\n    border: 1px solid rgba(var(--accent-rgb), 0.3);\n    border-radius: 14px;\n    color: var(--accent-bright);\n    font-family: 'Barlow', Arial, sans-serif;\n    font-size: 13px; padding: 8px 24px; cursor: pointer;\n    transition: background 0.3s, border-color 0.5s ease, color 0.5s ease;\n}\n.qr-close-btn:hover { background: rgba(var(--accent-rgb), 0.22); }\n\n\/* \u2500\u2500 FOOTER \u2500\u2500 *\/\n.footer {\n    text-align: center; font-size: 11px;\n    color: rgba(var(--accent-rgb), 0.55);\n    letter-spacing: 2px; text-transform: uppercase; margin-top: 36px;\n    transition: color 0.5s ease;\n}\n.footer a { color: rgba(var(--accent-rgb), 0.8); text-decoration: none; transition: color 0.5s ease; }\n.footer a:hover { color: var(--accent); }\n.powered-by {\n    margin-top: 10px; font-size: 10px;\n    letter-spacing: 1.5px; color: rgba(255,255,255,0.3);\n}\n.powered-by a { color: rgba(255,140,0,0.6); text-decoration: none; }\n.powered-by a:hover { color: #FF8C00; }\n\n[data-lang] { display: none; }\n[data-lang].active { display: block; }\n\n@keyframes popIn {\n    from { transform: scale(0.85) translateY(30px); opacity: 0; }\n    to   { transform: scale(1) translateY(0); opacity: 1; }\n}\n<\/style>\n<\/head>\n<body data-company=\"dnt83\">\n\n<!-- Fondo en capas -->\n<div id=\"hero-bg\"><\/div>\n<div id=\"hero-radial\"><\/div>\n<div id=\"hero-grid\"><\/div>\n\n<script>\n(function(){\n    var C = '#0f1117';\n    document.documentElement.style.background = C;\n    document.body.style.background = C;\n    var s = document.createElement('style');\n    s.textContent = 'html,body{background:'+C+'!important;}';\n    document.head.appendChild(s);\n})();\n<\/script>\n\n<div class=\"wrap\">\n\n    <!-- \u2500\u2500 HEADER \u2500\u2500 -->\n    <div class=\"header\">\n        <div class=\"logo-circle\">\n            <img decoding=\"async\" class=\"profile-photo\"\n                src=\"https:\/\/360stark.link\/Biolinks\/JavierTorres\/Profil-JavierTorres.jpeg\"\n                alt=\"Francisco Javier Torres Gallego\"\n                onerror=\"this.style.display='none'\">\n            <svg class=\"orbit-svg\" viewBox=\"0 0 120 120\" fill=\"none\">\n                <circle cx=\"60\" cy=\"60\" r=\"56\" stroke=\"rgba(255,255,255,0.04)\" stroke-width=\"1\"\/>\n                <circle cx=\"60\" cy=\"60\" r=\"56\" stroke=\"white\" stroke-width=\"2\" stroke-dasharray=\"230 50\" stroke-linecap=\"round\"\/>\n                <circle class=\"orbit-accent\" cx=\"60\" cy=\"60\" r=\"56\" stroke-width=\"2.5\" stroke-dasharray=\"65 215\" stroke-linecap=\"round\">\n                    <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 60 60\" to=\"360 60 60\" dur=\"8s\" repeatCount=\"indefinite\"\/>\n                <\/circle>\n                <circle class=\"orbit-accent-soft\" cx=\"60\" cy=\"60\" r=\"56\" stroke-width=\"1\" stroke-dasharray=\"35 245\" stroke-linecap=\"round\">\n                    <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"180 60 60\" to=\"-180 60 60\" dur=\"14s\" repeatCount=\"indefinite\"\/>\n                <\/circle>\n            <\/svg>\n        <\/div>\n\n        <div class=\"company-logo-wrap\">\n            <img decoding=\"async\" class=\"company-logo\" id=\"company-logo\"\n                src=\"https:\/\/360stark.link\/DNT83logo.png\"\n                alt=\"DNT83 Agency\">\n        <\/div>\n\n        <div class=\"contact-name\">Francisco Javier Torres Gallego<\/div>\n        <div class=\"brand-sub\" id=\"brand-sub\">Agency \u00b7 Made in Europe<\/div>\n    <\/div>\n\n    <!-- \u2500\u2500 SELECTOR IDIOMAS \u2500\u2500 -->\n    <div class=\"selector-idiomas\">\n        <button id=\"idioma-toggle\" aria-expanded=\"false\" aria-haspopup=\"listbox\">\n            <span class=\"flag\" id=\"flag-activo\">\ud83c\udde9\ud83c\uddea<\/span>\n            <span class=\"code\" id=\"code-activo\">DE \u2013 Deutsch<\/span>\n            <span class=\"caret\">\u25bc<\/span>\n        <\/button>\n        <ul id=\"idioma-list\" role=\"listbox\" aria-label=\"Sprache ausw\u00e4hlen\">\n            <li data-lang-code=\"es\" data-flag=\"\ud83c\uddea\ud83c\uddf8\" data-label=\"ES \u2013 Espa\u00f1ol\" role=\"option\" tabindex=\"0\">\n                <span class=\"flag\">\ud83c\uddea\ud83c\uddf8<\/span> ES \u2013 Espa\u00f1ol\n            <\/li>\n            <li data-lang-code=\"de\" data-flag=\"\ud83c\udde9\ud83c\uddea\" data-label=\"DE \u2013 Deutsch\" role=\"option\" tabindex=\"0\" class=\"activo\">\n                <span class=\"flag\">\ud83c\udde9\ud83c\uddea<\/span> DE \u2013 Deutsch\n            <\/li>\n            <li data-lang-code=\"en\" data-flag=\"\ud83c\uddec\ud83c\udde7\" data-label=\"EN \u2013 English\" role=\"option\" tabindex=\"0\">\n                <span class=\"flag\">\ud83c\uddec\ud83c\udde7<\/span> EN \u2013 English\n            <\/li>\n        <\/ul>\n    <\/div>\n\n    <!-- \u2500\u2500 TABS EMPRESAS \u2500\u2500 -->\n    <div class=\"company-tabs\" role=\"tablist\" aria-label=\"Seleccionar empresa\">\n        <button class=\"company-tab active\" data-company-tab=\"dnt83\" role=\"tab\" aria-selected=\"true\">DNT83<\/button>\n        <button class=\"company-tab\" data-company-tab=\"umdo\" role=\"tab\" aria-selected=\"false\">UMDO<\/button>\n    <\/div>\n\n    <!-- \u2500\u2500 CONTACTO \u2500\u2500 -->\n    <div class=\"section\">\n        <div data-lang=\"es\" class=\"section-label\">Contacto<\/div>\n        <div data-lang=\"de\" class=\"section-label active\">Kontakt<\/div>\n        <div data-lang=\"en\" class=\"section-label\">Contact<\/div>\n\n        <div class=\"info-card\">\n            <!-- Tel\u00e9fono \u00fanico -->\n            <a href=\"tel:+491728458746\" class=\"info-row\">\n                <div class=\"info-icon ic-accent\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                        <path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 9.81 19.79 19.79 0 01.12 1.18 2 2 0 012.11 0h3a2 2 0 012 1.72c.13.96.36 1.9.7 2.81a2 2 0 01-.45 2.11L6.91 7.09a16 16 0 006 6l.45-.45a2 2 0 012.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0122 16.92z\"\/>\n                    <\/svg>\n                <\/div>\n                <div class=\"info-text\">\n                    <div class=\"info-label\" id=\"lbl-phone\">Telefon<\/div>\n                    <div class=\"info-value\">+49 (0) 172 845 8746<\/div>\n                <\/div>\n                <svg class=\"arrow-icon\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M12 5l7 7-7 7\"\/><\/svg>\n            <\/a>\n\n            <!-- Email (din\u00e1mico por empresa) -->\n            <a href=\"mailto:torres@dnt83.eu\" class=\"info-row\" id=\"email-row\">\n                <div class=\"info-icon ic-blue\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"rgba(100,160,255,0.9)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                        <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/>\n                        <polyline points=\"22,6 12,13 2,6\"\/>\n                    <\/svg>\n                <\/div>\n                <div class=\"info-text\">\n                    <div class=\"info-label\">Email<\/div>\n                    <div class=\"info-value\" id=\"email-value\">torres@dnt83.eu<\/div>\n                <\/div>\n                <svg class=\"arrow-icon\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M12 5l7 7-7 7\"\/><\/svg>\n            <\/a>\n        <\/div>\n    <\/div>\n\n    <!-- \u2500\u2500 WHATSAPP \u2500\u2500 -->\n    <div class=\"section\">\n        <a id=\"wa-btn\" href=\"https:\/\/wa.me\/491728458746\" target=\"_blank\" rel=\"noopener\" class=\"cta-btn btn-whatsapp\">\n            <svg class=\"btn-icon\" viewBox=\"0 0 24 24\" fill=\"#25D366\">\n                <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/>\n            <\/svg>\n            <span id=\"lbl-whatsapp\">WhatsApp \u00b7 +49 172 845 8746<\/span>\n        <\/a>\n    <\/div>\n\n    <div class=\"divider\"><\/div>\n\n    <!-- \u2500\u2500 REDES & WEB \u2500\u2500 -->\n    <div class=\"section\">\n        <div data-lang=\"es\" class=\"section-label\">Redes sociales &amp; Web<\/div>\n        <div data-lang=\"de\" class=\"section-label active\">Soziale Medien &amp; Web<\/div>\n        <div data-lang=\"en\" class=\"section-label\">Social media &amp; Web<\/div>\n\n        <a href=\"https:\/\/www.instagram.com\/javiertorresgallego\" target=\"_blank\" rel=\"noopener\" class=\"cta-btn btn-instagram\">\n            <svg class=\"btn-icon\" viewBox=\"0 0 24 24\" fill=\"#e87fc0\">\n                <path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z\"\/>\n            <\/svg>\n            Instagram\n        <\/a>\n\n        <a href=\"https:\/\/www.linkedin.com\/in\/francisco-javier-torres-gallego\" target=\"_blank\" rel=\"noopener\" class=\"cta-btn btn-linkedin\">\n            <svg class=\"btn-icon\" viewBox=\"0 0 24 24\" fill=\"#6da8e0\">\n                <path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\"\/>\n            <\/svg>\n            LinkedIn\n        <\/a>\n\n        <a href=\"https:\/\/dnt83.eu\" target=\"_blank\" rel=\"noopener\" class=\"cta-btn btn-web\" id=\"web-btn\">\n            <svg class=\"btn-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                <circle cx=\"12\" cy=\"12\" r=\"10\"\/>\n                <line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"\/>\n                <path d=\"M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z\"\/>\n            <\/svg>\n            <span id=\"lbl-web\">dnt83.eu<\/span>\n        <\/a>\n    <\/div>\n\n    <!-- \u2500\u2500 FOOTER \u2500\u2500 -->\n    <div class=\"footer\">\n        <a id=\"footer-link\" href=\"https:\/\/dnt83.eu\" target=\"_blank\" rel=\"noopener\">dnt83.eu<\/a>\n        <div class=\"powered-by\">Powered by <a href=\"https:\/\/360stark.com\" target=\"_blank\" rel=\"noopener\">360\u00baStark<\/a><\/div>\n    <\/div>\n\n<\/div><!-- \/wrap -->\n\n<!-- \u2500\u2500 FAB MENU FLOTANTE \u2500\u2500 -->\n<div class=\"fab-wrap\" id=\"fab-wrap\">\n    <div class=\"fab-options\" id=\"fab-options\">\n\n        <button class=\"fab-option\" onclick=\"downloadVCard(); toggleFab();\">\n            <div class=\"fab-opt-icon fab-opt-accent\">\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                    <path d=\"M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2\"\/>\n                    <circle cx=\"12\" cy=\"7\" r=\"4\"\/>\n                    <polyline points=\"16 11 18 13 22 9\"\/>\n                <\/svg>\n            <\/div>\n            <span id=\"lbl-vcard\">+ Kontakt<\/span>\n        <\/button>\n\n        <button class=\"fab-option\" onclick=\"compartirNFC(); toggleFab();\">\n            <div class=\"fab-opt-icon fab-opt-purple\">\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#c09eff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                    <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z\"\/>\n                    <path d=\"M8 12c0-2.21 1.79-4 4-4s4 1.79 4 4-1.79 4-4 4\"\/>\n                    <circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"#c09eff\"\/>\n                <\/svg>\n            <\/div>\n            <span id=\"lbl-nfc\">NFC teilen<\/span>\n        <\/button>\n\n        <button class=\"fab-option\" onclick=\"mostrarQR(); toggleFab();\">\n            <div class=\"fab-opt-icon fab-opt-green\">\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#4de08a\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                    <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"\/>\n                    <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"\/>\n                    <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"\/>\n                    <path d=\"M14 14h.01M14 17h3M17 14v3M20 17v3M17 20h3\"\/>\n                <\/svg>\n            <\/div>\n            <span id=\"lbl-qr\">QR-Code anzeigen<\/span>\n        <\/button>\n\n        <button class=\"fab-option\" onclick=\"addToAppleWallet(); toggleFab();\">\n            <div class=\"fab-opt-icon fab-opt-white\">\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#e8edf5\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                    <rect x=\"1\" y=\"5\" width=\"22\" height=\"14\" rx=\"3\"\/>\n                    <path d=\"M1 10h22\"\/>\n                    <circle cx=\"7\" cy=\"15\" r=\"1.5\" fill=\"#e8edf5\"\/>\n                <\/svg>\n            <\/div>\n            <span id=\"lbl-wallet\">Apple Wallet<\/span>\n        <\/button>\n\n        <button class=\"fab-option\" onclick=\"addToGoogleWallet(); toggleFab();\">\n            <div class=\"fab-opt-icon\" style=\"background:rgba(66,133,244,0.2);\">\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                    <rect x=\"1\" y=\"5\" width=\"22\" height=\"14\" rx=\"3\" stroke=\"#4285F4\"\/>\n                    <path d=\"M1 10h22\" stroke=\"#4285F4\"\/>\n                    <circle cx=\"7\" cy=\"15\" r=\"1.5\" fill=\"#4285F4\"\/>\n                    <text x=\"15\" y=\"17\" text-anchor=\"middle\" font-size=\"5\" font-family=\"Arial\" font-weight=\"bold\" fill=\"#4285F4\">G<\/text>\n                <\/svg>\n            <\/div>\n            <span id=\"lbl-gwallet\">Google Wallet<\/span>\n        <\/button>\n\n    <\/div>\n\n    <button class=\"fab-main\" id=\"fab-main-btn\" onclick=\"toggleFab()\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n            <path d=\"M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2\"\/>\n            <circle cx=\"12\" cy=\"7\" r=\"4\"\/>\n            <polyline points=\"16 11 18 13 22 9\"\/>\n        <\/svg>\n        <span id=\"fab-label\">+ Kontakt<\/span>\n        <svg class=\"fab-arrow\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"width:12px;height:12px;margin-left:2px\">\n            <polyline points=\"18 15 12 9 6 15\"\/>\n        <\/svg>\n    <\/button>\n<\/div>\n\n<!-- \u2500\u2500 QR POPUP \u2500\u2500 -->\n<div id=\"qr-overlay\">\n    <div class=\"qr-box\">\n        <h4 id=\"qr-title\">Francisco Javier Torres Gallego<\/h4>\n        <p id=\"qr-subtitle\">Scannen zum \u00d6ffnen<\/p>\n        <img decoding=\"async\" id=\"qr-image\" src=\"https:\/\/360stark.link\/Biolinks\/JavierTorres\/JavierTorres-QR.png\" alt=\"QR Code\">\n        <button class=\"qr-close-btn\" onclick=\"document.getElementById('qr-overlay').classList.remove('activo')\">\n            <span id=\"qr-close-lbl\">Schlie\u00dfen<\/span>\n        <\/button>\n    <\/div>\n<\/div>\n\n<script>\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   CONFIG EMPRESAS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nconst COMPANIES = {\n    dnt83: {\n        name: 'DNT83 Agency',\n        logo: 'https:\/\/360stark.link\/DNT83logo.png',\n        web:  'https:\/\/dnt83.eu',\n        webLabel: 'dnt83.eu',\n        email: 'torres@dnt83.eu'\n    },\n    umdo: {\n        name: 'UMDO Agency',\n        logo: 'https:\/\/360stark.link\/UMDOlogo.png',\n        web:  'https:\/\/umdo-agency.com',\n        webLabel: 'umdo-agency.com',\n        email: 'torres@umdo-agency.com'\n    }\n};\n\nlet currentCompany = 'dnt83';\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   TRADUCCIONES\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nconst _T = {\n    es: {\n        fab:'+ Contacto', vcard:'Guardar contacto', nfc:'Compartir NFC',\n        qr:'Ver c\u00f3digo QR', wallet:'Apple Wallet', gwallet:'Google Wallet',\n        qrSub:'Escanea para abrir el Biolink', qrClose:'Cerrar',\n        brandSub:'Agency \u00b7 Made in Europe',\n        phone:'Tel\u00e9fono',\n        whatsapp:'WhatsApp \u00b7 +49 172 845 8746'\n    },\n    de: {\n        fab:'+ Kontakt', vcard:'Kontakt speichern', nfc:'NFC teilen',\n        qr:'QR-Code anzeigen', wallet:'Apple Wallet', gwallet:'Google Wallet',\n        qrSub:'Scannen zum \u00d6ffnen', qrClose:'Schlie\u00dfen',\n        brandSub:'Agency \u00b7 Made in Europe',\n        phone:'Telefon',\n        whatsapp:'WhatsApp \u00b7 +49 172 845 8746'\n    },\n    en: {\n        fab:'+ Contact', vcard:'Save contact', nfc:'Share via NFC',\n        qr:'Show QR code', wallet:'Apple Wallet', gwallet:'Google Wallet',\n        qrSub:'Scan to open the Biolink', qrClose:'Close',\n        brandSub:'Agency \u00b7 Made in Europe',\n        phone:'Phone',\n        whatsapp:'WhatsApp \u00b7 +49 172 845 8746'\n    }\n};\n\nlet currentLang = 'de';\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   TABS EMPRESAS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nfunction switchCompany(companyKey){\n    if(!COMPANIES[companyKey]) return;\n    currentCompany = companyKey;\n    const c = COMPANIES[companyKey];\n\n    document.body.setAttribute('data-company', companyKey);\n\n    document.querySelectorAll('.company-tab').forEach(tab => {\n        const isActive = tab.dataset.companyTab === companyKey;\n        tab.classList.toggle('active', isActive);\n        tab.setAttribute('aria-selected', String(isActive));\n    });\n\n    document.getElementById('company-logo').src = c.logo;\n    document.getElementById('company-logo').alt = c.name;\n    document.getElementById('email-row').href    = 'mailto:' + c.email;\n    document.getElementById('email-value').textContent = c.email;\n    document.getElementById('web-btn').href = c.web;\n    document.getElementById('lbl-web').textContent = c.webLabel;\n    document.getElementById('footer-link').href = c.web;\n    document.getElementById('footer-link').textContent = c.webLabel;\n}\n\ndocument.querySelectorAll('.company-tab').forEach(tab => {\n    tab.addEventListener('click', function(){\n        switchCompany(this.dataset.companyTab);\n    });\n});\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   SELECTOR IDIOMAS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nconst toggle = document.getElementById('idioma-toggle');\nconst list   = document.getElementById('idioma-list');\nconst flagEl = document.getElementById('flag-activo');\nconst codeEl = document.getElementById('code-activo');\nconst items  = list.querySelectorAll('li');\n\ntoggle.addEventListener('click', function(e){\n    e.stopPropagation();\n    const open = list.classList.toggle('abierto');\n    toggle.setAttribute('aria-expanded', String(open));\n});\n\nitems.forEach(function(li){\n    function sel(){\n        currentLang = li.dataset.langCode;\n        flagEl.textContent = li.dataset.flag;\n        codeEl.textContent = li.dataset.label;\n        items.forEach(i => i.classList.remove('activo'));\n        li.classList.add('activo');\n        list.classList.remove('abierto');\n        toggle.setAttribute('aria-expanded','false');\n        applyLang(currentLang);\n    }\n    li.addEventListener('click', sel);\n    li.addEventListener('keydown', function(e){\n        if(e.key==='Enter'||e.key===' '){ e.preventDefault(); sel(); }\n    });\n});\n\ndocument.addEventListener('click', function(){\n    list.classList.remove('abierto');\n    toggle.setAttribute('aria-expanded','false');\n});\n\nfunction applyLang(lang){\n    const t = _T[lang] || _T.de;\n    document.querySelectorAll('[data-lang]').forEach(el => {\n        el.classList.toggle('active', el.dataset.lang === lang);\n    });\n    document.getElementById('lbl-whatsapp').textContent  = t.whatsapp;\n    document.getElementById('brand-sub').textContent     = t.brandSub;\n    document.getElementById('lbl-phone').textContent     = t.phone;\n    document.getElementById('fab-label').textContent     = t.fab;\n    document.getElementById('lbl-vcard').textContent     = t.vcard;\n    document.getElementById('lbl-nfc').textContent       = t.nfc;\n    document.getElementById('lbl-qr').textContent        = t.qr;\n    document.getElementById('lbl-wallet').textContent    = t.wallet;\n    document.getElementById('lbl-gwallet').textContent   = t.gwallet;\n    document.getElementById('qr-subtitle').textContent   = t.qrSub;\n    document.getElementById('qr-close-lbl').textContent  = t.qrClose;\n}\n\n\/* Deutsch als Startsprache anwenden *\/\napplyLang('de');\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   FAB\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nfunction toggleFab(){\n    document.getElementById('fab-wrap').classList.toggle('open');\n}\ndocument.addEventListener('click', function(e){\n    var fab = document.getElementById('fab-wrap');\n    if(fab && !fab.contains(e.target)) fab.classList.remove('open');\n});\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   NFC \/ SHARE\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nasync function compartirNFC(){\n    var url = window.location.href;\n    if(navigator.share){\n        try{\n            await navigator.share({\n                title: 'Francisco Javier Torres Gallego',\n                text: COMPANIES[currentCompany].name,\n                url\n            });\n            return;\n        } catch(e){}\n    }\n    if('NDEFReader' in window){\n        try{\n            var ndef = new NDEFReader();\n            await ndef.write({records:[{recordType:'url', data:url}]});\n            return;\n        } catch(e){}\n    }\n    try{ await navigator.clipboard.writeText(url); } catch(e){}\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   QR (imagen est\u00e1tica)\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nfunction mostrarQR(){\n    document.getElementById('qr-overlay').classList.add('activo');\n}\ndocument.getElementById('qr-overlay').addEventListener('click', function(e){\n    if(e.target === this) this.classList.remove('activo');\n});\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   WALLETS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nfunction addToAppleWallet(){\n    if(\/iPhone|iPad|iPod\/.test(navigator.userAgent)){\n        var a = document.createElement('a');\n        a.href = 'https:\/\/360stark.link\/Biolinks\/JavierTorres\/JavierTorres-' + currentCompany + '.pkpass';\n        document.body.appendChild(a); a.click(); document.body.removeChild(a);\n    }\n}\n\nfunction addToGoogleWallet(){\n    if(\/Android\/.test(navigator.userAgent)){\n        var a = document.createElement('a');\n        a.href = 'https:\/\/360stark.link\/Biolinks\/JavierTorres\/JavierTorres-' + currentCompany + '.pkpass';\n        a.setAttribute('type','application\/vnd.apple.pkpass');\n        document.body.appendChild(a); a.click(); document.body.removeChild(a);\n    }\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   vCARD (din\u00e1mica por empresa activa)\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nfunction downloadVCard(){\n    var photoUrl = 'https:\/\/360stark.link\/Biolinks\/JavierTorres\/Profil-JavierTorres.jpeg';\n    var c = COMPANIES[currentCompany];\n\n    function buildAndDownload(photoB64){\n        var lines = [\n            'BEGIN:VCARD',\n            'VERSION:3.0',\n            'FN:Francisco Javier Torres Gallego',\n            'N:Torres Gallego;Francisco Javier;;;',\n            'ORG:' + c.name,\n            'TITLE:Agency \u00b7 Made in Europe',\n            'TEL;TYPE=CELL,PREF:+491728458746',\n            'EMAIL;TYPE=WORK:' + c.email,\n            'URL;TYPE=WORK:' + c.web,\n            'X-SOCIALPROFILE;type=instagram;x-user=javiertorresgallego:https:\/\/www.instagram.com\/javiertorresgallego',\n            'X-SOCIALPROFILE;type=linkedin;x-user=francisco-javier-torres-gallego:https:\/\/www.linkedin.com\/in\/francisco-javier-torres-gallego',\n            'X-SOCIALPROFILE;type=whatsapp:+491728458746',\n            'NOTE:' + c.name + ' \u00b7 ' + c.webLabel\n        ];\n\n        if(photoB64){\n            var header = 'PHOTO;ENCODING=b;TYPE=JPEG:';\n            var full   = header + photoB64;\n            lines.push(full.substring(0, 75));\n            for(var offset = 75; offset < full.length; offset += 74){\n                lines.push(' ' + full.substring(offset, offset + 74));\n            }\n        }\n\n        lines.push('END:VCARD');\n\n        var blob = new Blob([lines.join('\\r\\n')], {type:'text\/vcard;charset=utf-8'});\n        var url  = URL.createObjectURL(blob);\n        var a    = document.createElement('a');\n        a.href   = url;\n        a.setAttribute('type','text\/vcard');\n        if(!\/iPhone|iPad|iPod|Android\/i.test(navigator.userAgent)){\n            a.download = 'Javier_Torres_' + c.name.replace(\/\\s+\/g,'_') + '.vcf';\n        }\n        document.body.appendChild(a); a.click(); document.body.removeChild(a);\n        setTimeout(function(){ URL.revokeObjectURL(url); }, 1000);\n    }\n\n    try {\n        var img  = new Image();\n        var done = false;\n        img.crossOrigin = 'anonymous';\n        img.onload = function(){\n            if(done) return; done = true;\n            try {\n                var cv  = document.createElement('canvas');\n                var max = 400;\n                var ratio = Math.min(max \/ img.naturalWidth, max \/ img.naturalHeight, 1);\n                cv.width  = Math.round(img.naturalWidth  * ratio);\n                cv.height = Math.round(img.naturalHeight * ratio);\n                cv.getContext('2d').drawImage(img, 0, 0, cv.width, cv.height);\n                buildAndDownload(cv.toDataURL('image\/jpeg', 0.82).split(',')[1]);\n            } catch(e){ buildAndDownload(null); }\n        };\n        img.onerror = function(){ if(!done){ done = true; buildAndDownload(null); } };\n        img.src = photoUrl + '?_cb=' + Date.now();\n        setTimeout(function(){ if(!done){ done = true; buildAndDownload(null); } }, 3500);\n    } catch(e){ buildAndDownload(null); }\n}\n<\/script>\n\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Francisco Javier Torres Gallego \u00b7 DNT83 &#038; UMDO Francisco Javier Torres Gallego Agency \u00b7 Made in Europe \ud83c\udde9\ud83c\uddea DE \u2013 Deutsch \u25bc \ud83c\uddea\ud83c\uddf8 ES \u2013 Espa\u00f1ol \ud83c\udde9\ud83c\uddea DE \u2013 Deutsch \ud83c\uddec\ud83c\udde7 EN \u2013 English DNT83 UMDO Contacto Kontakt Contact Telefon +49 (0) 172 845 8746 Email torres@dnt83.eu WhatsApp \u00b7 +49 172 845 8746 Redes sociales [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-301","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/360stark.com\/en\/wp-json\/wp\/v2\/pages\/301","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/360stark.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/360stark.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/360stark.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/360stark.com\/en\/wp-json\/wp\/v2\/comments?post=301"}],"version-history":[{"count":6,"href":"https:\/\/360stark.com\/en\/wp-json\/wp\/v2\/pages\/301\/revisions"}],"predecessor-version":[{"id":307,"href":"https:\/\/360stark.com\/en\/wp-json\/wp\/v2\/pages\/301\/revisions\/307"}],"wp:attachment":[{"href":"https:\/\/360stark.com\/en\/wp-json\/wp\/v2\/media?parent=301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}