PageSourceSearch

https://snuggle-synth-hub.lovable.app/privacy-policy

html snuggle-synth-hub.lovable.app collected 2026-10-03 03:44:55 UTC 32,239 bytes, 256 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/assets/styles-hWOJsCrp.css" data-precedence="default"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&amp;family=Inter:wght@300;400;500;600&amp;display=swap" data-precedence="default"/><title>Privacy Policy — Anabela Grilo</title><meta name="author" content="Anabela Grilo"/><meta name="description" content="Privacy Policy for Anabela Grilo&#x27;s executive, personal and virtual assistant services. Information about data collection, processing, security and your rights under GDPR."/><meta property="og:title" content="Privacy Policy — Anabela Grilo"/><meta property="og:description" content="Privacy Policy for Anabela Grilo&#x27;s executive, personal and virtual assistant services."/><meta property="og:type" content="website"/><meta property="og:url" content="https://anabelagrilo.pt/privacy-policy"/><meta name="twitter:card" content="summary_large_image"/><link rel="modulepreload" href="/assets/index-CamyAeCn.js"/><link rel="modulepreload" href="/assets/useStore-DAs5vFz2.js"/><link rel="modulepreload" href="/assets/privacy-policy-CSA0MIvs.js"/><link rel="icon" href="/favicon.png" type="image/png"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="canonical" href="https://anabelagrilo.pt/privacy-policy"/>
2<style>
3	#lovable-badge {
4		--badge-bg: #1b1b1b;
5		--badge-text: #c5c1b9;
6		--badge-text-hover: #dcdad5;
7		--badge-radius: 6px;
8		--badge-padding: 8px;
9		--badge-gap: 6px;
10		--badge-shadow: 
11			0 0 0 1px rgba(0, 0, 0, 0.88),
12			0 1px 0 0 rgba(0, 0, 0, 0.04),
13			0 2px 2px -1px rgba(0, 0, 0, 0.08),
14			0 4px 4px -2px rgba(0, 0, 0, 0.08),
15			0 8px 8px -4px rgba(0, 0, 0, 0.08),
16			0 16px 16px -8px rgba(0, 0, 0, 0.08);
17		--badge-transition-duration: 0.2s;
18		--badge-transition-easing: cubic-bezier(0.16, 1, 0.32, 1);
19		--focus-color: #575ECF;
20		--focus-offset: 2px;
21		--focus-width: 2px;
22		
23		position: fixed;
24		bottom: 12px;
25		right: 12px;
26		height: 24px;
27		display: flex;
28		align-items: center;
29		z-index: 1000000;
30		background-color: var(--badge-bg) !important;
31		color: var(--badge-text) !important;
32		border-radius: var(--badge-radius);
33		box-shadow: var(--badge-shadow) !important;
34		font-size: 12px;
35		font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
36		font-weight: 400 !important;
37		text-transform: none !important;
38		font-feature-settings: normal !important;
39		transform: translateZ(0);
40		will-change: transform, opacity;
41		transition: opacity var(--badge-transition-duration) var(--badge-transition-easing);
42	}
43
44	#lovable-badge.closing {
45		opacity: 0;
46		pointer-events: none;
47	}
48
49	#lovable-badge-cta {
50		display: flex;
51		align-items: baseline;
52		gap: var(--badge-gap);
53		box-sizing: border-box;
54		padding: 4px var(--badge-padding) 0;
55		height: 100%;
56		color: inherit;
57		text-decoration: none;
58		white-space: nowrap;
59		border-radius: var(--badge-radius) 0 0 var(--badge-radius);
60		transition: 
61			background-color var(--badge-transition-duration) ease,
62			color var(--badge-transition-duration) ease,
63			transform 0.1s ease;
64	}
65
66	#lovable-badge-cta:hover {
67		background: rgba(255, 255, 255, 0.04);
68		color: var(--badge-text-hover);
69	}
70
71	#lovable-badge-cta:active {
72		transform: scale(0.98);
73	}
74
75	#lovable-badge-cta:focus {
76		outline: none;
77	}
78
79	#lovable-badge-cta:focus-visible {
80		outline: var(--focus-width) solid var(--focus-color);
81		outline-offset: var(--focus-offset);
82		z-index: 1;
83	}
84
85	#lovable-badge-text {
86		line-height: 1;
87	}
88
89	/* The wordmark baseline sits at y=12 of the 16px logo; an empty 12px box
90	   makes that the flex baseline so the text aligns to it on any system font. */
91	#lovable-badge-logo {
92		position: relative;
93		display: block;
94		width: 52px;
95		height: 12px;
96	}
97
98	#lovable-badge-logo svg {
99		position: absolute;
100		top: 0;
101		left: 0;
102	}
103
104	#lovable-badge-divider {
105		width: 1px;
106		height: 24px;
107		background-color: rgba(255, 255, 255, 0.04);
108		flex-shrink: 0;
109	}
110
111	#lovable-badge-close {
112		width: 24px;
113		height: 24px;
114		min-width: 24px;
115		min-height: 24px;
116		cursor: pointer;
117		background: none;
118		border: none;
119		padding: 0;
120		display: flex;
121		align-items: center;
122		justify-content: center;
123		border-radius: 0 var(--badge-radius) var(--badge-radius) 0;
124		flex-shrink: 0;
125		transition: 
126			background-color var(--badge-transition-duration) ease,
127			transform 0.1s ease;
128	}
129
130	#lovable-badge-close:hover {
131		background: rgba(255, 255, 255, 0.04);
132	}
133
134	#lovable-badge-close:active {
135		transform: scale(0.92);
136	}
137
138	#lovable-badge-close:focus {
139		outline: none;
140	}
141
142	#lovable-badge-close:focus-visible {
143		outline: var(--focus-width) solid var(--focus-color);
144		outline-offset: calc(var(--focus-offset) * -1);
145		z-index: 1;
146	}
147
148	#lovable-badge-close svg path {
149		fill: var(--badge-text);
150		transition: fill var(--badge-transition-duration) ease;
151	}
152
153	#lovable-badge-close:hover svg path {
154		fill: var(--badge-text-hover);
155	}
156
157	@media (prefers-reduced-motion: reduce) {
158		#lovable-badge,
159		#lovable-badge-cta,
160		#lovable-badge-close,
161		#lovable-badge-close svg path {
162			transition: none;
163		}
164		
165		#lovable-badge-cta:active,
166		#lovable-badge-close:active {
167			transform: none;
168		}
169	}
170
171	@media (prefers-contrast: high) {
172		#lovable-badge {
173			--badge-bg: #000;
174			--badge-text: #fff;
175			--badge-text-hover: #fff;
176			border: 2px solid currentColor;
177		}
178		
179		#lovable-badge-cta:focus-visible,
180		#lovable-badge-close:focus-visible {
181			outline-width: 3px;
182		}
183	}
184</style>
185<script defer src="/~flock.js" data-proxy-url="/~api/analytics"></script>
185<meta name="twitter:title" content="Privacy Policy — Anabela Grilo"><meta name="twitter:description" content="Privacy Policy for Anabela Grilo&amp;#x27;s executive, personal and virtual assistant services."><meta property="og:image" content="https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/pubp_6sh5n0pve59abt50fk49jnj1g5/7936641ef00a292d1e612b2bbc4debfa_1790240972252.png"><meta name="twitter:image" content="https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/pubp_6sh5n0pve59abt50fk49jnj1g5/7936641ef00a292d1e612b2bbc4debfa_1790240972252.png"></head><body><!--$--><div class="min-h-screen bg-background text-foreground"><header class="sticky top-0 z-40 border-b border-border/70 bg-background/85 backdrop-blur"><div class="mx-auto flex max-w-6xl items-center justify-between gap-6 px-6 py-4 md:py-5"><a href="#top" class="leading-tight"><span class="block font-display text-lg tracking-tight md:text-xl">Anabela Grilo</span><span class="block text-[0.62rem] uppercase tracking-[0.22em] text-muted-foreground">Executive · Personal · Virtual Assistant</span></a><nav class="hidden items-center gap-8 lg:flex"><a href="#about" class="text-sm text-muted-foreground transition-colors hover:text-foreground">About</a><a href="#services" class="text-sm text-muted-foreground transition-colors hover:text-foreground">What I do</a><a href="#why" class="text-sm text-muted-foreground transition-colors hover:text-foreground">Why me</a><a href="#process" class="text-sm text-muted-foreground transition-colors hover:text-foreground">How I work</a><a href="#contact" class="text-sm text-muted-foreground transition-colors hover:text-foreground">Contact</a></nav><div class="flex items-center gap-2"><div class="flex items-center gap-1 text-muted-foreground"><a href="/pt" class="px-1.5 text-xs uppercase tracking-[0.14em] transition-colors hover:text-foreground">PT</a><span class="text-border">|</span><a aria-current="page" href="/" class="px-1.5 text-xs uppercase tracking-[0.14em] transition-colors font-medium text-foreground">EN</a></div><a href="https://wa.me/351912943420" target="_blank" rel="noreferrer" aria-label="WhatsApp" class="hidden h-10 w-10 items-center justify-center rounded-full border border-border bg-card text-[color:var(--olive)] transition-colors hover:bg-secondary sm:inline-flex"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-circle h-4 w-4" aria-hidden="true"><path d="M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719"></path></svg></a><a href="mailto:[email protected]" class="hidden rounded-full bg-[color:var(--ink)] px-5 py-2.5 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 sm:inline-flex">Let&#x27;s talk</a></div></div></header><main class="mx-auto max-w-3xl px-6 py-16 md:py-24"><p class="text-xs uppercase tracking-[0.24em] text-[color:var(--olive)]">Legal</p><h1 class="mt-5 font-display text-4xl leading-tight md:text-5xl">Privacy Policy</h1><p class="mt-8 text-lg leading-relaxed text-[color:var(--ink-soft)]">I respect the privacy of everyone who visits this website, enquires about services or works with me as a client. This Privacy Policy explains what personal data may be collected, why it is processed, how it is protected, how long it may be retained, and what rights individuals have under applicable data protection legislation, including<!-- --> <strong>Regulation (EU) 2016/679 (General Data Protection Regulation — GDPR)</strong> <!-- -->and, where applicable, <strong>Portuguese Law No. 58/2019</strong>.</p><section class="mt-14 border-t border-border pt-8 md:mt-16 md:pt-10"><h2 class="font-display text-2xl leading-snug md:text-3xl"><span class="text-[color:var(--olive)]">1<!-- -->.</span> <!-- -->Data Controller</h2><div class="mt-5 leading-relaxed text-[color:var(--ink-soft)]"><p class="text-[color:var(--ink-soft)]">The data controller is:</p><address class="mt-4 not-italic leading-relaxed text-[color:var(--ink-soft)]"><strong class="text-foreground">Anabela Grilo</strong><br/>Belém, Lisbon, Portugal<br/>Email:<!-- --> <a href="mailto:[email protected]" class="text-foreground underline underline-offset-4 transition-colors hover:text-[color:var(--olive)]">[email protected]</a></address></div></section><section class="mt-14 border-t border-border pt-8 md:mt-16 md:pt-10"><h2 class="font-display text-2xl leading-snug md:text-3xl"><span class="text-[color:var(--olive)]">2<!-- -->.</span> <!-- -->Personal Data That May Be Processed</h2><div class="mt-5 leading-relaxed text-[color:var(--ink-soft)]"><p class="text-[color:var(--ink-soft)]">Depending on how you interact with this website or contact me, the following information may be processed:</p><ul class="mt-4 list-disc space-y-2 pl-5 text-[color:var(--ink-soft)]"><li>Name</li><li>Email address</li><li>Telephone number / WhatsApp number</li><li>Information voluntarily provided in messages or enquiries</li><li>
185Information necessary to discuss or provide requested services</li><li>Information contained in documents or communications provided by a client when necessary to perform an agreed service</li></ul><p class="mt-4 text-[color:var(--ink-soft)]">Only information that is relevant and necessary for the specific purpose will be requested or processed.</p></div></section><section class="mt-14 border-t border-border pt-8 md:mt-16 md:pt-10"><h2 class="font-display text-2xl leading-snug md:text-3xl"><span class="text-[color:var(--olive)]">3<!-- -->.</span> <!-- -->How Personal Data Is Collected</h2><div class="mt-5 leading-relaxed text-[color:var(--ink-soft)]"><p class="text-[color:var(--ink-soft)]">Information is usually provided directly by you when you:</p><ul class="mt-4 list-disc space-y-2 pl-5 text-[color:var(--ink-soft)]"><li>contact me by email;</li><li>contact me through WhatsApp;</li><li>use contact forms or other contact mechanisms available on the website, if any;</li><li>communicate with me in connection with a requested service.</li></ul><p class="mt-4 text-[color:var(--ink-soft)]">Some information may also be processed during the provision of services when a client voluntarily provides it or authorises me to access or use it for the purpose of carrying out a requested task.</p></div></section><section class="mt-14 border-t border-border pt-8 md:mt-16 md:pt-10"><h2 class="font-display text-2xl leading-snug md:text-3xl"><span class="text-[color:var(--olive)]">4<!-- -->.</span> <!-- -->Purposes of Processing</h2><div class="mt-5 leading-relaxed text-[color:var(--ink-soft)]"><p class="text-[color:var(--ink-soft)]">Personal data may be processed for purposes including:</p><ul class="mt-4 list-disc space-y-2 pl-5 text-[color:var(--ink-soft)]"><li>Responding to enquiries and requests for information</li><li>Communicating with prospective and existing clients</li><li>Preparing, managing and providing requested services</li><li>Managing appointments, meetings and communications</li><li>Carrying out administrative, organisational and coordination tasks requested by clients</li><li>Following up on matters on behalf of clients when authorised</li><li>Complying with legal and regulatory obligations</li><li>Protecting the security and integrity of the website and business</li></ul></div></section><section class="mt-14 border-t border-border pt-8 md:mt-16 md:pt-10"><h2 class="font-display text-2xl leading-snug md:text-3xl"><span class="text-[color:var(--olive)]">5<!-- -->.</span> <!-- -->Legal Bases for Processing</h2><div class="mt-5 leading-relaxed text-[color:var(--ink-soft)]"><p class="text-[color:var(--ink-soft)]">Depending on the specific situation, processing may be based on:</p><ul class="mt-4 list-disc space-y-2 pl-5 text-[color:var(--ink-soft)]"><li>Your consent</li><li>Taking steps at your request before entering into a contract</li><li>Performance of a contract or provision of requested services</li><li>Compliance with legal obligations</li><li>Legitimate interests, where applicable and where these do not override your rights and freedoms</li></ul></div></section><section class="mt-14 border-t border-border pt-8 md:mt-16 md:pt-10"><h2 class="font-display text-2xl leading-snug md:text-3xl"><span class="text-[color:var(--olive)]">6<!-- -->.</span> <!-- -->Confidentiality in the Provision of Services</h2><div class="mt-5 leading-relaxed text-[color:var(--ink-soft)]"><p class="text-[color:var(--ink-soft)]">As an Executive, Personal and Virtual Assistant, I may have access to confidential or sensitive business and personal information provided by clients or made available to me with their authorisation in order to perform requested tasks.</p><p class="mt-4 text-[color:var(--ink-soft)]">Examples may include:</p><ul class="mt-4 list-disc space-y-2 pl-5 text-[color:var(--ink-soft)]"><li>Calendar and meeting information</li><li>Professional contact details</li><li>Documents and administrative information</li><li>Travel arrangements</li><li>Supplier and service-provider information</li><li>Information relating to appointments and practical arrangements</li><li>Other information necessary to perform a specific task requested by the client</li></ul><p class="mt-4 text-[color:var(--ink-soft)]">Such information is treated confidentially and is used only to the extent necessary to perform the requested service, subject to applicable legal obligations.</p></div></section><section class="mt-14 border-t border-border pt-8 md:mt-16 md:pt-10"><h2 class="font-display text-2xl leading-snug md:text-3xl"><span class="text-[color:var(--olive)]">7<!-- -->.</span> <!-- -->Sharing of Personal Data</h2><div class="mt-5 leading-relaxed text-[color:var(--ink-soft)]"><p class="text-[color:var(--ink-soft)]">Personal data is not sold or shared for unrelated commercial purposes.</p><p class="mt-4 text-[color:var(--ink-soft)]">Information may be disclosed to third parties only when necessary for a legitimate purpose connected with the requested service, when authorised by the client, when required by law, or where necessary to comply with legal obligations.</p><p class="mt-4 text-[color:var(--ink-soft)]">Because my work may involve coordination on behalf of clients, I may communicate with third parties such as suppliers, service providers, hotels, travel providers or other professional contacts when this is necessary to carry out a task requested or authorised by the client.</p></div></section><section class="mt-14 border-t border-border pt-8 md:mt-16 md:pt-10"><h2 class="font-display text-2xl leading-snug md:text-3xl"><span class="text-[color:var(--olive)]">8<!-- -->.</span> <!-- -->Data Retention</h2><div class="mt-5 leading-relaxed text-[color:var(--ink-soft)]"><p class="text-[color:var(--ink-soft)]">Personal data is retained only for as long as necessary for the purposes for which it was collected, taking into account the nature of the relationship, the services provided, legal obligations and legitimate business requirements.</p><p class="mt-4 text-[color:var(--ink-soft)]">Where applicable, certain information may need to be retained for periods required by Portuguese tax, accounting or other legislation.</p></div></section><section class="mt-14 border-t border-border pt-8 md:mt-16 md:pt-10"><h2 class="font-display text-2xl leading-snug md:text-3xl"><span class="text-[color:var(--olive)]">9<!-- -->.</span> <!-- -->Data Security</h2><div class="mt-5 leading-relaxed text-[color:var(--ink-soft)]"><p class="text-[color:var(--ink-soft)]">Reasonable organisational and technical measures are taken to protect personal data against unauthorised access, loss, alteration, disclosure or destruction.</p></div></section><section class="mt-14 border-t border-border pt-8 md:mt-16 md:pt-10"><h2 class="font-display text-2xl leading-snug md:text-3xl"><span class="text-[color:var(--olive)]">10<!-- -->.</span> <!-- -->Cookies and Similar Technologies</h2><div class="mt-5 leading-relaxed text-[color:var(--ink-soft)]"><p class="text-[color:var(--ink-soft)]">This website does not intentionally use non-essential tracking or advertising cookies. If any technically necessary cookies are required for the website to function, these are used only for that essential purpose.</p></div></section><section class="mt-14 border-t border-border pt-8 md:mt-16 md:pt-10"><h2 class="font-display text-2xl leading-snug md:text-3xl"><span class="text-[color:var(--olive)]">11<!-- -->.</span> <!-- -->Rights of Data Subjects</h2><div class="mt-5 leading-relaxed text-[color:var(--ink-soft)]"><p class="text-[color:var(--ink-soft)]">Subject to the conditions established by applicable law, you may have the right to:</p><ul class="mt-4 list-disc space-y-2 pl-5 text-[color:var(--ink-soft)]"><li>Access your personal data</li><li>Request rectification of inaccurate or incomplete data</li><li>Request erasure of your personal data</li><li>Request restriction of processing</li><li>Request data portability, where applicable</li><li>Object to certain processing</li><li>
185Withdraw consent where processing is based on consent</li></ul><p class="mt-4 text-[color:var(--ink-soft)]">Withdrawing consent does not affect the lawfulness of processing carried out before the withdrawal.</p><p class="mt-4 text-[color:var(--ink-soft)]">You can make a request by contacting<!-- --> <a href="mailto:[email protected]" class="text-foreground underline underline-offset-4 transition-colors hover:text-[color:var(--olive)]">[email protected]</a>. You also have the right to lodge a complaint with the<!-- --> <strong class="text-foreground">Portuguese Data Protection Authority (CNPD)</strong>.</p></div></section><section class="mt-14 border-t border-border pt-8 md:mt-16 md:pt-10"><h2 class="font-display text-2xl leading-snug md:text-3xl"><span class="text-[color:var(--olive)]">12<!-- -->.</span> <!-- -->Changes to This Privacy Policy</h2><div class="mt-5 leading-relaxed text-[color:var(--ink-soft)]"><p class="text-[color:var(--ink-soft)]">This Privacy Policy may be updated from time to time to reflect changes in the website, services, legal requirements or data processing practices.</p><p class="mt-4 text-sm text-muted-foreground">Last updated: September 2026</p></div></section><section class="mt-14 border-t border-border pt-8 md:mt-16 md:pt-10"><h2 class="font-display text-2xl leading-snug md:text-3xl"><span class="text-[color:var(--olive)]">13<!-- -->.</span> <!-- -->Contact</h2><div class="mt-5 leading-relaxed text-[color:var(--ink-soft)]"><p class="text-[color:var(--ink-soft)]">If you have any questions about this Privacy Policy or about the way personal data is handled, please contact:</p><address class="mt-4 not-italic leading-relaxed text-[color:var(--ink-soft)]"><strong class="text-foreground">Anabela Grilo</strong><br/>Email:<!-- --> <a href="mailto:[email protected]" class="text-foreground underline underline-offset-4 transition-colors hover:text-[color:var(--olive)]">[email protected]</a><br/>Belém, Lisbon, Portugal</address></div></section><div class="mt-16"><a href="/" class="inline-flex items-center gap-2 text-sm font-medium text-[color:var(--ink-soft)] transition-colors hover:text-foreground">← Back to home</a></div></main><footer class="py-12"><div class="mx-auto flex max-w-6xl flex-col gap-8 px-6 md:flex-row md:items-end md:justify-between"><div><p class="font-display text-2xl">Anabela Grilo</p><p class="mt-2 text-sm text-muted-foreground">Executive &amp; Personal Assistant | Virtual Assistant | Office Manager</p></div><div class="flex flex-col gap-2 text-sm md:items-end"><a href="mailto:[email protected]" class="inline-flex items-center gap-2 text-[color:var(--ink-soft)] transition-colors hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail h-4 w-4" aria-hidden="true"><path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7"></path><rect x="2" y="4" width="20" height="16" rx="2"></rect></svg> <!-- -->[email protected]</a><a href="https://wa.me/351912943420" target="_blank" rel="noreferrer" class="inline-flex items-center gap-2 text-[color:var(--ink-soft)] transition-colors hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-circle h-4 w-4" aria-hidden="true"><path d="M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719"></path></svg> WhatsApp</a><a href="https://www.linkedin.com/in/anabela-grilo-10811118/" target="_blank" rel="noreferrer" class="inline-flex items-center gap-2 text-[color:var(--ink-soft)] transition-colors hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-linkedin h-4 w-4" aria-hidden="true"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect width="4" height="12" x="2" y="9"></rect><circle cx="4" cy="4" r="2"></circle></svg> LinkedIn profile</a><a href="https://www.instagram.com/ag.virtualassistant.lisbon.pt/" target="_blank" rel="noreferrer" class="inline-flex items-center gap-2 text-[color:var(--ink-soft)] transition-colors hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-instagram h-4 w-4" aria-hidden="true"><rect width="20" height="20" x="2" y="2" rx="5" ry="5"></rect><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path><line x1="17.5" x2="17.51" y1="6.5" y2="6.5"></line></svg> Instagram</a><a href="https://www.facebook.com/agvirtualassistantportugal" target="_blank" rel="noreferrer" class="inline-flex items-center gap-2 text-[color:var(--ink-soft)] transition-colors hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-facebook h-4 w-4" aria-hidden="true"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg> Facebook</a><div class="mt-2 inline-flex flex-wrap gap-x-4 gap-y-1 text-xs text-muted-foreground"><a class="transition-colors hover:text-foreground active" href="/privacy-policy" data-status="active" aria-current="page">Privacy Policy</a><a href="/terms-and-conditions" class="transition-colors hover:text-foreground">Terms &amp; Conditions</a><a href="/complaints-book" class="transition-colors hover:text-foreground">Complaints Book</a></div><p class="mt-2 text-xs text-muted-foreground">© <!-- -->2026<!-- --> Anabela Grilo · <!-- -->Lisbon<!-- -->, Portugal</p></div></div></footer></div>
185<script>(function(a,f){let l;try{l=JSON.parse(sessionStorage.getItem(a)||"{}")}catch{return}const n=l?.[f||history.state?.__TSR_key];let c=!1;for(const t in n){const e=n[t],o=e?.scrollX,s=e?.scrollY;if(Number.isFinite(o)&&Number.isFinite(s)){if(t==="window")scrollTo(o,s),c=!0;else if(t)try{const r=document.querySelector(t);r&&(r.scrollLeft=o,r.scrollTop=s)}catch{}}}if(c)return;const i=location.hash.slice(1);if(i){const t=history.state?.__hashScrollIntoViewOptions??!0;if(t){const e=document.getElementById(i);e&&e.scrollIntoView(t)}return}scrollTo(0,0)})("tsr-scroll-restoration-v1_3");document.currentScript.remove()</script>
185<!--/$-->
185<script class="$tsr" id="$tsr-stream-barrier">(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={h(){this.hydrated=!0,this.c()},e(){this.streamEnded=!0,this.c()},c(){this.hydrated&&this.streamEnded&&(delete self.$_TSR,delete self.$R.tsr)},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/index-CamyAeCn.js","/assets/useStore-DAs5vFz2.js"],scripts:$R[5]=[$R[6]={attrs:$R[7]={type:"module",async:!0,src:"/assets/index-CamyAeCn.js"}}]},"/privacy-policy":$R[8]={preloads:$R[9]=["/assets/privacy-policy-CSA0MIvs.js"]}}},matches:$R[10]=[$R[11]={i:"__root__�",u:1790999095735,s:"success",ssr:!0},$R[12]={i:"�privacy-policy�privacy-policy",u:1790999095735,s:"success",ssr:!0}],lastMatchId:"�privacy-policy�privacy-policy"})($R["tsr"]);$_TSR.e();document.currentScript.remove()</script>
185<script type="module" async="" src="/assets/index-CamyAeCn.js"></script>
185
186<aside
187	id="lovable-badge"
188	role="complementary"
189	dir="ltr"
190	lang="en"
191	aria-label="Edit with Lovable">
192	<a
193		id="lovable-badge-cta" 
194		target="_blank" 
195		href="https://lovable.dev/projects/pubp_6sh5n0pve59abt50fk49jnj1g5?utm_source=lovable-badge"
196		rel="noopener nofollow"
197		aria-label="Edit with Lovable">
198		<span id="lovable-badge-text">Edit with</span>
199		<span id="lovable-badge-logo"><svg xmlns="http://www.w3.org/2000/svg" width="52" height="16" fill="none" viewBox="0 0 52 16">
200  <path fill="#FCFBF8" fill-rule="evenodd" d="M20.318 5.25c.643 0 1.206.14 1.69.418a2.81 2.81 0 0 1 1.118 1.191c.266.513.4 1.115.4 1.807s-.134 1.296-.4 1.812a2.81 2.81 0 0 1-1.118 1.193c-.484.278-1.047.418-1.69.418s-1.208-.14-1.695-.418a2.85 2.85 0 0 1-1.125-1.193c-.262-.516-.393-1.12-.393-1.812s.131-1.294.393-1.807a2.848 2.848 0 0 1 1.125-1.191c.487-.279 1.052-.418 1.695-.418Zm0 1.425c-.27 0-.504.076-.7.228-.193.147-.34.37-.443.67-.102.295-.153.66-.153 1.093 0 .435.05.801.153 1.1.102.3.25.524.443.676.196.147.43.22.7.22.27 0 .502-.073.694-.22.193-.152.341-.375.443-.67.103-.299.153-.667.153-1.106 0-.65-.112-1.145-.337-1.481a1.08 1.08 0 0 0-.953-.51ZM32.7 5.25c.61 0 1.127.1 1.549.3.422.197.74.48.953.849.217.368.325.809.325 1.32v2.704c0 .29.02.562.062.812.044.245.108.4.19.466V12h-1.935a5.895 5.895 0 0 1-.105-.684 7.745 7.745 0 0 1-.02-.228 2.293 2.293 0 0 1-.151.203c-.205.242-.47.437-.793.584-.32.143-.685.215-1.094.215-.406 0-.77-.08-1.094-.24a1.845 1.845 0 0 1-.756-.682 1.984 1.984 0 0 1-.27-1.045c0-.606.178-1.069.535-1.388.356-.324.87-.534 1.542-.633l1.125-.16c.225-.032.403-.074.534-.123a.622.622 0 0 0 .288-.196.549.549 0 0 0 .093-.327.65.65 0 0 0-.11-.367.702.702 0 0 0-.32-.27c-.14-.07-.31-.105-.51-.105-.32 0-.576.083-.768.251-.193.164-.298.39-.314.676h-1.923c.016-.434.147-.82.393-1.155.25-.34.596-.604 1.039-.792.442-.189.954-.283 1.535-.283Zm.99 3.498a.98.98 0 0 1-.215.14 2.49 2.49 0 0 1-.584.178l-.473.092c-.315.061-.553.156-.713.283-.155.127-.233.305-.233.534 0 .23.084.412.252.547.168.135.383.203.645.203s.494-.058.694-.173c.201-.118.355-.282.461-.49.11-.21.166-.448.166-.714v-.6Zm4.526-2.375c.065-.125.138-.243.221-.349.197-.25.437-.44.719-.571.282-.135.6-.203.952-.203.528 0 .988.138 1.377.412.389.275.688.67.896 1.186.21.512.314 1.12.314 1.824 0 .7-.107 1.309-.32 1.825-.213.512-.518.906-.915 1.18-.393.275-.854.412-1.383.412-.352 0-.667-.062-.946-.184a1.832 1.832 0 0 1-.7-.554 2.2 2.2 0 0 1-.234-.383V12h-1.843V3h1.862v3.373Zm1.284.296c-.274 0-.51.085-.707.253-.192.163-.338.397-.436.7a3.376 3.376 0 0 0-.148 1.05c0 .406.05.759.148 1.058.098.299.243.53.436.694.197.164.433.246.707.246.279 0 .512-.082.7-.246.193-.164.336-.395.43-.694.099-.3.148-.652.148-1.058 0-.405-.05-.757-.147-1.056-.095-.299-.238-.53-.43-.694a1.015 1.015 0 0 0-.7-.253Zm9.416-1.419c.602 0 1.136.131 1.604.393.466.262.829.643 1.086 1.143.263.5.394 1.097.394 1.794 0 .25-.002.449-.006.596H47.51c.018.288.071.538.164.75a1.3 1.3 0 0 0 .491.596c.214.13.465.196.757.196.319 0 .583-.082.792-.246.209-.167.34-.403.393-.706h1.862a2.48 2.48 0 0 1-.485 1.235 2.54 2.54 0 0 1-1.051.805c-.439.188-.949.283-1.53.283-.655 0-1.225-.125-1.708-.375a2.672 2.672 0 0 1-1.13-1.143c-.267-.508-.4-1.137-.4-1.887 0-.712.14-1.327.418-1.843a2.86 2.86 0 0 1 1.155-1.186c.491-.27 1.051-.405 1.678-.405Zm-.044 1.345c-.274 0-.516.068-.725.203a1.29 1.29 0 0 0-.479.59 2.045 2.045 0 0 0-.132.498h2.562a1.873 1.873 0 0 0-.138-.602 1.061 1.061 0 0 0-.418-.516 1.243 1.243 0 0 0-.67-.173Z" clip-rule="evenodd"/>
201  <path fill="#FCFBF8" d="m26.605 9.995 1.342-4.566h1.924L27.628 12h-2.07l-2.33-6.57h1.98l1.397 4.565Zm-13.013.143h2.256c1.632 0 1.421 1.837 1.418 1.861h-5.603V3h1.93v7.138Zm31.516 1.861h-1.862V3h1.862v8.999Z"/>
202  <path fill="url(#a)" fill-rule="evenodd" d="M2.7 3c1.492 0 2.7 1.192 2.7 2.663v1.012h.9c1.49 0 2.7 1.192 2.7 2.662S7.791 12 6.3 12H0V5.663C0 4.193 1.209 3 2.7 3Z" clip-rule="evenodd"/>
203  <defs>
204    <radialGradient id="a" cx="0" cy="0" r="1" gradientTransform="matrix(-1.54236 7.07838 -10.231 -2.15602 4.627 5.022)" gradientUnits="userSpaceOnUse">
205      <stop offset=".106" stop-color="#FE7B02"/>
206      <stop offset=".394" stop-color="#FE3F21"/>
207      <stop offset=".608" stop-color="#F858BC"/>
208      <stop offset=".929" stop-color="#575ECF"/>
209    </radialGradient>
210  </defs>
211</svg>
212
213</span>
214	</a>
215	
216	<span id="lovable-badge-divider" aria-hidden="true"></span>
217	
218	<button 
219		id="lovable-badge-close"
220		aria-label="Dismiss"
221		title="Dismiss"
222		type="button">
223		<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16" aria-hidden="true">
224			<path d="M10.646 4.646a.5.5 0 1 1 .707.708L8.707 8l2.646 2.646a.5.5 0 1 1-.707.707L8 8.707l-2.646 2.646a.5.5 0 1 1-.708-.707L7.293 8 4.646 5.354a.5.5 0 1 1 .708-.708L8 7.293l2.646-2.647Z"/>
225		</svg>
226	</button>
227</aside>
228<script>
229	(() => {
230		if (window.self !== window.top || navigator.userAgent.includes('puppeteer')) {
231			const badge = document.querySelector('#lovable-badge');
232			if (badge) {
233				badge.style.display = 'none';
234			}
235			return;
236		}
237
238		const closeButton = document.querySelector('#lovable-badge-close');
239		if (closeButton) {
240			closeButton.addEventListener('click', function(event) {
241				event.preventDefault();
242				event.stopPropagation();
243				const badge = document.querySelector('#lovable-badge');
244				if (badge) {
245					badge.classList.add('closing');
246					setTimeout(function() {
247						if (badge) {
248							badge.style.display = 'none';
249						}
250					}, 240);
251				}
252			});
253		}
254	})();
255</script>
255
256</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.