thumbtack2

Service Request

Property care

Fill out this form and I will get back to you shortly.​

Personal Concierge Service Agreement

Agreement

Service Agreement · Date: ____ / ____ / ______

1. Parties

Service Provider

Client

2. Purpose of the Agreement

The Service Provider agrees to provide the personal concierge and property-related services expressly agreed with the Client.

3. Duration
4. Fees and Payment
5. Client Responsibilities

The Client agrees to:

6. Property Access and Keys
7. Third-Party Services

The Service Provider may assist in finding, booking or coordinating independent professionals, including cleaners, tradespeople, delivery companies and maintenance providers.

8. Property Checks and Reports
9. Cancellations and Changes
10. Confidentiality and Personal Data
11. Liability

The Service Provider shall exercise reasonable care and skill in performing the agreed services. Each Party shall be responsible for loss or damage to the extent attributable to their own acts or omissions.

12. Termination
13. Complaints and Disputes
14. Governing Law

This Agreement shall be governed by the laws of Spain, subject to any mandatory legal provisions applicable to the Client.

15. Entire Agreement and Amendments
16. Signatures

By signing below, the Parties confirm that they have read and understood this Agreement and agree to its terms.

The Service Provider

Service Provider's Signature

The Client

Client's Signature
Schedule A – Services and Fees

This Schedule forms an integral part of the Service Agreement between the Parties.

A. Services agreed

B. Service arrangements

C. Fees and expenses

D. Additional authorisations

The Client authorises the Service Provider to:

These authorisations apply only to the services agreed in this Schedule. They do not authorise the Service Provider to enter into property transactions, sign contracts on the Client's behalf or incur unapproved expenditure.

thumbtack2

Service Request

Property care

Fill out this form and I will get back to you shortly.

Personal Concierge Service Agreement

Agreement

Service Agreement · Date: ____ / ____ / ______

1. Parties

Service Provider

Client

2. Purpose of the Agreement

The Service Provider agrees to provide the personal concierge and property-related services expressly agreed with the Client.

3. Duration
4. Fees and Payment
5. Client Responsibilities

The Client agrees to:

6. Property Access and Keys
7. Third-Party Services

The Service Provider may assist in finding, booking or coordinating independent professionals, including cleaners, tradespeople, delivery companies and maintenance providers.

8. Property Checks and Reports
9. Cancellations and Changes
10. Confidentiality and Personal Data
11. Liability

The Service Provider shall exercise reasonable care and skill in performing the agreed services. Each Party shall be responsible for loss or damage to the extent attributable to their own acts or omissions.

12. Termination
13. Complaints and Disputes
14. Governing Law

This Agreement shall be governed by the laws of Spain, subject to any mandatory legal provisions applicable to the Client.

15. Entire Agreement and Amendments
16. Signatures

By signing below, the Parties confirm that they have read and understood this Agreement and agree to its terms.

The Service Provider

Service Provider's Signature

The Client

Client's Signature
Schedule A – Services and Fees

This Schedule forms an integral part of the Service Agreement between the Parties.

A. Services agreed

B. Service arrangements

C. Fees and expenses

D. Additional authorisations

The Client authorises the Service Provider to:

These authorisations apply only to the services agreed in this Schedule. They do not authorise the Service Provider to enter into property transactions, sign contracts on the Client's behalf or incur unapproved expenditure.

add_action('wp_footer', function() { ?> window.LessonProgress={getStorageKey:function(){var body=document.body;var userId=null;var meta=document.querySelector('meta[name="current-user-id"]');if(meta){userId=meta.getAttribute('content')} if(!userId&&window.currentUser&&window.currentUser.id){userId=window.currentUser.id} if(!userId&&body){var match=body.className.match(/user-id-(\d+)/);if(match){userId=match[1]}} if(!userId&&body){userId=body.getAttribute('data-user-id')} if(!userId){userId=localStorage.getItem('lesson_user_id')} if(!userId){userId='guest'} return'lesson_progress_'+userId},getProgress:function(){try{var data=localStorage.getItem(this.getStorageKey());return data?JSON.parse(data):{}}catch(error){console.error('Could not read lesson progress:',error);return{}}},saveProgress:function(progress){try{localStorage.setItem(this.getStorageKey(),JSON.stringify(progress))}catch(error){console.error('Could not save lesson progress:',error)}},isCompleted:function(lessonId){var progress=this.getProgress();return!!progress[lessonId]},complete:function(lessonId){if(!lessonId)return;var progress=this.getProgress();progress[lessonId]={completed:!0,completedAt:new Date().toISOString()};this.saveProgress(progress);updateSidebarCheckmarks();document.dispatchEvent(new CustomEvent('lessonProgressUpdated',{detail:{lessonId:lessonId,completed:!0}}))},uncomplete:function(lessonId){if(!lessonId)return;var progress=this.getProgress();delete progress[lessonId];this.saveProgress(progress);updateSidebarCheckmarks();document.dispatchEvent(new CustomEvent('lessonProgressUpdated',{detail:{lessonId:lessonId,completed:!1}}))},toggle:function(lessonId){if(this.isCompleted(lessonId)){this.uncomplete(lessonId)}else{this.complete(lessonId)}}};function getCurrentLessonId(){var body=document.body;if(body){var bodyLessonId=body.getAttribute('data-lesson-id');if(bodyLessonId)return bodyLessonId;var postId=body.getAttribute('data-post-id');if(postId)return postId;var classes=body.className;var match=classes.match(/postid-(\d+)/);if(match)return match[1]} return null} function updateSidebarCheckmarks(){if(!window.LessonProgress)return;var progress=window.LessonProgress.getProgress();document.querySelectorAll('[data-lesson-id]').forEach(function(element){var lessonId=element.getAttribute('data-lesson-id');if(!lessonId)return;var completed=!!progress[lessonId];var existing=element.querySelector('.lesson-completion-check');if(existing)existing.remove();if(completed){var check=document.createElement('span');check.className='lesson-completion-check';check.textContent='✓ ';check.setAttribute('aria-hidden','true');element.insertBefore(check,element.firstChild)}})} function connectCpmButtonToProgress(){var btn=document.getElementById('cpm-complete-button');if(!btn)return;if(window.__cpmButtonConnected===!0){return} if(btn.getAttribute('data-progress-connected')==='true'){return} window.__cpmButtonConnected=!0;btn.setAttribute('data-progress-connected','true');btn.dataset.progressConnected='true';var lessonId=btn.getAttribute('data-lesson-complete')||btn.getAttribute('data-lesson-id')||getCurrentLessonId();if(lessonId){var isDone=window.LessonProgress.isCompleted(lessonId);btn.setAttribute('data-completed',isDone?'1':'0');var completedText=btn.getAttribute('data-completed-text');var incompleteText=btn.getAttribute('data-incomplete-text');if(isDone&&completedText){btn.textContent=completedText}else if(!isDone&&incompleteText){btn.textContent=incompleteText}} btn.addEventListener('click',function(){var lessonId=btn.getAttribute('data-lesson-complete')||btn.getAttribute('data-lesson-id')||getCurrentLessonId();if(!lessonId){console.warn('⚠️ No s\'ha trobat lessonId per al botó CPM');return} window.LessonProgress.toggle(lessonId);var completed=window.LessonProgress.isCompleted(lessonId);btn.setAttribute('data-completed',completed?'1':'0');var completedText=btn.getAttribute('data-completed-text');var incompleteText=btn.getAttribute('data-incomplete-text');if(completed&&completedText){btn.textContent=completedText}else if(!completed&&incompleteText){btn.textContent=incompleteText} console.log('✅ Progrés actualitzat per lessonId:',lessonId,'→',completed)})} if(document.readyState==='loading'){document.addEventListener('DOMContentLiteSpeedLoaded',function(){updateSidebarCheckmarks();connectCpmButtonToProgress()})}else{updateSidebarCheckmarks();connectCpmButtonToProgress()}