{"id":14902,"date":"2026-11-11T01:01:16","date_gmt":"2026-11-11T01:01:16","guid":{"rendered":"https:\/\/novomove.com\/lp-portugal-visa-guide\/"},"modified":"2026-11-11T01:01:16","modified_gmt":"2026-11-11T01:01:16","slug":"lp-portugal-visa-guide","status":"publish","type":"page","link":"https:\/\/novomove.com\/pt\/lp-portugal-visa-guide\/","title":{"rendered":"Portugal visa guide 2026: D7, D8 or D2"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"14902\" class=\"elementor elementor-14902\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-lvg0c001 e-con-full e-flex e-con e-parent\" data-id=\"lvg0c001\" data-element_type=\"container\" data-e-type=\"container\" id=\"nm-lp\">\n\t\t\t\t<div class=\"elementor-element elementor-element-lvg0w001 elementor-widget elementor-widget-html\" data-id=\"lvg0w001\" 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<style>\n#nm-lp{--navy:#012147;--gold:#FFC504;--text:#071949;--muted:#5A6A85;--light:#F4F7FC;--line:#E2E8F0;--green:#00875A;color:var(--text);font-family:inherit;line-height:1.6}\n#nm-lp *{box-sizing:border-box}\n#nm-lp .lp-wrap{max-width:1180px;margin:0 auto;padding:0 24px}\n#nm-lp section{padding:88px 0}\n#nm-lp h1,#nm-lp h2,#nm-lp h3{font-family:inherit;margin:0;line-height:1.2;letter-spacing:-0.01em}\n#nm-lp h1{font-size:48px;font-weight:700;color:#fff}\n#nm-lp h2{font-size:34px;font-weight:700;color:var(--navy)}\n#nm-lp h3{font-size:20px;font-weight:700;color:var(--navy)}\n#nm-lp p{margin:0}\n#nm-lp a{text-decoration:none}\n#nm-lp .lp-head{max-width:720px;margin:0 auto 48px;text-align:center}\n#nm-lp .lp-head p{margin-top:14px;font-size:18px;color:var(--muted)}\n#nm-lp .lp-eyebrow{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}\n#nm-lp .lp-light{background:var(--light)}\n\n#nm-lp .lp-btn{display:inline-block;padding:16px 30px;border-radius:8px;font-weight:700;font-size:17px;line-height:1.2;background:var(--gold);color:var(--navy);transition:transform .15s ease,background-color .15s ease}\n#nm-lp .lp-btn:hover{transform:translateY(-1px);background:#ffd23d;color:var(--navy);text-decoration:none}\n#nm-lp .lp-btn--block{display:block;text-align:center}\n#nm-lp .lp-btn-note{margin-top:12px;font-size:14px;color:rgba(255,255,255,.7)}\n\n#nm-lp .lp-hero{background:var(--navy);padding:96px 0 88px}\n#nm-lp .lp-hero__grid{display:grid;grid-template-columns:1.2fr 1fr;gap:56px;align-items:center}\n#nm-lp .lp-hero__lead{margin:20px 0 26px;font-size:19px;color:rgba(255,255,255,.85);max-width:600px}\n#nm-lp .lp-checks{list-style:none;margin:0 0 32px;padding:0}\n#nm-lp .lp-checks li{position:relative;padding:0 0 12px 32px;font-size:17px;color:#fff}\n#nm-lp .lp-checks li:before,#nm-lp .lp-tick li:before{content:\"\";position:absolute;left:0;top:4px;width:20px;height:20px;border-radius:50%;background:var(--gold) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23012147' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/%3E%3C\/svg%3E\") center\/13px no-repeat}\n#nm-lp .lp-trust{margin-top:26px;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px;color:rgba(255,255,255,.75)}\n#nm-lp .lp-trust b{color:#fff}\n\n#nm-lp .lp-call{background:#fff;border-radius:14px;padding:32px;box-shadow:0 20px 50px rgba(0,0,0,.25)}\n#nm-lp .lp-call__label{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}\n#nm-lp .lp-call__title{margin-top:4px;font-size:24px;font-weight:700;color:var(--navy)}\n#nm-lp .lp-call ol{list-style:none;margin:22px 0 26px;padding:0;counter-reset:c}\n#nm-lp .lp-call li{position:relative;counter-increment:c;padding:0 0 16px 40px;font-size:16px;color:var(--text)}\n#nm-lp .lp-call li:before{content:counter(c);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--navy);color:var(--gold);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}\n#nm-lp .lp-call__note{margin-top:12px;font-size:13px;color:var(--muted);text-align:center}\n\n#nm-lp .lp-g3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}\n#nm-lp .lp-g4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}\n#nm-lp .lp-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px}\n#nm-lp .lp-card p{margin-top:10px;color:var(--muted);font-size:16px}\n#nm-lp .lp-step__num{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--navy);color:var(--gold);font-weight:700;margin-bottom:16px}\n#nm-lp .lp-center{text-align:center;margin-top:44px}\n\n#nm-lp .lp-band{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}\n#nm-lp .lp-band__lead{margin:16px 0 24px;font-size:18px;color:var(--muted)}\n#nm-lp .lp-tick{list-style:none;margin:0;padding:0}\n#nm-lp .lp-tick li{position:relative;padding:0 0 12px 32px;font-size:16px}\n#nm-lp .lp-portal{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 50px rgba(1,33,71,.10);overflow:hidden}\n#nm-lp .lp-portal__top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;border-bottom:1px solid var(--line);background:var(--light)}\n#nm-lp .lp-portal__brand{font-weight:800;font-style:italic;letter-spacing:.02em;color:var(--navy)}\n#nm-lp .lp-portal__pill{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green);background:#DFF5EC;border-radius:999px;padding:5px 12px}\n#nm-lp .lp-portal__body{padding:22px}\n#nm-lp .lp-portal__row{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:10px}\n#nm-lp .lp-portal__dot{flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:var(--green);margin-top:2px}\n#nm-lp .lp-portal__dot--next{background:#fff;border:2px dashed var(--gold)}\n#nm-lp .lp-portal__row b{display:block;color:var(--navy);font-size:15px}\n#nm-lp .lp-portal__row span{display:block;color:var(--muted);font-size:13px}\n#nm-lp .lp-portal__row--next{border-color:var(--gold);background:#FFFBEB}\n\n#nm-lp .lp-person{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;text-align:center}\n#nm-lp .lp-person img{display:block;width:100%;height:auto;aspect-ratio:5\/4;object-fit:cover;background:#EEF2F7}\n#nm-lp .lp-person__body{padding:16px}\n#nm-lp .lp-person__name{font-size:18px;font-weight:700;color:var(--navy)}\n#nm-lp .lp-person__role{margin-top:2px;font-size:14px;color:var(--muted)}\n#nm-lp .lp-lawyer{display:flex;align-items:center;gap:16px;max-width:760px;margin:40px auto 0;background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 24px}\n#nm-lp .lp-lawyer img{flex:0 0 56px;width:56px;height:56px;border-radius:50%;object-fit:cover}\n#nm-lp .lp-lawyer p{font-size:15px;color:var(--muted)}\n#nm-lp .lp-lawyer b{color:var(--navy)}\n\n#nm-lp .lp-quote{margin:0;background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;font-style:normal;display:flex;flex-direction:column}\n#nm-lp .lp-quote__stars{color:var(--gold);letter-spacing:2px;margin-bottom:12px}\n#nm-lp .lp-quote p{font-size:16px;color:var(--text);flex:1}\n#nm-lp .lp-quote cite{display:block;margin-top:18px;font-style:normal;font-weight:700;color:var(--navy)}\n#nm-lp .lp-more{text-align:center;margin-top:32px}\n#nm-lp .lp-more a{font-weight:700;color:var(--navy);text-decoration:underline}\n\n#nm-lp .lp-cta{background:var(--navy);text-align:center}\n#nm-lp .lp-cta h2{color:#fff}\n#nm-lp .lp-cta p{margin:14px auto 30px;max-width:620px;font-size:18px;color:rgba(255,255,255,.85)}\n\n@media(max-width:1024px){\n #nm-lp .lp-g4{grid-template-columns:repeat(2,1fr)!important}\n #nm-lp .lp-hero__grid,#nm-lp .lp-band{grid-template-columns:1fr!important;gap:40px}\n}\n@media(max-width:767px){\n #nm-lp section{padding:64px 0}\n #nm-lp .lp-hero{padding:64px 0}\n #nm-lp h1{font-size:34px}\n #nm-lp h2{font-size:28px}\n #nm-lp .lp-g3,#nm-lp .lp-g4{grid-template-columns:1fr!important}\n #nm-lp .lp-btn{display:block;text-align:center}\n #nm-lp .lp-call{padding:24px}\n #nm-lp .lp-lawyer{flex-direction:column;text-align:center}\n}\n\n#nm-lp .lp-lines p{margin:0 0 14px;font-size:19px;line-height:1.55;color:var(--text)}\n#nm-lp .lp-lines h2{margin-bottom:22px}\n#nm-lp .lp-lines--hero p{color:rgba(255,255,255,.88);margin-bottom:10px}\n#nm-lp .lp-lines--hero{margin:22px 0 30px;max-width:600px}\n#nm-lp .lp-strong{font-weight:700;color:var(--navy)}\n#nm-lp .lp-lines--hero .lp-strong{color:#fff}\n#nm-lp .lp-letter{max-width:760px}\n#nm-lp .lp-letter h2{margin-bottom:26px}\n#nm-lp .lp-call ol li b{color:var(--navy)}\n#nm-lp .lp-split{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:960px;margin:0 auto}\n#nm-lp .lp-split__col{background:var(--light);border-radius:14px;padding:30px}\n#nm-lp .lp-split__col p{font-size:18px;color:var(--text)}\n#nm-lp .lp-split__who{font-weight:700;color:var(--navy)!important;margin-bottom:10px!important}\n#nm-lp .lp-qa p{margin:0 0 6px;font-size:18px;color:var(--text)}\n#nm-lp .lp-qa .lp-qa__q{margin-top:26px;font-weight:700;font-size:20px;color:var(--navy)}\n#nm-lp .lp-qa .lp-qa__q:first-child{margin-top:0}\n#nm-lp .lp-founder{display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:center;max-width:900px;margin:0 auto 72px}\n#nm-lp .lp-founder img{display:block;width:100%;height:auto;aspect-ratio:1\/1;object-fit:cover;border-radius:50%;background:#EEF2F7}\n#nm-lp .lp-sign{font-size:16px!important;color:var(--muted)!important;margin-top:6px!important}\n#nm-lp .lp-head--team{margin-bottom:36px}\n@media(max-width:767px){\n #nm-lp .lp-split,#nm-lp .lp-founder{grid-template-columns:1fr!important;gap:24px}\n #nm-lp .lp-founder img{max-width:180px;margin:0 auto}\n #nm-lp .lp-lines p{font-size:17px}\n}\n#nm-lp .lp-trust{align-items:center}\n#nm-lp .lp-tp--hero{width:280px;min-height:32px}\n#nm-lp .lp-tp--reviews{margin-top:18px;min-height:32px}\n#nm-lp .lp-hero{position:relative;overflow:hidden}\n#nm-lp .lp-hero__bg{position:absolute;inset:0;z-index:0}\n#nm-lp .lp-hero__bg picture,#nm-lp .lp-hero__bg img{display:block;width:100%;height:100%}\n#nm-lp .lp-hero__bg img{object-fit:cover;object-position:65% center}\n#nm-lp .lp-hero__bg:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,33,71,.93) 0%,rgba(1,33,71,.82) 38%,rgba(1,33,71,.30) 68%,rgba(1,33,71,.10) 100%)}\n#nm-lp .lp-hero .lp-wrap{position:relative;z-index:1}\n#nm-lp .lp-band--img{align-items:center}\n#nm-lp .lp-lines--spaced{margin-top:22px}\n#nm-lp .lp-photo img{display:block;width:100%;height:auto;border-radius:16px;box-shadow:0 20px 50px rgba(1,33,71,.15)}\n@media(max-width:1024px){#nm-lp .lp-hero__bg:after{background:linear-gradient(180deg,rgba(1,33,71,.72) 0%,rgba(1,33,71,.90) 55%)}}\n\n#lp-cb[hidden]{display:none!important}\n#nm-lp .lp-cb{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px}\n#nm-lp .lp-cb__backdrop{position:absolute;inset:0;background:rgba(1,20,45,.6)}\n#nm-lp .lp-cb__panel{position:relative;width:100%;max-width:460px;max-height:calc(100vh - 32px);overflow:auto;background:#fff;border-radius:16px;padding:30px 28px 24px;box-shadow:0 30px 80px rgba(0,0,0,.35)}\n#nm-lp .lp-cb__x{position:absolute;top:10px;right:12px;width:36px;height:36px;border:0;background:transparent;font-size:28px;line-height:1;color:var(--muted);cursor:pointer;border-radius:50%}\n#nm-lp .lp-cb__x:hover{background:var(--light);color:var(--navy)}\n#nm-lp .lp-cb__title{font-size:24px;font-weight:700;line-height:1.25;color:var(--navy);margin:0 30px 8px 0}\n#nm-lp .lp-cb__sub{font-size:16px;color:var(--muted);margin:0 0 18px}\n#nm-lp .lp-cb__label{display:block;font-size:14px;font-weight:700;color:var(--navy);margin:12px 0 6px}\n#nm-lp .lp-cb__input{width:100%;border:1px solid #CBD5E1;border-radius:8px;padding:11px 12px;font-size:16px;font-family:inherit;color:var(--text);background:#fff}\n#nm-lp .lp-cb__input:focus{outline:2px solid rgba(255,197,4,.6);border-color:var(--navy)}\n#nm-lp .lp-cb__phone{display:flex;gap:8px}\n#nm-lp .lp-cb__cc{flex:0 0 42%;padding-right:6px}\n#nm-lp .lp-cb__methods{display:flex;gap:8px}\n#nm-lp .lp-cb__methods input{position:absolute;opacity:0;width:1px;height:1px}\n#nm-lp .lp-cb__methods label{flex:1;text-align:center;border:2px solid var(--line);border-radius:10px;padding:10px;font-weight:700;color:var(--navy);cursor:pointer}\n#nm-lp .lp-cb__methods input:checked+label{border-color:var(--gold);background:#FFFBEB}\n#nm-lp .lp-cb__methods input:focus-visible+label{outline:2px solid var(--navy)}\n#nm-lp .lp-cb__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}\n#nm-lp .lp-cb__err{margin:12px 0 0;font-size:14px;color:#B42318}\n#nm-lp .lp-cb__submit{display:block;width:100%;margin-top:18px;border:0;cursor:pointer;font-family:inherit}\n#nm-lp .lp-cb__submit:disabled{opacity:.7;cursor:default}\n#nm-lp .lp-cb__small{margin:10px 0 0;font-size:12px;color:var(--muted);text-align:center}\n#nm-lp .lp-cb__small a{color:var(--navy);text-decoration:underline}\n#nm-lp .lp-cb__done .lp-btn{margin-top:8px}\n@media(max-width:767px){\n #nm-lp .lp-cb{align-items:flex-end;padding:0}\n #nm-lp .lp-cb__panel{max-width:none;border-radius:18px 18px 0 0;padding:24px 20px 84px;max-height:92vh}\n #nm-lp .lp-cb__title{font-size:21px}\n}\n\n#nm-lp .lp-top{position:sticky;top:0;z-index:1000;background:var(--navy);border-bottom:1px solid rgba(255,255,255,.08)}\n#nm-lp .lp-top__in{display:flex;align-items:center;justify-content:space-between;gap:16px;height:72px}\n#nm-lp .lp-top__logo img{display:block;height:28px;width:auto}\n#nm-lp .lp-top__cta{display:inline-block;background:var(--gold);color:var(--navy);font-weight:700;font-size:15px;padding:11px 20px;border-radius:999px;white-space:nowrap}\n#nm-lp .lp-top__cta:hover{background:#ffd23d;color:var(--navy)}\n#nm-lp .lp-foot{background:#01183A;padding:40px 0 48px}\n#nm-lp .lp-foot__disc{max-width:860px;margin:0 auto 20px;font-size:13px;line-height:1.6;color:rgba(255,255,255,.65);text-align:center}\n#nm-lp .lp-foot__links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin:0;font-size:13px;color:rgba(255,255,255,.55)}\n#nm-lp .lp-foot__links a{color:rgba(255,255,255,.8);text-decoration:underline}\n@media(max-width:767px){\n #nm-lp .lp-top__in{height:60px}\n #nm-lp .lp-top__logo img{height:22px}\n #nm-lp .lp-top__cta{font-size:14px;padding:9px 14px}\n}\n\n#nm-lp .lp-top__nav{display:flex;gap:26px;margin-left:auto;margin-right:8px}\n#nm-lp .lp-top__nav a{color:rgba(255,255,255,.85);font-size:15px;font-weight:600}\n#nm-lp .lp-top__nav a:hover{color:#fff;text-decoration:underline}\n#nm-lp .lp-top__actions{display:flex;align-items:center;gap:10px}\n#nm-lp .lp-top__cb{display:inline-flex;align-items:center;gap:8px;background:transparent;border:2px solid rgba(255,255,255,.5);color:#fff;font-family:inherit;font-weight:700;font-size:15px;padding:9px 16px;border-radius:999px;cursor:pointer;white-space:nowrap}\n#nm-lp .lp-top__cb:hover{border-color:#fff}\n#nm-lp .lp-cb-link{margin:16px 0 0;font-size:15px;color:rgba(255,255,255,.8)}\n#nm-lp .lp-cb-link button{background:none;border:0;padding:0;font:inherit;font-weight:700;color:#fff;text-decoration:underline;cursor:pointer}\n#nm-lp #how-it-works,#nm-lp #reviews,#nm-lp #team{scroll-margin-top:84px}\n@media(max-width:1100px){#nm-lp .lp-top__nav{display:none}}\n@media(max-width:767px){\n #nm-lp .lp-top__cb{padding:8px;border-width:2px}\n #nm-lp .lp-top__cb span{display:none}\n #nm-lp .lp-top__actions{gap:8px}\n #nm-lp .lp-cb-link{text-align:center}\n}\n#nm-lp .lp-cb__hint{font-weight:400;color:var(--muted)}\n<\/style>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-lvg0w002 elementor-widget elementor-widget-html\" data-id=\"lvg0w002\" 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<style>\n#nm-lp #d7,#nm-lp #d8,#nm-lp #d2,#nm-lp #timeline,#nm-lp #faq,#nm-lp #visa-check{scroll-margin-top:84px}\n#nm-lp .lp-glance li{position:relative;padding:0 0 16px 0;font-size:16px;color:var(--text);list-style:none}\n#nm-lp .lp-glance{margin:18px 0 24px;padding:0}\n#nm-lp .lp-glance b{display:block;color:var(--navy);font-size:17px}\n#nm-lp .lp-visa{max-width:820px;margin:0 auto}\n#nm-lp .lp-visa h2{margin-bottom:8px}\n#nm-lp .lp-visa__tag{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}\n#nm-lp .lp-facts{width:100%;border-collapse:collapse;margin:24px 0 8px;font-size:17px}\n#nm-lp .lp-facts th,#nm-lp .lp-facts td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}\n#nm-lp .lp-facts th{width:42%;color:var(--navy);font-weight:700;background:var(--light)}\n#nm-lp .lp-worry{margin-top:22px;background:#FFFBEB;border-left:4px solid var(--gold);border-radius:10px;padding:18px 20px}\n#nm-lp .lp-worry p{margin:0 0 6px;font-size:17px}\n#nm-lp .lp-worry .lp-worry__q{font-weight:700;color:var(--navy)}\n#nm-lp .lp-steps{list-style:none;margin:0 auto;padding:0;max-width:820px;counter-reset:s}\n#nm-lp .lp-steps li{position:relative;counter-increment:s;padding:0 0 22px 56px;font-size:17px;color:var(--text)}\n#nm-lp .lp-steps li:before{content:counter(s);position:absolute;left:0;top:0;width:36px;height:36px;border-radius:50%;background:var(--navy);color:var(--gold);font-weight:700;display:flex;align-items:center;justify-content:center}\n#nm-lp .lp-steps b{display:block;color:var(--navy);font-size:18px}\n#nm-lp .lp-limits{max-width:820px;margin:0 auto;background:var(--light);border-radius:14px;padding:28px 30px}\n#nm-lp .lp-limits p{margin:0 0 10px;font-size:18px}\n#nm-lp .lp-card h3 a{color:var(--navy);text-decoration:underline}\n@media(max-width:767px){\n #nm-lp .lp-facts th,#nm-lp .lp-facts td{display:block;width:100%}\n #nm-lp .lp-facts th{border-bottom:0;padding-bottom:4px}\n #nm-lp .lp-limits{padding:22px}\n}\n#nm-lp .lp-hero.nmvq-on .lp-hero__grid{grid-template-columns:1fr!important}\n#nm-lp .lp-hero.nmvq-on .lp-hero__grid>div:first-child{display:none}\n#nm-lp .lp-hero.nmvq-on{padding:32px 0 48px;overflow:visible}\n#nm-lp .lp-hero.nmvq-on .lp-hero__bg{overflow:hidden}\n#nm-lp .lp-hero__grid{align-items:center}\n#nm-lp .lp-hero{padding:56px 0 64px}\n#nm-lp .lp-hero__grid{align-items:start}\n#nm-lp .lp-hero-read{margin:4px 0 0}\n#nm-lp .lp-hero-read a{color:#fff;text-decoration:underline;font-weight:600}\n@media(max-width:1024px){\n #nm-lp .lp-hero{padding:28px 0 40px}\n #nm-lp .lp-hero__grid{gap:20px!important}\n #nm-lp .lp-lines--hero p:not(.lp-strong),#nm-lp .lp-hero-read,#nm-lp .lp-hero .lp-cb-link{display:none}\n #nm-lp .lp-lines--hero{margin:12px 0 0}\n #nm-lp .lp-hero h1{font-size:28px}\n #nm-lp .lp-eyebrow{margin-bottom:10px}\n}\n<\/style>\n\n<header class=\"lp-top\">\n  <div class=\"lp-wrap lp-top__in\">\n    <a class=\"lp-top__logo\" href=\"\/\" aria-label=\"Novomove home\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2023\/05\/novomove-logo.png\" alt=\"Novomove\" width=\"160\" height=\"32\" loading=\"eager\"><\/a>\n    <nav class=\"lp-top__nav\" aria-label=\"Page sections\">\n      <a href=\"#d7\">D7<\/a>\n      <a href=\"#d8\">D8<\/a>\n      <a href=\"#d2\">D2<\/a>\n      <a href=\"#timeline\">Timeline<\/a>\n      <a href=\"#faq\">FAQ<\/a>\n    <\/nav>\n    <div class=\"lp-top__actions\">\n      <button type=\"button\" class=\"lp-top__cb\" data-cb-open=\"header\" aria-label=\"Request a call back\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1l-2.3 2.2z\"\/><\/svg><span>Call me back<\/span><\/button>\n      <a class=\"lp-top__cta\" data-lp-cta=\"header\" href=\"\/free-consultation-with-our-expert-team\/\">Book your free call<\/a>\n    <\/div>\n  <\/div>\n<\/header>\n\n<section class=\"lp-hero\">\n  <div class=\"lp-hero__bg\" aria-hidden=\"true\">\n    <picture>\n      <source type=\"image\/webp\" srcset=\"\/wp-content\/uploads\/2026\/10\/lp-lisbon-day-800.webp 800w, \/wp-content\/uploads\/2026\/10\/lp-lisbon-day-1344.webp 1344w\" sizes=\"100vw\">\n      <img fetchpriority=\"high\" class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" src=\"\/wp-content\/uploads\/2026\/10\/lp-lisbon-day-1200.jpg\" alt=\"\" width=\"1200\" height=\"671\" loading=\"eager\" fetchpriority=\"high\" decoding=\"async\">\n    <\/picture>\n  <\/div>\n  <div class=\"lp-wrap lp-hero__grid\">\n    <div>\n      <span class=\"lp-eyebrow\">Portugal visa guide &middot; Updated November 2026<\/span>\n      <h1>Moving to Portugal in 2026? See which visa fits, and which tax regime you can claim.<\/h1>\n      <div class=\"lp-lines lp-lines--hero\">\n        <p>Most people moving from the US, the UK or Canada use one of three visas: the D7, the D8 or the D2. This page explains all three.<\/p>\n        <p>The check also covers a job offer in Portugal, the Golden Visa and moving with an EU partner. And it tells you if IFICI or IRS Jovem could cut your tax.<\/p>\n        <p class=\"lp-strong\">Answer a few quick questions. You see your result straight away, with no sign-up.<\/p>\n      <\/div>\n      <p class=\"lp-hero-read\"><a href=\"#d7\">Or read the guide first &darr;<\/a><\/p>\n      <div class=\"lp-trust\"><span><b>7,200+<\/b> people moved with us<\/span><div class=\"lp-tp lp-tp--hero\"><div class=\"trustpilot-widget\" data-locale=\"en-US\" data-template-id=\"5419b6a8b0d04a076446a9ad\" data-businessunit-id=\"645c3f56484ec7b9c3eabc7b\" data-style-height=\"32px\" data-style-width=\"280px\" data-theme=\"dark\" data-token=\"98842949-2db9-4aaf-b59e-993006c0c280\" data-min-review-count=\"0\" data-style-alignment=\"left\"><a href=\"https:\/\/www.trustpilot.com\/review\/novomove.com\" target=\"_blank\" rel=\"noopener\">Trustpilot<\/a><\/div><\/div><\/div>\n      <p class=\"lp-cb-link\">Rather talk it through? <button type=\"button\" data-cb-open=\"hero\">Leave your number<\/button><\/p>\n    <\/div>\n    <div class=\"lp-quizwrap\" id=\"visa-check\">\n<style>\n#nmvq{--nv:#012147;--gd:#FFC504;--tx:#071949;--mu:#5A6A85;--li:#F4F7FC;--ln:#E2E8F0;color:var(--tx);font-family:inherit}\n#nmvq *{box-sizing:border-box}\n\/* start card *\/\n#nmvq .vq-start{background:#fff;border-radius:16px;padding:32px;box-shadow:0 20px 50px rgba(0,0,0,.28)}\n#nmvq .vq-start h3{font-size:26px;line-height:1.2;color:var(--nv);margin:0 0 10px}\n#nmvq .vq-start p{font-size:17px;line-height:1.55;color:var(--mu);margin:0 0 18px}\n#nmvq .vq-ticks{list-style:none;margin:0 0 22px;padding:16px 0 0;border-top:1px solid var(--ln);display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}\n#nmvq .vq-ticks li{position:relative;padding-left:28px;font-size:15px;line-height:1.4;color:var(--tx)}\n#nmvq .vq-ticks li:before{content:\"\";position:absolute;left:0;top:1px;width:19px;height:19px;border-radius:50%;background:#FFF4CC url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23012147' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/%3E%3C\/svg%3E\") center\/12px no-repeat}\n#nmvq .vq-small{display:block;text-align:center;font-size:14px;color:var(--mu);margin-top:12px}\n\/* panel *\/\n#nmvq .vq-panel{display:grid;grid-template-columns:minmax(220px,36%) 1fr;gap:40px;background:#FBFAF7;border-radius:18px;padding:20px;box-shadow:0 20px 50px rgba(0,0,0,.28);min-height:520px}\n#nmvq .vq-img{border-radius:12px;overflow:hidden;background:#dfe6ef;position:relative}\n#nmvq .vq-img img{display:block;width:100%;height:100%;object-fit:cover;position:absolute;inset:0}\n#nmvq .vq-img span{position:absolute;left:14px;top:12px;color:#fff;font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;background:rgba(1,33,71,.72);padding:5px 10px;border-radius:99px;line-height:1.2}\n#nmvq button{touch-action:manipulation}\n#nmvq .vq-opt:focus-visible,#nmvq .vq-back:focus-visible,#nmvq .vq-next:focus-visible,#nmvq .nmvq-btn:focus-visible,#nmvq .vq-link:focus-visible{outline:3px solid var(--nv);outline-offset:3px}\n#nmvq .vq-body{display:flex;flex-direction:column;padding:28px 24px 8px 0;min-width:0}\n#nmvq .vq-bar{height:6px;background:#E9E4D8;border-radius:99px;overflow:hidden;margin-bottom:34px}\n#nmvq .vq-bar i{display:block;height:100%;background:var(--gd);transition:width .3s ease}\n#nmvq h3{font-size:34px;line-height:1.15;color:var(--nv);margin:0 0 10px;outline:none;letter-spacing:-.01em}\n#nmvq .vq-hint{font-size:16px;line-height:1.5;color:var(--mu);margin:0 0 20px;max-width:560px}\n#nmvq .vq-opts{display:grid;gap:10px;max-width:560px}\n#nmvq .vq-opt{display:flex;align-items:center;gap:14px;width:100%;text-align:left;font:inherit;font-size:17px;color:var(--tx);background:#fff;border:1.5px solid var(--ln);border-radius:12px;padding:14px 16px;cursor:pointer;min-height:52px;transition:border-color .15s ease,background .15s ease}\n#nmvq .vq-opt:hover{border-color:#B9C3D3}\n#nmvq .vq-dot{flex:0 0 20px;width:20px;height:20px;border-radius:50%;border:2px solid #B9C3D3;background:#fff;position:relative}\n#nmvq .vq-opt.is-multi .vq-dot{border-radius:5px}\n#nmvq .vq-opt[aria-pressed=\"true\"]{border-color:var(--nv);background:#F6F8FC}\n#nmvq .vq-opt[aria-pressed=\"true\"] .vq-dot{border-color:var(--nv);background:var(--nv);box-shadow:inset 0 0 0 3px #fff}\n#nmvq .vq-opt.is-multi[aria-pressed=\"true\"] .vq-dot{box-shadow:none;background:var(--nv) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'\/%3E%3C\/svg%3E\") center\/13px no-repeat}\n#nmvq .vq-nav{display:flex;gap:12px;align-items:center;margin-top:auto;padding-top:28px}\n#nmvq .vq-back{background:#fff;border:1.5px solid var(--ln);border-radius:999px;font:inherit;font-weight:600;font-size:16px;color:var(--nv);padding:12px 22px;cursor:pointer}\n#nmvq .vq-back[hidden]{display:none}\n#nmvq .vq-next,#nmvq .nmvq-btn{display:inline-block;border:0;cursor:pointer;font:inherit;font-weight:700;font-size:17px;padding:14px 28px;border-radius:999px;background:var(--gd);color:var(--nv);text-decoration:none;text-align:center}\n#nmvq .vq-next:hover,#nmvq .nmvq-btn:hover{background:#ffd23d;color:var(--nv)}\n#nmvq .vq-next[disabled]{opacity:.45;cursor:default}\n#nmvq .nmvq-btn--block{display:block;width:100%}\n\/* result *\/\n#nmvq .vq-label{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mu)}\n#nmvq .nmvq-res h3{margin-top:8px}\n#nmvq .nmvq-res p{font-size:17px;line-height:1.6;margin:0 0 10px;max-width:620px}\n#nmvq .nmvq-note{font-size:14px!important;color:var(--mu)}\n#nmvq a.nmvq-inline{color:var(--nv);font-weight:700;text-decoration:underline}\n#nmvq .nmvq-tax{margin:18px 0 6px;padding:18px 20px;border-left:4px solid var(--gd);background:#FFFBEB;border-radius:10px;max-width:620px}\n#nmvq .nmvq-tax p{margin:8px 0 0;font-size:16px}\n#nmvq .nmvq-tax b{color:var(--nv)}\n#nmvq .nmvq-gate{margin-top:20px;background:#fff;border:1.5px solid var(--ln);border-radius:12px;padding:20px;max-width:620px}\n#nmvq .nmvq-gate b{display:block;color:var(--nv);font-size:18px;margin-bottom:10px}\n#nmvq label{display:block;font-size:14px;font-weight:700;color:var(--nv);margin:10px 0 6px}\n#nmvq input[type=email],#nmvq input[type=text],#nmvq input[type=tel]{width:100%;border:1px solid #CBD5E1;border-radius:8px;padding:12px;font:inherit;font-size:16px;background:#fff;color:var(--tx)}\n#nmvq .nmvq-check{display:flex;gap:10px;align-items:flex-start;font-weight:400;color:var(--tx);font-size:15px;margin-top:12px}\n#nmvq .nmvq-check input{margin-top:3px;width:18px;height:18px}\n#nmvq .nmvq-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}\n#nmvq .nmvq-err{color:#B42318;font-size:14px;margin:10px 0 0}\n#nmvq .nmvq-small{font-size:12px;color:var(--mu);margin:10px 0 0}\n#nmvq .nmvq-small a{color:var(--nv)}\n#nmvq .nmvq-sent{color:#00875A;font-weight:700}\n#nmvq .vq-link{background:none;border:0;font:inherit;font-size:15px;color:var(--mu);text-decoration:underline;cursor:pointer;padding:8px 0}\n@media(max-width:900px){\n #nmvq .vq-panel{grid-template-columns:1fr;gap:0;padding:0;min-height:0;background:#fff}\n #nmvq .vq-img{height:120px;border-radius:18px 18px 0 0}\n #nmvq .vq-body{padding:22px 18px 18px}\n #nmvq .vq-bar{margin-bottom:22px}\n #nmvq h3{font-size:24px}\n #nmvq .vq-nav{position:sticky;bottom:0;z-index:2;background:#fff;margin:0 -18px -18px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -6px 16px rgba(1,33,71,.08);border-radius:0 0 18px 18px}\n body.nmvq-open .intercom-lightweight-app,body.nmvq-open .intercom-launcher,body.nmvq-open #intercom-container{display:none!important}\n #nmvq .vq-next{flex:1}\n #nmvq .vq-start{padding:24px}\n #nmvq .vq-ticks{grid-template-columns:1fr}\n}\n@media(prefers-reduced-motion:reduce){#nmvq .vq-bar i{transition:none}}\n<\/style>\n<div id=\"nmvq\"><\/div>\n<script nowprocket data-nowprocket>\n\/* Visa-fit quiz rules. Single source for the quiz widget AND the n8n Code node.\n   2026 figures: RMMG \u20ac920 (Decreto-Lei 139\/2025); D7 100\/50\/30% (Portaria 1563\/2007);\n   D8 3-month average >= 4 x RMMG = \u20ac3,680 (about \u20ac44,160 a year);\n   D3 employee track 3 x IAS = \u20ac1,611.39 a month gross (IAS \u20ac537.13, Portaria 480-A\/2025\/1).\n   Change them here only (January list).\n   v3 (11 Nov 2026, after Portugalize): one answer per screen, single income source,\n   yearly income bands, Golden Visa named, D1 and D3 added. *\/\nvar NVQ = (function(){\n  var MW = 920, D8 = 4 * MW, HQ = 1611, MW14 = MW*14, HQ14 = 22560; \/* yearly = monthly x 14 (holiday + Christmas pay); 1,611.39 x 14 = 22,559.46 *\/\n  var I = '\/wp-content\/uploads\/2026\/';\n  var Q = [\n    { key:'when', img:I+'11\/quiz\/d7-renting-lisbon-tram-quiz.jpg', hint:\"So we can tell you what to do first.\", q:'Where are you in your move?', opts:[\n      ['here',\"I'm already in Portugal\"],['0-3m','Moving in the next 3 months'],['3-6m','In 3 to 6 months'],['6-12m','In 6 to 12 months'],['exploring','Just exploring']]},\n    { key:'cit', img:I+'11\/quiz\/cta-porto-ribeira-quiz.jpg', hint:\"This tells us whether you need a visa at all.\", q:\"What's your citizenship?\", opts:[\n      ['us','United States'],['uk','United Kingdom'],['ca','Canada'],['eu','An EU, EEA or Swiss country'],['other','Another country']]},\n    { key:'who', img:I+'11\/quiz\/eu-family-lisbon-miradouro-quiz.jpg', hint:\"A partner with an EU passport can mean you don't need a visa at all.\", q:\"Who's moving with you?\", opts:[\n      ['solo','Just me'],['eup','A partner with an EU, EEA or Swiss passport'],['partner','A partner'],['partner_kids','A partner and children'],['kids','Children']]},\n    { key:'kids', img:I+'11\/quiz\/cta-porto-riverside-family-quiz.jpg', hint:\"Each child adds to the income you need to show.\", when:function(a){return a.who==='partner_kids'||a.who==='kids';}, q:'How many children?', opts:[\n      ['1','1'],['2','2'],['3','3'],['4','4 or more']]},\n    { key:'src', img:I+'11\/quiz\/d7-hero-porto-terrace-quiz.jpg', hint:\"Pick the main one. Your visa depends on where your money comes from.\", when:function(a){return a.cit!=='eu' && a.who!=='eup';}, q:'What will you live on in Portugal?', opts:[\n      ['pension','A pension, rentals or investments'],['job','A remote job with a company outside Portugal'],\n      ['freelance','Freelance work for clients outside Portugal'],['ptjob','A job with a company in Portugal'],\n      ['business','My own business in Portugal'],['invest','An investment in Portugal (Golden Visa)'],['else','Something else, like study']]},\n    { key:'inc', img:I+'11\/quiz\/cta-lisbon-viewpoint-quiz.jpg', hint:\"After tax, for your whole household. A rough figure is fine.\", when:function(a){var s=a.src; return s==='pension'||s==='job'||s==='freelance';}, q:'Roughly how much is that a year?', opts:[\n      ['y0','Under \u20ac11,000'],['y1','\u20ac11,000 to \u20ac20,000'],['y2','\u20ac20,000 to \u20ac44,000'],['y3','\u20ac44,000 to \u20ac75,000'],['y4','Over \u20ac75,000']]},\n    { key:'inv', img:I+'11\/quiz\/cta-porto-crystal-palace-gardens-quiz.jpg', hint:\"The Golden Visa routes start at \u20ac250,000.\", when:function(a){return a.src==='invest';}, q:'How much are you looking to invest?', opts:[\n      ['i0','Under \u20ac250,000'],['i1','\u20ac250,000 to \u20ac499,999'],['i2','\u20ac500,000 or more']]},\n    { key:'offer', img:I+'11\/quiz\/cta-lisbon-coworking-terrace-quiz.jpg', hint:\"A Portuguese work visa starts with the employer's offer.\", when:function(a){return a.src==='ptjob';}, q:'Do you have the job offer yet?', opts:[\n      ['signed','Yes, a signed contract'],['offer','Yes, an offer in writing'],['no','Not yet']]},\n    { key:'sal', img:I+'11\/quiz\/cta-lisbon-viewpoint-quiz.jpg', hint:\"For the year, before tax, with holiday and Christmas pay. Most Portuguese jobs pay 14 times a year.\", when:function(a){return a.src==='ptjob' && a.offer && a.offer!=='no';}, q:\"What's the salary in the offer?\", opts:[\n      ['s0','Under \u20ac12,880'],['s1','\u20ac12,880 to \u20ac22,560'],['s2','More than \u20ac22,560'],['unsure',\"I'm not sure\"]]},\n    { key:'hq', img:I+'11\/quiz\/d7-new-york-douro-vineyards-quiz.jpg', hint:\"A degree, or 5 years' experience, can open the D3. It's faster for families.\", when:function(a){return a.src==='ptjob' && a.offer && a.offer!=='no';}, q:'Which of these do you have?', opts:[\n      ['deg','A university degree'],['dip','A post-school diploma, but no degree'],['exp',\"No degree, but 5 years' experience in this kind of work\"],['none','None of these']]},\n    { key:'age', img:I+'11\/quiz\/cta-silver-coast-beach-dog-quiz.jpg', hint:\"Portugal has a tax break for people 35 and under.\", tax:true, when:function(a){return ['job','freelance','ptjob','business'].indexOf(a.src)>=0;}, q:'Now your tax. Are you 35 or under?', opts:[\n      ['yes','Yes, 35 or under'],['no','No, over 35']]},\n    { key:'ptres', img:I+'11\/quiz\/d8-canada-algarve-terrace-quiz.jpg', hint:\"The IFICI tax regime is only for people who weren't resident here recently.\", tax:true, when:function(a){return ['job','freelance','ptjob','business'].indexOf(a.src)>=0;}, q:'Have you been tax resident in Portugal in the last 5 years?', opts:[\n      ['no','No'],['yes','Yes'],['unsure',\"I'm not sure\"]]},\n    { key:'qual', img:I+'11\/quiz\/d7-new-york-douro-vineyards-quiz.jpg', hint:\"A degree, or a post-school diploma one step below. Most IFICI routes ask for one.\", tax:true, when:function(a){return a.src==='business';}, q:'Do you have a post-school qualification?', opts:[\n      ['yes','Yes'],['no','No']]}\n  ];\n  var BAND_MIN = { y0:0, y1:11000, y2:20000, y3:44000, y4:75001 };\n  var BAND_MAX = { y0:10999, y1:19999, y2:43999, y3:75000, y4:Infinity };\n  function eur(n){ return '\u20ac' + String(n).replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, ','); }\n  function household(a){\n    var adults = (a.who==='partner'||a.who==='partner_kids'||a.who==='eup') ? 2 : 1;\n    var kids = (a.who==='partner_kids'||a.who==='kids') ? Math.min(parseInt(a.kids||'1',10),4) : 0;\n    return { adults:adults, kids:kids, d7: MW + (adults-1)*MW*0.5 + kids*Math.round(MW*0.3) };\n  }\n  var T = {\n    art15:{ title:\"You may not need a visa at all.\", text:[\"Your partner is an EU, EEA or Swiss citizen. That's your way in, with no D7 or D8 needed.\",'Your partner registers in Portugal first. Then you apply to AIMA as their family member.'], link:['\/article-15-portugal\/','How the family route works'] },\n    crue:{ title:\"You don't need a visa.\", text:[\"You're an EU, EEA or Swiss citizen, so you can just move.\",\"After 3 months in Portugal, you register at your local c\u00e2mara. That's the CRUE, your residence certificate.\"], link:['\/crue-portugal\/','Read our CRUE guide'] },\n    gv:{ title:'The Golden Visa could be your route.', text:['You invest, and you get residence.','The two routes we work with start at \u20ac500,000 in a fund, or \u20ac250,000 on the cultural route.',\"And you don't have to live in Portugal full time.\"] },\n    gv_low:{ title:'Not the Golden Visa, on that budget.', text:['The routes we work with start at \u20ac250,000 on the cultural route, or \u20ac500,000 in a fund.','If you have a pension or other income, the D7 could fit instead.'] },\n    d8:{ title:'The D8 looks like your visa.', text:['The D8 needs '+eur(D8)+' a month from work outside Portugal. That\\'s about '+eur(D8*12)+' a year.','The consulate looks at your average over the last 3 months.'] },\n    d8_low:{ title:'Not the D8 yet.', text:['The D8 needs '+eur(D8)+' a month, on average, over your last 3 months. That\\'s about '+eur(D8*12)+' a year.','If you also have a pension or investments, the D7 could still work.'] },\n    d7:{ title:'The D7 looks like your visa.', text:['Your pension or investment income covers the D7 line for your household.'] },\n    d7_close:{ title:'The D7 could work. It comes down to the exact number.', text:['Your income is close to the D7 line for your household.'] },\n    d7_low:{ title:'Not the D7, on these numbers.', text:[] },\n    d2:{ title:'The D2 looks like your visa.', text:[\"It's the visa for starting or moving a business to Portugal.\",\"You'll need a business plan. Your own savings matter just as much.\"] },\n    d3:{ title:'The D3 looks like your visa.', text:['It\\'s the visa for highly qualified work. Your offer pays more than '+eur(HQ14)+' a year before tax ('+eur(HQ)+' a month, paid 14 times), and you have a degree or 5 years\\' experience.','The contract has to run for at least 6 months.','Your family can join you straight away. On most other visas, they now wait 2 years.'] },\n    d1:{ title:'The D1 looks like your visa.', text:['It\\'s the work visa for a job with an employer in Portugal.','The salary has to be at least the minimum wage: '+eur(MW)+' a month in 2026. That\\'s '+eur(MW14)+' a year with holiday and Christmas pay.'] },\n    d1_low:{ title:'Not a work visa, on that salary.', text:['A Portuguese work visa needs a salary of at least '+eur(MW14)+' a year, before tax. That\\'s the 2026 minimum wage: '+eur(MW)+' a month, paid 14 times.','If the offer changes, run the check again.'] },\n    job_first:{ title:'You need the job offer first.', text:['A Portuguese work visa starts with a signed contract or a written offer from an employer here.',\"Portugal's job-seeker visa isn't open yet. So there's no visa for coming over to look for work.\"] },\n    work_unsure:{ title:'A work visa looks like your route. Which one depends on the salary.', text:['At '+eur(MW14)+' a year or more before tax, it\\'s the D1.','At more than '+eur(HQ14)+' a year ('+eur(HQ)+' a month), with a degree or 5 years\\' experience, it\\'s the D3. Your family can join you sooner on the D3.'] },\n    person:{ title:'Yours needs a closer look.', text:['Study and mixed situations each have their own route.','A 15-minute call is the quickest way to find yours.'] }\n  };\n  \/* Tax step. Facts from our live posts (checked 11 Nov 2026): \/ifici-portugal\/ and\n     \/ifici-remote-work-foreign-employer\/ (EBF art. 58-A, IAPMEI Aviso 4812\/2025\/2) and the\n     income tax calculator (IRS Jovem, CIRS art. 12-B: 100\/75\/75\/75\/50\/50\/50\/25\/25\/25%, cap 55 x IAS). *\/\n  function taxView(a){\n    var src=[].concat(a.src||[]), has=function(k){return src.indexOf(k)>=0;}, items=[], tags=[];\n    var works = has('job')||has('ptjob')||has('freelance')||has('business');\n    a = JSON.parse(JSON.stringify(a));\n    a.work = has('job')?'remote_emp' : has('freelance')?'freelance' : has('ptjob')?'pt_emp' : has('business')?'own_co' : undefined;\n    if (a.hq && !a.qual) a.qual = (a.hq==='deg'||a.hq==='dip') ? 'yes' : 'no';\n    if (a.ptres==='yes'){ items.push(['IFICI probably isn\\'t open to you',\"It's only for people who weren't tax resident in Portugal in any of the last 5 years.\"]); tags.push('tax:ifici-no'); }\n    else if (!works && has('pension')){ items.push(['IFICI won\\'t help with a pension',\"It's for qualifying work in Portugal. Pensions aren't covered.\"]); tags.push('tax:ifici-no'); }\n    else if (!works && has('invest')){ items.push(['IFICI needs work in Portugal',\"Investing on its own doesn't get you in.\"]); tags.push('tax:ifici-no'); }\n    else if (!works){ \/* no income source we can judge: say nothing about IFICI *\/ }\n    else if (a.work==='remote_emp'){ items.push(['Your remote job won\\'t get you IFICI',\"Pay from a company abroad doesn't qualify. Your own Portuguese company can, if it pays you a salary as its manager and its activity is on the official list.\"]); tags.push('tax:ifici-remote'); }\n    else if (a.work==='freelance'){ items.push(['Green receipts don\\'t qualify for IFICI','The usual way in is your own Portuguese company, paying yourself a salary as its manager.']);\n      items.push(['As a freelancer, you\\'re taxed on 75% of what you invoice','That\\'s for most services. In your first 2 years, it\\'s less.']); tags.push('tax:ifici-no','tax:freelancer'); }\n    else if ((a.work==='pt_emp'||a.work==='own_co') && a.qual==='no'){ items.push(['IFICI is harder without a qualification','Most of its job routes ask for a degree, or a post-school diploma one step below.']); tags.push('tax:ifici-no'); }\n    else if (a.work==='pt_emp'||a.work==='own_co'){ var t=['IFICI could fit','20% tax on qualifying work income in Portugal, and most foreign income exempt, for 10 years. You apply by 15 January after your first year as a resident.'];\n      if (a.inc==='y0'||a.inc==='y1'||a.sal==='s0'||a.sal==='s1') t[1]+=' Below about \u20ac32,500 a year, though, the normal tax rates already take less than 20%.';\n      if (a.ptres==='unsure') t[1]+=' Check your Portuguese tax record for the last 5 years first.';\n      items.push(t); tags.push('tax:ifici-maybe');\n      if (a.work==='own_co') items.push(['Your company has to fit your visa too','Talk to us before you set one up.']); }\n    else { items.push(['IFICI could fit, depending on how you set up','You\\'d need a Portuguese employer, or your own Portuguese company paying you a salary.']); tags.push('tax:ifici-unsure'); }\n    if (a.age==='yes' && works){ items.push(['IRS Jovem could fit','Part of your work income is tax-free for your first 10 years of earning: 100% in year 1, then 75%, 50% and 25%, up to about \u20ac29,500 a year. If IFICI is also an option, compare them first. Once you\\'ve used IFICI, you can\\'t switch to IRS Jovem.']); tags.push('tax:jovem-maybe'); }\n    return { items:items, tags:tags };\n  }\n  function route(a){\n    var s = a.src, h = household(a), r;\n    var min = BAND_MIN[a.inc], max = BAND_MAX[a.inc], line = h.d7*12;\n    if (a.cit==='eu') r='crue';\n    else if (a.who==='eup') r='art15';\n    else if (s==='invest') r = (a.inv==='i1'||a.inv==='i2') ? 'gv' : 'gv_low';\n    else if (s==='ptjob'){\n      if (a.offer==='no') r='job_first';\n      else if (a.sal==='s2' && (a.hq==='deg'||a.hq==='exp')) r='d3';\n      else if (a.sal==='s1'||a.sal==='s2') r='d1';\n      else if (a.sal==='s0') r='d1_low';\n      else r='work_unsure';\n    }\n    else if ((s==='job'||s==='freelance') && min!==undefined) r = min>=44000 ? 'd8' : 'd8_low';\n    else if (s==='pension' && min!==undefined) r = min>=line ? 'd7' : max>=line ? 'd7_close' : 'd7_low';\n    else if (s==='business') r='d2';\n    else r='person';\n    var t = JSON.parse(JSON.stringify(T[r]));\n    if (r==='d7'||r==='d7_low'||r==='d7_close'){\n      var who = (h.adults===2?'2 adults':'1 adult')+(h.kids?(' and '+h.kids+(h.kids===1?' child':' children')):'');\n      t.text.push('Your line: about '+eur(line)+' a year ('+eur(h.d7)+' a month), for '+who+', after social security. That\\'s the 2026 figure.');\n      if (r==='d7_low') t.text.push(\"If your income will go up before you apply, it's worth a call.\");\n    }\n    if (r==='d8') t.text.push('Your yearly figure is a rough guide. Check your last 3 months against '+eur(D8)+' a month.');\n    if (r==='d1' && a.sal==='s1' && (a.hq==='deg'||a.hq==='exp')) t.text.push('If your monthly salary is above '+eur(HQ)+', the D3 could fit instead. That matters if you\\'re paid 12 times a year. On the D3, your family can join you straight away.');\n    if (r==='d1'){\n      if (h.adults>1||h.kids) t.text.push('Your family adds to what you need to show: about '+eur(h.d7)+' a month for your household in 2026. The salary, or savings, has to cover that.');\n      if (a.who==='partner') t.text.push('A partner usually waits 2 years before joining you on a D1, or 15 months if you lived together for 18 months before the move. Children under 18 don\\'t wait.');\n      t.text.push('Some consulates ask for a contract of at least 12 months. And you apply from your home country, not from Portugal.');\n    }\n    if (r==='d1' && a.sal==='s2' && a.hq==='dip') t.text.push('Your diploma may count towards the D3. That needs a closer look, so mention it on the call.');\n    var hot = ['d7','d7_close','d8','d2','gv','art15','d3','d1','work_unsure'].indexOf(r)>=0 && (a.when==='here'||a.when==='0-3m'||a.when==='3-6m');\n    if (a.when==='here' && r!=='crue' && r!=='art15') t.text.push(\"You're already in Portugal. That can change the order of things, so mention it on the call.\");\n    var tax = r==='job_first' ? {items:[],tags:[]} : taxView(a);\n    return { route:r, hot:hot, gv:r==='gv', household:h, result:t, tax:tax.items, taxTags:tax.tags };\n  }\n  return { Q:Q, route:route, MW:MW, D8:D8, HQ:HQ };\n})();\n\n\n(function(){\n  var root=document.getElementById('nmvq'); if(!root||!window.NVQ) return;\n  var HOOK='https:\/\/n8n.kiterjobs.com\/webhook\/visa-fit-quiz';\n  var BOOK='\/free-consultation-with-our-expert-team\/';\n  var hero=root.closest('.lp-hero');\n  var push=function(o){(window.dataLayer=window.dataLayer||[]).push(o)};\n  var a={}, t0=0, started=false, res=null, lastStep=-1, cur=0;\n  var esc=function(s){return String(s).replace(\/[&<>\"]\/g,function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;'}[c]})};\n  function visible(){ return NVQ.Q.filter(function(q){ return !q.when || q.when(a); }); }\n  function clean(){ NVQ.Q.forEach(function(q){ if(q.when && !q.when(a)) delete a[q.key]; }); }\n  function startCard(){\n    if(hero) hero.classList.remove('nmvq-on'); document.body.classList.remove('nmvq-open');\n    root.innerHTML='<div class=\"vq-start\"><h3>Free. About 2 minutes.<\/h3><p>One tap per question. Your visa and your tax options, side by side.<\/p>'+\n      '<ul class=\"vq-ticks\"><li>D7, D8, D1, D3, D2, Golden Visa and EU routes<\/li><li>IFICI, IRS Jovem and the freelancer regime<\/li><\/ul>'+\n      '<button type=\"button\" class=\"nmvq-btn nmvq-btn--block\" data-vq-start>Start the check &rarr;<\/button>'+\n      '<span class=\"vq-small\">No sign-up to see your result.<\/span><\/div>';\n    root.querySelector('[data-vq-start]').addEventListener('click',function(){ begin('start-card'); });\n  }\n  function begin(trigger){\n    push({event:'visa_quiz_open',vq_trigger:trigger});\n    if(!started){ started=true; t0=Date.now(); push({event:'visa_quiz_start'}); }\n    if(hero){ hero.classList.add('nmvq-on'); } document.body.classList.add('nmvq-open');\n    show(0);\n    var top=(hero||root).getBoundingClientRect().top+window.pageYOffset-80; if(window.pageYOffset>top) window.scrollTo(0,top);\n  }\n  function frame(img,label,inner){\n    return '<div class=\"vq-panel\"><div class=\"vq-img\">'+(img?'<img src=\"'+img+'\" alt=\"\" loading=\"eager\" decoding=\"async\">':'')+'<span>'+esc(label)+'<\/span><\/div><div class=\"vq-body\">'+inner+'<\/div><\/div>';\n  }\n  function show(i){\n    cur=i; var qs=visible(), q=qs[i];\n    if(!q){ return result(); }\n    var multi=!!q.multi, sel=a[q.key];\n    var pct=Math.round(i\/qs.length*100);\n    var html='<div class=\"vq-bar\" role=\"progressbar\" aria-label=\"Quiz progress\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-valuenow=\"'+pct+'\"><i style=\"width:'+pct+'%\"><\/i><\/div>'+\n      '<h3 tabindex=\"-1\">'+esc(q.q)+'<\/h3>'+(q.hint?'<p class=\"vq-hint\">'+esc(q.hint)+'<\/p>':'')+\n      '<div class=\"vq-opts\" role=\"group\" aria-label=\"'+esc(q.q)+'\">';\n    q.opts.forEach(function(o){\n      var on = multi ? (sel||[]).indexOf(o[0])>=0 : sel===o[0];\n      html+='<button type=\"button\" class=\"vq-opt'+(multi?' is-multi':'')+'\" aria-pressed=\"'+(on?'true':'false')+'\" data-v=\"'+o[0]+'\"><span class=\"vq-dot\" aria-hidden=\"true\"><\/span><span>'+esc(o[1])+'<\/span><\/button>';\n    });\n    var ready = multi ? (sel&&sel.length) : !!sel;\n    html+='<\/div><div class=\"vq-nav\"><button type=\"button\" class=\"vq-back\" data-back>Back<\/button>'+(multi?'<button type=\"button\" class=\"vq-next\" data-next'+(ready?'':' disabled')+'>Next &rarr;<\/button>':'')+'<\/div>';\n    root.innerHTML=frame(q.img, q.tax?'Your tax':'Your move', html);\n    var h=root.querySelector('h3'); h.focus({preventScroll:true});\n    if(i!==lastStep){ lastStep=i; push({event:'visa_quiz_step',vq_step:i+1}); }\n    [].forEach.call(root.querySelectorAll('.vq-opt'),function(b){\n      b.addEventListener('click',function(){\n        var v=b.getAttribute('data-v');\n        if(multi){ var arr=(a[q.key]||[]).slice(); var k=arr.indexOf(v); if(k>=0) arr.splice(k,1); else arr.push(v); a[q.key]=arr; }\n        else { a[q.key]=v; }\n        [].forEach.call(root.querySelectorAll('.vq-opt'),function(x){\n          var xv=x.getAttribute('data-v'); x.setAttribute('aria-pressed', multi ? ((a[q.key]||[]).indexOf(xv)>=0?'true':'false') : (xv===v?'true':'false'));\n        });\n        if(multi){ var nb=root.querySelector('[data-next]'); nb.disabled=!(a[q.key]&&a[q.key].length); return; }\n        if(busy) return; busy=true;\n        setTimeout(function(){ busy=false; advance(); }, 220);\n      });\n    });\n    var nx=root.querySelector('[data-next]'); if(nx) nx.addEventListener('click',advance);\n    root.querySelector('[data-back]').addEventListener('click',function(){ if(cur===0){ startCard(); var s=root.querySelector('[data-vq-start]'); if(s) s.focus({preventScroll:true}); } else show(cur-1); });\n  }\n  var busy=false;\n  function advance(){ clean(); var n=visible(); if(cur+1<n.length) show(cur+1); else result(); }\n  function result(){\n    res=NVQ.route(a);\n    push({event:'visa_quiz_complete',vq_route:res.route});\n    var r=res.result, html='<div class=\"nmvq-res\"><div class=\"vq-bar\" aria-hidden=\"true\"><i style=\"width:100%\"><\/i><\/div><span class=\"vq-label\">Your result<\/span><h3 tabindex=\"-1\">'+esc(r.title)+'<\/h3>';\n    r.text.forEach(function(p){ html+='<p>'+esc(p)+'<\/p>'; });\n    if(r.link) html+='<p><a class=\"nmvq-inline\" href=\"'+r.link[0]+'\">'+esc(r.link[1])+'<\/a><\/p>';\n    if(res.tax && res.tax.length){ html+='<div class=\"nmvq-tax\"><span class=\"vq-label\">Your tax options<\/span>'; res.tax.forEach(function(t){ html+='<p><b>'+esc(t[0])+'.<\/b> '+esc(t[1])+'<\/p>'; });\n      if((res.taxTags||[]).some(function(g){return g==='tax:ifici-maybe'||g==='tax:ifici-unsure';})) html+='<p><b>Want to know for sure?<\/b> We run an IFICI assessment with a certified accountant. It checks whether your job and your employer qualify. Ask about it on your free call.<\/p>';\n      html+='<\/div>'; }\n    html+='<p class=\"nmvq-note\">Based on what you told us. The consulate and the tax authority decide on the real documents.<\/p>';\n    html+='<div class=\"nmvq-gate\" id=\"nmvq-gate\"><b>Want this by email, with your checklist?<\/b>'+\n      '<label for=\"nmvq-email\">Email<\/label><input id=\"nmvq-email\" type=\"email\" inputmode=\"email\" autocomplete=\"email\" maxlength=\"160\" aria-describedby=\"nmvq-err\">'+\n      '<label for=\"nmvq-name\">First name <span style=\"font-weight:400;color:#5A6A85\">(optional)<\/span><\/label><input id=\"nmvq-name\" type=\"text\" autocomplete=\"given-name\" maxlength=\"80\">'+\n      '<label class=\"nmvq-check\"><input type=\"checkbox\" id=\"nmvq-call\"> Also call me about my move<\/label>'+\n      '<div id=\"nmvq-phonewrap\" hidden><label for=\"nmvq-phone\">Phone, with country code<\/label><input id=\"nmvq-phone\" type=\"tel\" inputmode=\"tel\" autocomplete=\"tel\" placeholder=\"+1 555 010 0100\" maxlength=\"22\"><\/div>'+\n      '<div class=\"nmvq-hp\" aria-hidden=\"true\"><label for=\"nmvq-website\">Website<\/label><input id=\"nmvq-website\" type=\"text\" tabindex=\"-1\" autocomplete=\"off\"><\/div>'+\n      '<p class=\"nmvq-err\" id=\"nmvq-err\" role=\"alert\" hidden><\/p>'+\n      '<button type=\"button\" class=\"nmvq-btn nmvq-btn--block\" id=\"nmvq-send\" style=\"margin-top:16px\">Email me my checklist<\/button>'+\n      '<p class=\"nmvq-small\">We use your email to send this and to follow up about your move. <a href=\"\/cookie-and-privacy-policy\/\" target=\"_blank\" rel=\"noopener\">Privacy policy<\/a><\/p><\/div>'+\n      '<p><button type=\"button\" class=\"vq-link\" data-restart>Start again<\/button><\/p><\/div>';\n    var last=visible().slice(-1)[0];\n    root.innerHTML=frame(last&&last.img, 'Your result', html);\n    root.querySelector('h3').focus({preventScroll:true});\n    root.querySelector('#nmvq-call').addEventListener('change',function(e){ root.querySelector('#nmvq-phonewrap').hidden=!e.target.checked; });\n    root.querySelector('[data-restart]').addEventListener('click',function(){ a={}; lastStep=-1; show(0); });\n    root.querySelector('#nmvq-send').addEventListener('click',send);\n  }\n  function send(){\n    var err=root.querySelector('#nmvq-err'), btn=root.querySelector('#nmvq-send'); err.hidden=true;\n    var em=root.querySelector('#nmvq-email').value.trim();\n    if(!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/.test(em)){ err.textContent='Please add a valid email address.'; err.hidden=false; return; }\n    var call=root.querySelector('#nmvq-call').checked, ph='';\n    if(call){ var d=root.querySelector('#nmvq-phone').value.replace(\/[^\\d+]\/g,''); var digits=d.replace(\/\\D\/g,'');\n      if(d.charAt(0)!=='+'||digits.length<8||digits.length>15){ err.textContent='Add your phone number starting with + and your country code.'; err.hidden=false; return; } ph='+'+digits; }\n    var q=new URLSearchParams(location.search);\n    var data={answers:a,email:em,name:root.querySelector('#nmvq-name').value.trim(),call:call,phone:ph,website:root.querySelector('#nmvq-website').value,\n      elapsed_ms:Date.now()-t0,env:\/^stage\\.\/.test(location.hostname)?'stage':'live',page:location.pathname,gclid:q.get('gclid')||''};\n    ['utm_source','utm_medium','utm_campaign','utm_term','utm_content'].forEach(function(k){data[k]=q.get(k)||''});\n    btn.disabled=true; btn.textContent='Sending...';\n    fetch(HOOK,{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify(data)})\n      .then(function(r){ if(!r.ok) throw new Error('bad'); return r.json(); })\n      .then(function(){ push({event:'visa_quiz_email',vq_route:res.route,vq_hot:res.hot?'yes':'no'});\n        root.querySelector('#nmvq-gate').innerHTML='<p class=\"nmvq-sent\">Sent. Check your inbox in a few minutes, and your spam folder, just in case.<\/p>'; })\n      .catch(function(){ btn.disabled=false; btn.textContent='Email me my checklist'; err.textContent=\"That didn't go through. Try again, or book a call instead.\"; err.hidden=false; });\n  }\n  document.addEventListener('click',function(ev){ var el=ev.target.closest&&ev.target.closest('a[href=\"#visa-check\"],[data-vq-open]'); if(!el) return; ev.preventDefault(); begin(el.getAttribute('data-vq-open')||'link'); });\n  if(location.hash==='#visa-check'){ begin('deeplink'); } else { startCard(); }\n})();\n<\/script>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"lp-light\" id=\"how-it-works\">\n  <div class=\"lp-wrap\">\n    <div class=\"lp-head\">\n      <h2>How it works<\/h2>\n    <\/div>\n    <div class=\"lp-g3\">\n      <div class=\"lp-card\">\n        <span class=\"lp-step__num\">1<\/span>\n        <h3>Answer the check<\/h3>\n        <p>About 2 minutes. Your visa route and your tax options, side by side.<\/p>\n      <\/div>\n      <div class=\"lp-card\">\n        <span class=\"lp-step__num\">2<\/span>\n        <h3>Talk it through<\/h3>\n        <p>A free 15-minute call. We tell you what applies, including when the answer is no.<\/p>\n      <\/div>\n      <div class=\"lp-card\">\n        <span class=\"lp-step__num\">3<\/span>\n        <h3>We do the admin<\/h3>\n        <p>With our partner lawyer and partner accountant in Portugal. You follow every step in your client portal.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section>\n  <div class=\"lp-wrap\">\n    <div class=\"lp-head\">\n      <h2>Which visa fits depends on how you earn<\/h2>\n      <p>It comes down to where your money comes from.<\/p>\n    <\/div>\n    <div class=\"lp-g3\">\n      <div class=\"lp-card\">\n        <span class=\"lp-step__num\">D7<\/span>\n        <h3><a href=\"#d7\">If you live on passive income<\/a><\/h3>\n        <p>Pensions, Social Security, rentals, dividends, interest. Often called the retirement visa, but you don't have to be retired.<\/p>\n      <\/div>\n      <div class=\"lp-card\">\n        <span class=\"lp-step__num\">D8<\/span>\n        <h3><a href=\"#d8\">If you work remotely<\/a><\/h3>\n        <p>You're employed by, or freelance for, companies outside Portugal. Often called the digital nomad visa.<\/p>\n      <\/div>\n      <div class=\"lp-card\">\n        <span class=\"lp-step__num\">D2<\/span>\n        <h3><a href=\"#d2\">If you run your own business<\/a><\/h3>\n        <p>You're setting up a company in Portugal, or bringing an existing business with you.<\/p>\n      <\/div>\n    <\/div>\n    <p style=\"margin:32px auto 0;max-width:720px;text-align:center\">None of these? A job offer from a Portuguese employer, an investment, or a partner with an EU passport each has its own route. <a href=\"#visa-check\">The check covers those too.<\/a><\/p>\n  <\/div>\n<\/section>\n\n<style>\n#nm-lp .lp-x-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:56px;align-items:center}\n#nm-lp .lp-x-split--flip{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}\n#nm-lp .lp-x-split--flip .lp-x-fig{order:-1}\n#nm-lp .lp-x-split .lp-visa{max-width:none;margin:0}\n#nm-lp .lp-x-fig{margin:0;border-radius:20px;overflow:hidden;box-shadow:0 24px 48px rgba(1,33,71,.16);aspect-ratio:4\/5;background:#E9EEF5}\n#nm-lp .lp-x-fig img{width:100%;height:100%;object-fit:cover;display:block}\n#nm-lp .lp-x-bars{margin:22px 0 6px;padding:22px 22px 16px;background:#fff;border:1px solid #E3E8EF;border-radius:16px;box-shadow:0 8px 24px rgba(1,33,71,.06)}\n#nm-lp .lp-x-bars__t{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}\n#nm-lp .lp-x-bar{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center;margin:0 0 12px}\n#nm-lp .lp-x-bar span{font-size:15px;color:var(--text)}\n#nm-lp .lp-x-bar i{display:flex;align-items:center;justify-content:flex-end;height:34px;border-radius:8px;background:#2F62B3;color:#fff;font-style:normal;font-weight:700;font-size:15px;padding:0 10px;min-width:72px}\n#nm-lp .lp-x-bar--d8 i{background:var(--navy);box-shadow:inset 0 -3px 0 var(--gold)}\n#nm-lp .lp-x-bars small{display:block;font-size:14px;color:var(--muted);margin-top:6px;line-height:1.5}\n#nm-lp .lp-x-tl{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:18px;position:relative}\n#nm-lp .lp-x-tl:before{content:\"\";position:absolute;left:10%;right:10%;top:31px;height:3px;background:linear-gradient(90deg,var(--gold),#2F62B3)}\n#nm-lp .lp-x-tl li{position:relative;text-align:center;background:#fff;border:1px solid #E3E8EF;border-radius:16px;padding:0 16px 20px;margin-top:0;box-shadow:0 8px 24px rgba(1,33,71,.06)}\n#nm-lp .lp-x-tl__ico{width:62px;height:62px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;margin:0 auto 12px;position:relative;top:0;border:4px solid #fff;box-shadow:0 0 0 1px #E3E8EF}\n#nm-lp .lp-x-tl__ico svg{width:26px;height:26px}\n#nm-lp .lp-x-tl b{display:block;color:var(--navy);font-size:17px;line-height:1.3;margin-bottom:8px}\n#nm-lp .lp-x-tl em{display:inline-block;font-style:normal;font-weight:700;font-size:13px;color:var(--navy);background:#FFF3C4;border-radius:99px;padding:4px 10px;margin-bottom:10px}\n#nm-lp .lp-x-tl p{font-size:15px;line-height:1.55;color:var(--text);margin:0}\n@media(max-width:899px){\n #nm-lp .lp-x-split,#nm-lp .lp-x-split--flip{grid-template-columns:1fr;gap:28px}\n #nm-lp .lp-x-split--flip .lp-x-fig{order:0}\n #nm-lp .lp-x-fig{aspect-ratio:16\/10}\n #nm-lp .lp-x-tl{grid-template-columns:1fr;gap:14px}\n #nm-lp .lp-x-tl:before{left:47px;right:auto;top:20px;bottom:20px;width:3px;height:auto;background:linear-gradient(180deg,var(--gold),#2F62B3)}\n #nm-lp .lp-x-tl li{text-align:left;display:grid;grid-template-columns:62px 1fr;gap:0 16px;padding:16px;align-items:start}\n #nm-lp .lp-x-tl__ico{margin:0;grid-row:span 3}\n #nm-lp .lp-x-tl em{justify-self:start}\n #nm-lp .lp-x-bar{grid-template-columns:110px 1fr}\n}\n<\/style>\n<section class=\"lp-light\" id=\"d7\">\n  <div class=\"lp-wrap lp-x-split\">\n  <div class=\"lp-visa\">\n    <span class=\"lp-visa__tag\">D7 visa<\/span>\n    <h2>If your income comes from a pension, rentals or investments<\/h2>\n    <div class=\"lp-lines lp-lines--spaced\">\n      <p>The D7 is built around one number: Portugal's minimum wage.<\/p>\n      <p>In 2026 that's &euro;920 a month.<\/p>\n    <\/div>\n    <table class=\"lp-facts\">\n      <tr><th>Main applicant<\/th><td>At least &euro;920 a month of regular passive income, after social security contributions<\/td><\/tr>\n      <tr><th>Spouse or partner<\/th><td>Add 50%: &euro;460 a month<\/td><\/tr>\n      <tr><th>Each child<\/th><td>Add 30%: &euro;276 a month<\/td><\/tr>\n      <tr><th>Savings<\/th><td>Plan for about a year of the main figure: &euro;11,040 for one person<\/td><\/tr>\n    <\/table>\n    <p>You need to meet these figures again at your residence appointment in Portugal.<\/p>\n    <div class=\"lp-worry\">\n      <p class=\"lp-worry__q\">\"Does my US Social Security count?\"<\/p>\n      <p>Yes. Pensions, including Social Security, count as passive income for the D7.<\/p>\n    <\/div>\n  <\/div>\n    <figure class=\"lp-x-fig\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/cta-douro-vineyard-walk-768x434.jpg\" srcset=\"\/wp-content\/uploads\/2026\/10\/cta-douro-vineyard-walk-768x434.jpg 768w, \/wp-content\/uploads\/2026\/10\/cta-douro-vineyard-walk-1024x579.jpg 1024w, \/wp-content\/uploads\/2026\/10\/cta-douro-vineyard-walk-1536x869.jpg 1536w\" sizes=\"auto, (max-width:899px) 92vw, 520px\" width=\"1536\" height=\"869\" alt=\"A couple walking hand in hand through terraced vineyards above the Douro river\" loading=\"lazy\" decoding=\"async\"><\/figure>\n  <\/div>\n<\/section>\n\n<section id=\"d8\">\n  <div class=\"lp-wrap lp-x-split lp-x-split--flip\">\n  <div class=\"lp-visa\">\n    <span class=\"lp-visa__tag\">D8 visa<\/span>\n    <h2>If you work remotely for an employer or clients abroad<\/h2>\n    <div class=\"lp-lines lp-lines--spaced\">\n      <p>The D8 asks for more income than the D7, and it measures it differently.<\/p>\n    <\/div>\n    <figure class=\"lp-x-bars\" role=\"img\" aria-label=\"Monthly income tests in 2026: D7 one person 920 euros, D7 couple 1,380 euros, D8 3,680 euros\">\n      <p class=\"lp-x-bars__t\">Monthly income test, 2026<\/p>\n      <div class=\"lp-x-bar\"><span>D7, one person<\/span><i style=\"width:25%\">&euro;920<\/i><\/div>\n      <div class=\"lp-x-bar\"><span>D7, a couple<\/span><i style=\"width:37.5%\">&euro;1,380<\/i><\/div>\n      <div class=\"lp-x-bar lp-x-bar--d8\"><span>D8<\/span><i style=\"width:100%\">&euro;3,680<\/i><\/div>\n      <small>The D7 counts passive income after social security. The D8 counts work income, as an average of your last 3 months.<\/small>\n    <\/figure>\n    <table class=\"lp-facts\">\n      <tr><th>Income<\/th><td>An average of at least &euro;3,680 a month over your last 3 months. That's 4 times the 2026 minimum wage<\/td><\/tr>\n      <tr><th>Who you work for<\/th><td>An employer or clients based outside Portugal<\/td><\/tr>\n      <tr><th>Family<\/th><td>The law sets no extra amount. We still plan for a cushion, because the consulate checks your income covers everyone<\/td><\/tr>\n    <\/table>\n    <div class=\"lp-worry\">\n      <p class=\"lp-worry__q\">\"I'm a freelancer with several clients. Does that work?\"<\/p>\n      <p>Yes. What matters is the average over the last 3 months and that the work comes from outside Portugal.<\/p>\n    <\/div>\n  <\/div>\n    <figure class=\"lp-x-fig\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/11\/private-account-hero-lisbon-balcony-768x576.jpg\" srcset=\"\/wp-content\/uploads\/2026\/11\/private-account-hero-lisbon-balcony-768x576.jpg 768w, \/wp-content\/uploads\/2026\/11\/private-account-hero-lisbon-balcony-1024x768.jpg 1024w\" sizes=\"auto, (max-width:899px) 92vw, 520px\" width=\"1024\" height=\"768\" alt=\"A laptop and coffee on a balcony table above the rooftops of Lisbon\" loading=\"lazy\" decoding=\"async\"><\/figure>\n  <\/div>\n<\/section>\n\n<section class=\"lp-light\" id=\"d2\">\n  <div class=\"lp-wrap lp-x-split\">\n  <div class=\"lp-visa\">\n    <span class=\"lp-visa__tag\">D2 visa<\/span>\n    <h2>If you're starting or moving a business<\/h2>\n    <div class=\"lp-lines lp-lines--spaced\">\n      <p>The D2 is for founders, freelancers setting up on their own and business owners moving an existing company.<\/p>\n      <p>You'll need a business plan.<\/p>\n      <p class=\"lp-strong\">Your own savings matter just as much.<\/p>\n      <p>In recent files we analysed, the applicant's own means counted as much as the plan.<\/p>\n    <\/div>\n  <\/div>\n    <figure class=\"lp-x-fig\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/11\/d2-dubai-lisbon-street-768x579.jpg\" srcset=\"\/wp-content\/uploads\/2026\/11\/d2-dubai-lisbon-street-768x579.jpg 768w, \/wp-content\/uploads\/2026\/11\/d2-dubai-lisbon-street-1024x772.jpg 1024w\" sizes=\"auto, (max-width:899px) 92vw, 520px\" width=\"1024\" height=\"772\" alt=\"A cobbled Lisbon street with modern offices beside tiled buildings\" loading=\"lazy\" decoding=\"async\"><\/figure>\n  <\/div>\n<\/section>\n\n<section>\n  <div class=\"lp-wrap lp-x-split lp-x-split--flip\">\n  <div class=\"lp-visa\">\n    <h2>What every application needs<\/h2>\n    <div class=\"lp-lines lp-lines--spaced\">\n      <p>The details differ by visa and by consulate. The core is the same:<\/p>\n    <\/div>\n    <ul class=\"lp-tick\">\n      <li>A valid passport<\/li>\n      <li>Proof of the income the visa asks for<\/li>\n      <li>Proof you can support yourself while you settle in<\/li>\n      <li>Somewhere to live in Portugal, usually a rental contract<\/li>\n      <li>A criminal record certificate from where you've lived, apostilled<\/li>\n      <li>Health insurance for the start of your stay<\/li>\n      <li>A Portuguese tax registration, done before you apply<\/li>\n    <\/ul>\n    <div class=\"lp-worry\">\n      <p class=\"lp-worry__q\">\"Can I use a hotel or Airbnb as my address?\"<\/p>\n      <p>It's risky. A 12-month rental contract is the safer choice, and it's what we plan for.<\/p>\n    <\/div>\n  <\/div>\n    <figure class=\"lp-x-fig\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/d7-d8-2026-document-desk-768x576.jpg\" srcset=\"\/wp-content\/uploads\/2026\/10\/d7-d8-2026-document-desk-768x576.jpg 768w, \/wp-content\/uploads\/2026\/10\/d7-d8-2026-document-desk-1024x768.jpg 1024w, \/wp-content\/uploads\/2026\/10\/d7-d8-2026-document-desk-1536x1152.jpg 1536w\" sizes=\"auto, (max-width:899px) 92vw, 520px\" width=\"1536\" height=\"1152\" alt=\"A tidy desk with document folders and printed pages ready for a visa application\" loading=\"lazy\" decoding=\"async\"><\/figure>\n  <\/div>\n<\/section>\n\n<section class=\"lp-light\" id=\"timeline\">\n  <div class=\"lp-wrap\">\n    <div class=\"lp-head\">\n      <h2>How long it takes<\/h2>\n      <p>Two clocks: getting the appointment, then waiting for the decision.<\/p>\n    <\/div>\n    <ol class=\"lp-x-tl\">\n      <li><span class=\"lp-x-tl__ico\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#FFC504\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z\"\/><path d=\"M14 3v5h5M9 13h6M9 17h4\"\/><\/svg><\/span><b>Get your documents ready<\/b><em>Weeks<\/em><p>Usually the longest part you control. Apostilles and translations take weeks, not days.<\/p><\/li>\n      <li><span class=\"lp-x-tl__ico\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#FFC504\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3.5\" y=\"5\" width=\"17\" height=\"15.5\" rx=\"2\"\/><path d=\"M3.5 10h17M8 3v4M16 3v4M8 14h3\"\/><\/svg><\/span><b>Get a consulate appointment<\/b><em>Varies<\/em><p>Depends on where you apply. In some places it takes months.<\/p><\/li>\n      <li><span class=\"lp-x-tl__ico\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#FFC504\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M7 3h10M7 21h10M8 3c0 5 8 5 8 9s-8 4-8 9M16 3c0 5-8 5-8 9s8 4 8 9\"\/><\/svg><\/span><b>Wait for the decision<\/b><em>About 60 days<\/em><p>The usual consulate guideline. In our decided files: 17 to 131 days.<\/p><\/li>\n      <li><span class=\"lp-x-tl__ico\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#FFC504\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M2.5 19.5h19M3.5 13.5l4 1.5 9.5-5.5c1-.6 2.4-.3 3 .7.4.7.2 1.6-.5 2L8.5 18 3 16z\"\/><\/svg><\/span><b>Enter Portugal<\/b><em>Within 4 months<\/em><p>The visa gives you 4 months to arrive.<\/p><\/li>\n      <li><span class=\"lp-x-tl__ico\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#FFC504\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"2.5\" y=\"5.5\" width=\"19\" height=\"13\" rx=\"2\"\/><circle cx=\"8.5\" cy=\"12\" r=\"2.2\"\/><path d=\"M13.5 10.5h5M13.5 13.5h3.5\"\/><\/svg><\/span><b>Get your residence permit<\/b><em>2 years, then 3<\/em><p>At your appointment with AIMA, Portugal's immigration agency.<\/p><\/li>\n    <\/ol>\n    <div class=\"lp-limits\" style=\"margin-top:20px\">\n      <p class=\"lp-strong\">One rule to plan around:<\/p>\n      <p>On your first permit, you need to spend at least 16 of the first 24 months in Portugal, with no more than 6 months away in a row.<\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section>\n  <div class=\"lp-wrap\">\n    <div class=\"lp-head\">\n      <h2>What we do, and what we can't<\/h2>\n    <\/div>\n    <div class=\"lp-split\">\n      <div class=\"lp-split__col\">\n        <p class=\"lp-split__who\">What we do:<\/p>\n        <p>Tell you which visa fits and what to do first. Then check every document with our partner immigration lawyer before you submit.<\/p>\n      <\/div>\n      <div class=\"lp-split__col\">\n        <p class=\"lp-split__who\">What we can't do:<\/p>\n        <p>Book your consulate appointment for you, or make the consulate or AIMA move faster. You book and attend. We get you ready for it.<\/p>\n      <\/div>\n    <\/div>\n    <p class=\"lp-more\"><a href=\"\/client-stories\/\">Read how real moves went, start to finish<\/a><\/p>\n  <\/div>\n<\/section>\n\n<section class=\"lp-light\" id=\"team\">\n  <div class=\"lp-wrap\">\n    <div class=\"lp-founder\">\n      <picture><source type=\"image\/webp\" srcset=\"\/wp-content\/uploads\/2026\/08\/team-philip-400.webp\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/08\/team-philip.jpg\" width=\"1200\" height=\"940\" alt=\"Philip B., founder of Novomove\" loading=\"lazy\" decoding=\"async\"><\/picture>\n      <div class=\"lp-lines\">\n        <p class=\"lp-strong\">Confession: when I moved to Portugal, it took me about six months to feel settled.<\/p>\n        <p>Not because Portugal is hard. Because nobody tells you the order things happen in.<\/p>\n        <p>That's why we start every move with a call and a plan.<\/p>\n        <p class=\"lp-sign\">Philip B., founder<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"lp-head lp-head--team\">\n      <h2>Who you'll be dealing with<\/h2>\n    <\/div>\n    <div class=\"lp-g3\">\n      <div class=\"lp-person\">\n        <picture><source type=\"image\/webp\" srcset=\"\/wp-content\/uploads\/2026\/08\/team-cesar-400.webp 400w, \/wp-content\/uploads\/2026\/08\/team-cesar-700.webp 700w\" sizes=\"(max-width:767px) 90vw, 360px\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/08\/team-cesar.jpg\" width=\"1200\" height=\"940\" alt=\"Cesar L., Operations Lead\" loading=\"lazy\" decoding=\"async\"><\/picture>\n        <div class=\"lp-person__body\"><div class=\"lp-person__name\">Cesar L.<\/div><div class=\"lp-person__role\">Operations Lead<\/div><\/div>\n      <\/div>\n      <div class=\"lp-person\">\n        <picture><source type=\"image\/webp\" srcset=\"\/wp-content\/uploads\/2026\/08\/team-dianne-400.webp 400w, \/wp-content\/uploads\/2026\/08\/team-dianne-700.webp 700w\" sizes=\"(max-width:767px) 90vw, 360px\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/08\/team-dianne.jpg\" width=\"1200\" height=\"940\" alt=\"Dianne C., Case Manager\" loading=\"lazy\" decoding=\"async\"><\/picture>\n        <div class=\"lp-person__body\"><div class=\"lp-person__name\">Dianne C.<\/div><div class=\"lp-person__role\">Case Manager<\/div><\/div>\n      <\/div>\n      <div class=\"lp-person\">\n        <picture><source type=\"image\/webp\" srcset=\"\/wp-content\/uploads\/2026\/08\/team-alex-400.webp 400w, \/wp-content\/uploads\/2026\/08\/team-alex-700.webp 700w\" sizes=\"(max-width:767px) 90vw, 360px\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/08\/team-alex.jpg\" width=\"1200\" height=\"940\" alt=\"Alex J., Head of Client Success\" loading=\"lazy\" decoding=\"async\"><\/picture>\n        <div class=\"lp-person__body\"><div class=\"lp-person__name\">Alex J.<\/div><div class=\"lp-person__role\">Head of Client Success<\/div><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"lp-lawyer\">\n      <img loading=\"lazy\" src=\"\/wp-content\/uploads\/2025\/11\/nm-face-mariana.jpg\" width=\"56\" height=\"56\" alt=\"Mariana C., partner lawyer\" loading=\"lazy\" decoding=\"async\">\n      <p><b>Mariana C.<\/b> is one of our partner lawyers. She's registered with the Ordem dos Advogados, the Portuguese Bar.<\/p>\n    <\/div>\n    <div class=\"lp-lawyer\">\n      <span aria-hidden=\"true\" style=\"flex:none;width:56px;height:56px;border-radius:50%;background:#EEF3FB;display:flex;align-items:center;justify-content:center\"><svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#012147\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"5\" y=\"2.5\" width=\"14\" height=\"19\" rx=\"2\"\/><path d=\"M8 6.5h8M8.5 11h.01M12 11h.01M15.5 11h.01M8.5 14.5h.01M12 14.5h.01M15.5 14.5h.01M8.5 18h.01M12 18h.01M15.5 18h.01\"\/><\/svg><\/span>\n      <p><b>Tax questions<\/b> go to our partner accountant, certified by the OCC, Portugal's order of certified accountants. Your visa and your tax are checked on the same case.<\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section id=\"reviews\">\n  <div class=\"lp-wrap\">\n    <div class=\"lp-head\">\n      <h2>In their words<\/h2>\n      <div class=\"lp-tp lp-tp--reviews\"><div class=\"trustpilot-widget\" data-locale=\"en-US\" data-template-id=\"5419b6a8b0d04a076446a9ad\" data-businessunit-id=\"645c3f56484ec7b9c3eabc7b\" data-style-height=\"32px\" data-style-width=\"100%\" data-theme=\"light\" data-token=\"98842949-2db9-4aaf-b59e-993006c0c280\" data-min-review-count=\"0\" data-style-alignment=\"center\"><a href=\"https:\/\/www.trustpilot.com\/review\/novomove.com\" target=\"_blank\" rel=\"noopener\">Trustpilot<\/a><\/div><\/div>\n    <\/div>\n    <div class=\"lp-g3\">\n      <blockquote class=\"lp-quote\">\n        <div class=\"lp-quote__stars\">&#9733;&#9733;&#9733;&#9733;&#9733;<\/div>\n        <p>Immigrating to another country is intimidating and having people who know the system behind you changes everything. They're professional, they're helpful, and they went beyond what I was expecting. I'd recommend them to anyone moving to Portugal without hesitation.<\/p>\n        <cite>Marsida Hoxha<\/cite>\n      <\/blockquote>\n      <blockquote class=\"lp-quote\">\n        <div class=\"lp-quote__stars\">&#9733;&#9733;&#9733;&#9733;&#9733;<\/div>\n        <p>Friendly, patient, and they broke the process into steps I could follow without a law degree. Questions got answered same-day every time. If you're weighing up whether to use a service like this, use this one.<\/p>\n        <cite>Dom A<\/cite>\n      <\/blockquote>\n      <blockquote class=\"lp-quote\">\n        <div class=\"lp-quote__stars\">&#9733;&#9733;&#9733;&#9733;&#9733;<\/div>\n        <p>Smooth the whole way through. You always know which stage you're at and what's needed from you, and the instructions don't leave room for misreading. Money well spent.<\/p>\n        <cite>Matteo Ferrara<\/cite>\n      <\/blockquote>\n    <\/div>\n    <p class=\"lp-more\"><a href=\"https:\/\/testimonials.novomove.com\/wall\" target=\"_blank\" rel=\"noopener\">Read more client reviews<\/a><\/p>\n  <\/div>\n<\/section>\n\n<section class=\"lp-light\" id=\"faq\">\n  <div class=\"lp-wrap lp-visa\">\n    <h2>Questions people ask first<\/h2>\n    <div class=\"lp-qa\" style=\"margin-top:24px\">\n      <p class=\"lp-qa__q\">Can my partner and children come with me?<\/p>\n      <p>Yes. On the D7, add 50% of the minimum wage for a partner and 30% for each child to the income you show.<\/p>\n      <p class=\"lp-qa__q\">I have a pension and some remote work. D7 or D8?<\/p>\n      <p>It depends on which income is bigger and steadier.<\/p>\n      <p>Only the pension counts for the D7. Only the work income counts for the D8. Bring your numbers to the free call.<\/p>\n      <p class=\"lp-qa__q\">Is there a tax break when I move?<\/p>\n      <p>There can be. IFICI taxes qualifying work income in Portugal at 20% for 10 years. It's for people who weren't tax resident here in the last 5 years. It doesn't cover pensions, or a remote job for a company abroad.<\/p>\n      <p>If you're 35 or under, IRS Jovem makes part of your work income tax-free in your first years of earning. The check tells you which one could apply to you.<\/p>\n      <p class=\"lp-qa__q\">Do I need a lawyer?<\/p>\n      <p>No law says you must use one, and some people apply on their own. If you want your file checked before you submit, our partner immigration lawyer does that with us.<\/p>\n      <p class=\"lp-qa__q\">Is this an official government website?<\/p>\n      <p>No. Novomove is a private relocation service. The visa decision is always made by the Portuguese consulate and AIMA.<\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"lp-cta\">\n  <div class=\"lp-wrap\">\n    <h2>Still not sure which visa fits?<\/h2>\n    <p>Tell us how you earn and who's coming with you. In 15 minutes we'll tell you which visa fits. If none of them do, we'll say so.<\/p>\n    <a class=\"lp-btn\" data-lp-cta=\"final\" href=\"\/free-consultation-with-our-expert-team\/\">Book your free call<\/a>\n  <\/div>\n<\/section>\n\n<script nowprocket data-nowprocket>\n(function(){\n  var qs=location.search.replace(\/^\\?\/,'');\n  [].forEach.call(document.querySelectorAll('#nm-lp [data-lp-cta]'),function(a){\n    if(qs){a.href=a.href+(a.href.indexOf('?')<0?'?':'&')+qs}\n    a.addEventListener('click',function(){(window.dataLayer=window.dataLayer||[]).push({event:'lp_cta_click',lp_cta:a.getAttribute('data-lp-cta')})});\n  });\n})();\n<\/script>\n\n\n<footer class=\"lp-foot\">\n  <div class=\"lp-wrap\">\n    <p class=\"lp-foot__disc\">Novomove is not a bank, accountant, tax advisor, investment advisor or law firm, and we are not a government body or official government website. We act as an intermediary: we connect you with accredited professionals and streamline the administrative steps of your relocation in Europe.<\/p>\n    <p class=\"lp-foot__links\"><span>&copy; 2026 Novomove<\/span><a href=\"\/terms-and-conditions\/\">Terms<\/a><a href=\"\/cookie-and-privacy-policy\/\">Privacy<\/a><a href=\"\/general-disclaimer\/\">Disclaimer<\/a><\/p>\n  <\/div>\n<\/footer>\n\n<div class=\"lp-cb\" id=\"lp-cb\" hidden>\n  <div class=\"lp-cb__backdrop\" data-cb-close><\/div>\n  <div class=\"lp-cb__panel\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"lp-cb-title\">\n    <button type=\"button\" class=\"lp-cb__x\" data-cb-close aria-label=\"Close\">&times;<\/button>\n    <div class=\"lp-cb__form-wrap\" id=\"lp-cb-step-form\">\n      <p class=\"lp-cb__title\" id=\"lp-cb-title\">Want us to call you instead?<\/p>\n      <p class=\"lp-cb__sub\">Leave your number and someone from our team will call you back.<\/p>\n      <form id=\"lp-cb-form\" novalidate>\n        <label class=\"lp-cb__label\" for=\"lp-cb-name\">Your name<\/label>\n        <input class=\"lp-cb__input\" id=\"lp-cb-name\" name=\"name\" type=\"text\" autocomplete=\"given-name\" maxlength=\"80\">\n        <label class=\"lp-cb__label\" for=\"lp-cb-phone\">Phone number<\/label>\n        <div class=\"lp-cb__phone\">\n          <select class=\"lp-cb__input lp-cb__cc\" id=\"lp-cb-cc\" name=\"cc\" aria-label=\"Country code\">\n            <option value=\"GB\">UK +44<\/option>\n            <option value=\"US\">US \/ Canada +1<\/option>\n            <option value=\"IE\">Ireland +353<\/option>\n            <option value=\"PT\">Portugal +351<\/option>\n            <option value=\"AU\">Australia +61<\/option>\n            <option value=\"NZ\">New Zealand +64<\/option>\n            <option value=\"ZA\">South Africa +27<\/option>\n            <option value=\"BR\">Brazil +55<\/option>\n            <option value=\"DE\">Germany +49<\/option>\n            <option value=\"FR\">France +33<\/option>\n            <option value=\"NL\">Netherlands +31<\/option>\n            <option value=\"ES\">Spain +34<\/option>\n            <option value=\"IT\">Italy +39<\/option>\n            <option value=\"CH\">Switzerland +41<\/option>\n            <option value=\"SE\">Sweden +46<\/option>\n            <option value=\"AE\">UAE +971<\/option>\n            <option value=\"IN\">India +91<\/option>\n            <option value=\"TR\">Turkey +90<\/option>\n            <option value=\"\">Other (type + code)<\/option>\n          <\/select>\n          <input class=\"lp-cb__input\" id=\"lp-cb-phone\" name=\"phone\" type=\"tel\" inputmode=\"tel\" autocomplete=\"tel-national\" placeholder=\"7700 900123\" maxlength=\"20\" required>\n        <\/div>\n        <label class=\"lp-cb__label\" for=\"lp-cb-email\">Email <span class=\"lp-cb__hint\">(in case we can't get through)<\/span><\/label>\n        <input class=\"lp-cb__input\" id=\"lp-cb-email\" name=\"email\" type=\"email\" inputmode=\"email\" autocomplete=\"email\" maxlength=\"160\" required>\n        <p class=\"lp-cb__label\">How should we reach you?<\/p>\n        <div class=\"lp-cb__methods\">\n          <input type=\"radio\" id=\"lp-cb-m-call\" name=\"method\" value=\"call\" checked><label for=\"lp-cb-m-call\">Phone call<\/label>\n          <input type=\"radio\" id=\"lp-cb-m-wa\" name=\"method\" value=\"whatsapp\"><label for=\"lp-cb-m-wa\">WhatsApp<\/label>\n        <\/div>\n        <div class=\"lp-cb__hp\" aria-hidden=\"true\"><label for=\"lp-cb-website\">Website<\/label><input id=\"lp-cb-website\" name=\"website\" type=\"text\" tabindex=\"-1\" autocomplete=\"off\"><\/div>\n        <p class=\"lp-cb__err\" id=\"lp-cb-err\" hidden><\/p>\n        <button type=\"submit\" class=\"lp-btn lp-btn--block lp-cb__submit\" id=\"lp-cb-submit\">Call me back<\/button>\n        <p class=\"lp-cb__small\">Mon to Fri, 9:00 to 18:00 Lisbon time. Outside those hours, first thing the next working day.<\/p>\n        <p class=\"lp-cb__small\">We only use your number to contact you about your move. <a href=\"\/cookie-and-privacy-policy\/\" target=\"_blank\" rel=\"noopener\">Privacy policy<\/a><\/p>\n      <\/form>\n    <\/div>\n    <div class=\"lp-cb__done\" id=\"lp-cb-step-done\" hidden>\n      <p class=\"lp-cb__title\" id=\"lp-cb-done-title\">Got it. Someone from our team will call you.<\/p>\n      <p class=\"lp-cb__sub\">If you'd rather pick a time yourself, you can book it here.<\/p>\n      <a class=\"lp-btn lp-btn--block\" data-lp-cta=\"callback-done\" href=\"\/free-consultation-with-our-expert-team\/\">Pick a time instead<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script nowprocket data-nowprocket>\n(function(){\n  var box=document.getElementById('lp-cb'); if(!box) return;\n  var push=function(o){(window.dataLayer=window.dataLayer||[]).push(o)};\n  var ss={get:function(k){try{return sessionStorage.getItem(k)}catch(e){return null}},set:function(k,v){try{sessionStorage.setItem(k,v)}catch(e){}}};\n  var ls={get:function(k){try{return localStorage.getItem(k)}catch(e){return null}},set:function(k,v){try{localStorage.setItem(k,v)}catch(e){}}};\n  var t0=Date.now(), openedAt=0, ctaClicked=false;\n  var mobile=window.matchMedia('(max-width:767px), (hover:none)').matches;\n  var blocked=function(){return ctaClicked||ss.get('lp_cb_shown')||ls.get('lp_cb_sent')};\n\n  var tz=''; try{tz=Intl.DateTimeFormat().resolvedOptions().timeZone||''}catch(e){}\n  var zones=[[\/^Europe\\\/London\/,'GB'],[\/^Europe\\\/Dublin\/,'IE'],[\/^(Europe\\\/Lisbon|Atlantic\\\/(Madeira|Azores))\/,'PT'],[\/^America\\\/(Sao_Paulo|Bahia|Fortaleza|Recife|Belem|Manaus)\/,'BR'],[\/^America\\\/\/,'US'],[\/^Australia\\\/\/,'AU'],[\/^Pacific\\\/Auckland\/,'NZ'],[\/^Africa\\\/Johannesburg\/,'ZA'],[\/^Europe\\\/Berlin\/,'DE'],[\/^Europe\\\/Paris\/,'FR'],[\/^Europe\\\/Amsterdam\/,'NL'],[\/^Europe\\\/Madrid\/,'ES'],[\/^Europe\\\/Rome\/,'IT'],[\/^Europe\\\/Zurich\/,'CH'],[\/^Europe\\\/Stockholm\/,'SE'],[\/^Asia\\\/Dubai\/,'AE'],[\/^Asia\\\/(Kolkata|Calcutta)\/,'IN'],[\/^Europe\\\/Istanbul\/,'TR']];\n  var guess='GB'; for(var z=0;z<zones.length;z++){ if(zones[z][0].test(tz)){ guess=zones[z][1]; break; } }\n  var cc=document.getElementById('lp-cb-cc'); cc.value=guess;\n  var phone=document.getElementById('lp-cb-phone');\n  cc.addEventListener('change',function(){phone.placeholder=cc.value?'Number without the country code':'+ country code and number'});\n\n  var LIB='https:\/\/cdn.jsdelivr.net\/npm\/libphonenumber-js@1.13.14\/bundle\/libphonenumber-min.js', libP=null;\n  var loadLib=function(){ if(libP) return libP; libP=new Promise(function(res){ if(window.libphonenumber) return res(true); var s=document.createElement('script'); s.src=LIB; s.async=true; s.onload=function(){res(!!window.libphonenumber)}; s.onerror=function(){res(false)}; document.head.appendChild(s); }); return libP; };\n  var lastFocus=null;\n  var open=function(trigger){\n    if(blocked()||!box.hidden) return;\n    ss.set('lp_cb_shown','1'); lastFocus=document.activeElement;\n    box.hidden=false; openedAt=Date.now(); loadLib();\n    push({event:'lp_callback_open',lp_trigger:trigger});\n    setTimeout(function(){var n=document.getElementById('lp-cb-name'); if(n&&!mobile) n.focus()},50);\n  };\n  var openManual=function(src){\n    if(!box.hidden) return;\n    lastFocus=document.activeElement; box.hidden=false; openedAt=Date.now(); loadLib(); ss.set('lp_cb_shown','1');\n    if(ls.get('lp_cb_sent')){ document.getElementById('lp-cb-step-form').hidden=true; document.getElementById('lp-cb-step-done').hidden=false; }\n    push({event:'lp_callback_open',lp_trigger:'button-'+src});\n    setTimeout(function(){var n=document.getElementById('lp-cb-name'); if(n&&!mobile) n.focus()},50);\n  };\n  [].forEach.call(document.querySelectorAll('[data-cb-open]'),function(el){el.addEventListener('click',function(){openManual(el.getAttribute('data-cb-open'))})});\n  var close=function(){ if(box.hidden) return; box.hidden=true; push({event:'lp_callback_close'}); if(lastFocus&&lastFocus.focus) lastFocus.focus(); };\n  [].forEach.call(box.querySelectorAll('[data-cb-close]'),function(el){el.addEventListener('click',close)});\n  document.addEventListener('keydown',function(e){if(e.key==='Escape') close()});\n  document.addEventListener('click',function(e){var a=e.target.closest&&e.target.closest('[data-lp-cta]'); if(a&&!box.contains(a)) ctaClicked=true;});\n\n  if(!mobile){\n    document.addEventListener('mouseout',function(e){ if(!e.relatedTarget&&e.clientY<=0&&Date.now()-t0>4000) open('exit'); });\n  } else {\n    var onScroll=function(){ var h=document.documentElement; var p=(window.scrollY+window.innerHeight)\/h.scrollHeight; if(p>0.6){ window.removeEventListener('scroll',onScroll); open('scroll'); } };\n    window.addEventListener('scroll',onScroll,{passive:true});\n    setTimeout(function(){open('timer')},30000);\n  }\n\n  var form=document.getElementById('lp-cb-form'), err=document.getElementById('lp-cb-err'), btn=document.getElementById('lp-cb-submit');\n  var method=function(){var r=form.querySelector('input[name=method]:checked'); return r?r.value:'call'};\n  [].forEach.call(form.querySelectorAll('input[name=method]'),function(r){r.addEventListener('change',function(){btn.textContent=method()==='whatsapp'?'Message me on WhatsApp':'Call me back'})});\n  var showErr=function(m){err.textContent=m; err.hidden=false};\n  form.addEventListener('submit',function(e){\n    e.preventDefault(); err.hidden=true;\n    var em=form.email.value.trim();\n    if(!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/.test(em)){ showErr('Please add a valid email address, in case we can\\'t get through by phone.'); form.email.focus(); return; }\n    var raw=phone.value.trim();\n    var wait=new Promise(function(r){setTimeout(function(){r(false)},4000)});\n    btn.disabled=true;\n    Promise.race([loadLib(),wait]).then(function(ok){\n      btn.disabled=false;\n      var e164=null, L=window.libphonenumber;\n      if(ok&&L){\n        var pn=null; try{ pn=cc.value&&raw.charAt(0)!=='+' ? L.parsePhoneNumberFromString(raw,cc.value) : L.parsePhoneNumberFromString(raw.charAt(0)==='+'?raw:'+'+raw); }catch(x){}\n        if(pn&&pn.isValid()) e164=pn.number;\n      } else {\n        var d=raw.replace(\/\\D\/g,''); if(d.length>=8&&d.length<=15) e164='+'+d;\n      }\n      if(!e164){ showErr(cc.value?'That doesn\\'t look like a valid number for the country you picked. Check the digits and the country code.':'That doesn\\'t look like a valid number. Start with + and your country code.'); phone.focus(); return; }\n      send(e164);\n    });\n  });\n  var send=function(e164){\n    var qs=new URLSearchParams(location.search), m=method();\n    var data={name:form.name.value.trim(),phone:e164,email:form.email.value.trim(),method:m,website:form.website.value,env:\/^stage\\.\/.test(location.hostname)?'stage':'live',page:location.pathname,elapsed_ms:Date.now()-openedAt,gclid:qs.get('gclid')||''};\n    ['utm_source','utm_medium','utm_campaign','utm_term','utm_content'].forEach(function(k){data[k]=qs.get(k)||''});\n    btn.disabled=true; btn.textContent='Sending...';\n    fetch('https:\/\/n8n.kiterjobs.com\/webhook\/lp-callback-request',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify(data)})\n      .then(function(r){ if(!r.ok) throw new Error('bad'); return r.json(); })\n      .then(function(){\n        ls.set('lp_cb_sent','1');\n        push({event:'lp_callback_submit',lp_method:m});\n        document.getElementById('lp-cb-done-title').textContent=m==='whatsapp'?\"Got it. Someone from our team will message you on WhatsApp.\":\"Got it. Someone from our team will call you.\";\n        document.getElementById('lp-cb-step-form').hidden=true; document.getElementById('lp-cb-step-done').hidden=false;\n      })\n      .catch(function(){ btn.disabled=false; btn.textContent=m==='whatsapp'?'Message me on WhatsApp':'Call me back'; showErr('That didn\\'t go through. Check the number and try again, or book a call instead.'); });\n  };\n})();\n<\/script>\n\t\t\t\t<\/div>\n\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":"elementor_canvas","meta":{"_kad_post_transparent":"","_kad_post_title":"hide","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"class_list":["post-14902","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/novomove.com\/pt\/wp-json\/wp\/v2\/pages\/14902","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/novomove.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/novomove.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/novomove.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/novomove.com\/pt\/wp-json\/wp\/v2\/comments?post=14902"}],"version-history":[{"count":0,"href":"https:\/\/novomove.com\/pt\/wp-json\/wp\/v2\/pages\/14902\/revisions"}],"wp:attachment":[{"href":"https:\/\/novomove.com\/pt\/wp-json\/wp\/v2\/media?parent=14902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}