MagnusM76 commited on
Commit
84890be
·
verified ·
1 Parent(s): f806f83

Upload !DOCTYPE html.txt

Browse files
Files changed (1) hide show
  1. !DOCTYPE html.txt +110 -0
!DOCTYPE html.txt ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Magnus The Handyman | Maintenance & Repairs</title>
7
+ <meta name="description" content="Magnus The Handyman - reliable home and property maintenance, repairs, installations and handyman services.">
8
+ <style>
9
+ :root{--gold:#f5b400;--dark:#0b0d10;--panel:#15191f;--light:#f5f5f5;--muted:#b8bec7}
10
+ *{box-sizing:border-box;scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#090a0c;color:var(--light);line-height:1.6}
11
+ header{position:sticky;top:0;z-index:10;background:rgba(9,10,12,.96);border-bottom:1px solid #292d33}
12
+ .nav{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:12px 20px}
13
+ .brand{display:flex;align-items:center;gap:10px;font-weight:800}.brand img{width:48px;height:48px;object-fit:cover;border-radius:50%}.brand span{color:var(--gold)}
14
+ nav a{color:white;text-decoration:none;margin-left:20px;font-weight:700}nav a:hover{color:var(--gold)}
15
+ .lang{margin-left:18px;background:#20252c;color:white;border:1px solid #444;padding:7px;border-radius:6px}
16
+ .hero{min-height:720px;display:grid;place-items:center;text-align:center;padding:70px 20px;background:radial-gradient(circle at 50% 20%,#30353c 0,#111419 38%,#08090b 75%)}
17
+ .hero-inner{max-width:900px}.hero-logo{width:min(520px,80vw);max-height:420px;object-fit:contain;filter:drop-shadow(0 18px 30px #000)}
18
+ h1{font-size:clamp(2.4rem,6vw,5rem);margin:10px 0;color:white}.gold{color:var(--gold)}
19
+ .btn{display:inline-block;background:var(--gold);color:#111;text-decoration:none;font-weight:900;padding:14px 24px;border-radius:8px;margin:8px;border:0;cursor:pointer}.btn.secondary{background:transparent;color:white;border:1px solid #666}
20
+ section{padding:80px 20px}.wrap{max-width:1180px;margin:auto}h2{text-align:center;font-size:2.4rem;margin-top:0}.lead{text-align:center;color:var(--muted);max-width:760px;margin:0 auto 40px}
21
+ .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}.card{background:var(--panel);border:1px solid #2c3138;border-radius:14px;padding:26px;box-shadow:0 10px 30px #0005}.icon{font-size:2rem;color:var(--gold)}
22
+ .alt{background:#11151a}.booking{display:grid;grid-template-columns:1fr 1fr;gap:30px}
23
+ form{background:var(--panel);padding:28px;border-radius:14px;border:1px solid #30353b}label{display:block;margin-top:14px;font-weight:bold}input,select,textarea{width:100%;padding:12px;margin-top:6px;background:#0c0f13;color:white;border:1px solid #444;border-radius:7px}textarea{min-height:110px}
24
+ .notice{padding:12px;background:#201b0c;border-left:4px solid var(--gold);color:#eee;margin-top:15px}.price{font-size:1.6rem;font-weight:bold;color:var(--gold)}
25
+ .review-form{max-width:700px;margin:30px auto}.review{margin-top:20px}.stars{color:var(--gold);font-size:1.2rem}
26
+ footer{background:#050608;padding:45px 20px;text-align:center;color:var(--muted)}footer img{width:80px;border-radius:50%}
27
+ @media(max-width:760px){nav a{display:none}.booking{grid-template-columns:1fr}.hero{min-height:650px}}
28
+ </style>
29
+ </head>
30
+ <body>
31
+ <header><div class="nav">
32
+ <div class="brand"><img src="assets/magnus-logo.png" alt="Magnus The Handyman logo"><div>MAGNUS <span>THE HANDYMAN</span></div></div>
33
+ <nav><a href="#home">Home</a><a href="#services">Services</a><a href="#booking">Book</a><a href="#reviews">Reviews</a><a href="#contact">Contact</a><select class="lang" onchange="changeLang(this.value)"><option value="en">English</option><option value="af">Afrikaans</option><option value="ar">العربية</option></select></nav>
34
+ </div></header>
35
+
36
+ <main id="home">
37
+ <section class="hero"><div class="hero-inner">
38
+ <img class="hero-logo" src="assets/magnus-logo.png" alt="Magnus The Handyman">
39
+ <h1 data-en="Reliable Repairs. Quality Work. Done Right." data-af="Betroubare Herstelwerk. Kwaliteit. Reg gedoen." data-ar="إصلاحات موثوقة. جودة عالية. إنجاز متقن.">Reliable Repairs. Quality Work. Done Right.</h1>
40
+ <p class="lead" data-en="Professional handyman and property maintenance services for homes, offices and small businesses." data-af="Professionele handyman- en eiendomsinstandhoudingsdienste vir huise, kantore en klein besighede." data-ar="خدمات صيانة وإصلاح احترافية للمنازل والمكاتب والشركات الصغيرة.">Professional handyman and property maintenance services for homes, offices and small businesses.</p>
41
+ <a class="btn" href="#booking">BOOK A SERVICE</a><a class="btn secondary" href="#services">VIEW SERVICES</a>
42
+ </div></section>
43
+
44
+ <section id="services"><div class="wrap"><h2>Our <span class="gold">Services</span></h2><p class="lead">From small repairs to general property maintenance, Magnus The Handyman helps keep your property safe, functional and looking its best.</p>
45
+ <div class="cards">
46
+ <div class="card"><div class="icon">🔧</div><h3>General Repairs</h3><p>Doors, locks, fittings, fixtures and everyday household repairs.</p></div>
47
+ <div class="card"><div class="icon">🛠️</div><h3>Maintenance</h3><p>Preventative and routine maintenance for homes, offices and properties.</p></div>
48
+ <div class="card"><div class="icon">🎨</div><h3>Painting & Touch-Ups</h3><p>Interior touch-ups, feature walls and small painting projects.</p></div>
49
+ <div class="card"><div class="icon">🚿</div><h3>Plumbing Assistance</h3><p>Minor leaks, taps, fittings and basic plumbing maintenance.</p></div>
50
+ <div class="card"><div class="icon">💡</div><h3>Installation</h3><p>Fixtures, shelves, curtain rails, mirrors and other installations.</p></div>
51
+ <div class="card"><div class="icon">🏠</div><h3>Property Care</h3><p>Reliable handyman support to keep your property in good condition.</p></div>
52
+ </div></div></section>
53
+
54
+ <section id="booking" class="alt"><div class="wrap"><h2>Book <span class="gold">Magnus</span></h2><p class="lead">Choose a service and request a convenient appointment. This demo is ready to connect to your preferred booking and payment provider.</p>
55
+ <div class="booking">
56
+ <form onsubmit="submitBooking(event)">
57
+ <h3>Request a Booking</h3>
58
+ <label>Name<input id="name" required></label>
59
+ <label>Phone / WhatsApp<input id="phone" required></label>
60
+ <label>Email<input id="email" type="email"></label>
61
+ <label>Service<select id="service" required><option value="">Select a service</option><option>General Repairs</option><option>Maintenance</option><option>Painting & Touch-Ups</option><option>Plumbing Assistance</option><option>Installation</option><option>Property Care</option></select></label>
62
+ <label>Preferred Date<input id="date" type="date" required></label>
63
+ <label>Preferred Time<select id="time"><option>Morning</option><option>Afternoon</option><option>Evening</option></select></label>
64
+ <label>Job Description<textarea id="details" placeholder="Tell us what needs to be done..."></textarea></label>
65
+ <button class="btn" type="submit">SEND BOOKING REQUEST</button>
66
+ <div id="bookingMsg" class="notice" style="display:none"></div>
67
+ </form>
68
+ <div class="card"><h3>Simple & Transparent</h3><p class="price">Request a Quote</p><p>Every job is different. Send your request and Magnus can confirm availability and provide a quotation before work begins.</p><h3>Payments</h3><p>This website includes a payment-ready section. For live payments, connect a secure provider such as Stripe, PayPal or a UAE payment gateway. Never collect raw card details directly in this HTML page.</p><div class="notice">For a live website, booking storage, confirmations and payment processing need a secure backend or trusted third-party integration.</div></div>
69
+ </div></div></section>
70
+
71
+ <section id="reviews"><div class="wrap"><h2>Customer <span class="gold">Reviews</span></h2><p class="lead">Share your experience and help future customers choose Magnus The Handyman.</p>
72
+ <div id="reviewList" class="cards"></div>
73
+ <form class="review-form" onsubmit="submitReview(event)"><h3>Leave a Review</h3><label>Your Name<input id="reviewName" required></label><label>Rating<select id="rating"><option>5</option><option>4</option><option>3</option><option>2</option><option>1</option></select></label><label>Your Review<textarea id="reviewText" required></textarea></label><button class="btn" type="submit">POST REVIEW</button></form>
74
+ </div></section>
75
+
76
+ <section id="contact" class="alt"><div class="wrap"><h2>Contact <span class="gold">Magnus</span></h2><p class="lead">Ready to get the job done? Send a booking request or contact us directly.</p><div class="cards">
77
+ <div class="card"><h3>📞 Phone / WhatsApp</h3><p><a href="tel:+971585591476" style="color:white">+971 58 559 1476</a></p><p>Replace this number with your business number.</p></div>
78
+ <div class="card"><h3>✉️ Email</h3><p><a href="mailto:magnusthehandyman@gmail.com" style="color:white">magnusthehandyman@gmail.com</a></p></div>
79
+ <div class="card"><h3>📍 Service Area</h3><p>Dubai / Your Local Service Area</p><p>Edit this text to your actual coverage area.</p></div>
80
+ </div></div></section>
81
+ </main>
82
+
83
+ <footer><img src="assets/magnus-logo.png" alt="Magnus logo"><p><strong>MAGNUS THE HANDYMAN</strong></p><p>Reliable repairs. Quality work. Done right.</p><p>© <span id="year"></span> Magnus The Handyman. All rights reserved.</p></footer>
84
+
85
+ <script>
86
+ const translations={en:{},af:{},ar:{}};
87
+ function changeLang(lang){
88
+ document.documentElement.lang=lang;
89
+ document.querySelectorAll('[data-'+lang+']').forEach(el=>el.textContent=el.getAttribute('data-'+lang));
90
+ if(lang==='ar'){document.body.dir='rtl'}else{document.body.dir='ltr'}
91
+ }
92
+ function submitBooking(e){
93
+ e.preventDefault();
94
+ const data={name:name.value,phone:phone.value,email:email.value,service:service.value,date:date.value,time:time.value,details:details.value};
95
+ localStorage.setItem('latestBooking',JSON.stringify(data));
96
+ bookingMsg.style.display='block';bookingMsg.textContent='Thank you! Your booking request has been saved in this demo. Connect the form to your email/backend to receive live bookings.';
97
+ e.target.reset();
98
+ }
99
+ function loadReviews(){
100
+ const reviews=JSON.parse(localStorage.getItem('magnusReviews')||'[]');
101
+ reviewList.innerHTML=reviews.map(r=>`<div class="card review"><h3>${escapeHtml(r.name)}</h3><div class="stars">${'★'.repeat(Number(r.rating))}${'☆'.repeat(5-Number(r.rating))}</div><p>${escapeHtml(r.text)}</p></div>`).join('')||'<div class="card"><h3>Be our first reviewer!</h3><p>Your customer reviews will appear here.</p></div>';
102
+ }
103
+ function submitReview(e){
104
+ e.preventDefault();const reviews=JSON.parse(localStorage.getItem('magnusReviews')||'[]');
105
+ reviews.unshift({name:reviewName.value,rating:rating.value,text:reviewText.value});localStorage.setItem('magnusReviews',JSON.stringify(reviews));e.target.reset();loadReviews();
106
+ }
107
+ function escapeHtml(s){return s.replace(/[&<>"']/g,m=>({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#039;'}[m]))}
108
+ document.getElementById('year').textContent=new Date().getFullYear();loadReviews();
109
+ </script>
110
+ </body></html>