#min-full{
–navy:#142544;–navy2:#1c3458;–white:#fff;
–muted:#b9c8df;–line:rgba(255,255,255,.16);
–pale:#eaf0f9;–ink:#142544;
background:var(–navy);color:var(–white);
font-family:inherit;overflow:hidden;position:relative;
}
#min-full *{box-sizing:border-box}
#min-full a{color:inherit;text-decoration:none}
#min-full button,#min-full input,#min-full select,#min-full textarea{font:inherit}
#min-full button{cursor:pointer}
#min-full .mf-wrap{max-width:1190px;margin:auto;padding-left:23px;padding-right:23px}
#min-full .mf-section{padding-top:76px;padding-bottom:76px}
#min-full .mf-light{background:var(–pale);color:var(–ink)}
#min-full .mf-nav{position:relative;z-index:5;border-bottom:1px solid var(–line)}
#min-full .mf-navrow{min-height:76px;display:flex;justify-content:space-between;align-items:center;gap:22px}
#min-full .mf-brand{font-weight:950;font-size:14px;letter-spacing:2px}
#min-full .mf-brand small{display:block;color:var(–muted);font-size:9px;letter-spacing:2.5px;margin-top:6px}
#min-full .mf-navlinks{display:flex;align-items:center;gap:23px}
#min-full .mf-navlinks a{font-size:11px;color:#dce5f3;transition:opacity .2s}
#min-full .mf-navlinks a:hover{opacity:.65}
#min-full .mf-btn{display:inline-flex;justify-content:center;align-items:center;gap:12px;background:white;color:var(–navy)!important;border:1px solid white;border-radius:6px;padding:14px 19px;font-size:11px;font-weight:900;transition:transform .25s,box-shadow .25s,background .25s}
#min-full .mf-btn:hover{transform:translateY(-3px);box-shadow:0 10px 28px #0002}
#min-full .mf-btn-outline{background:transparent;color:white!important;border-color:#ffffff55}
#min-full .mf-btn-outline:hover{background:white;color:var(–navy)!important}
#min-full .mf-kicker{font-size:10px;letter-spacing:2px;font-weight:850;text-transform:uppercase;color:var(–muted)}
#min-full .mf-hero{padding-top:68px;padding-bottom:48px}
#min-full .mf-herogrid{display:grid;grid-template-columns:1.05fr .95fr;gap:45px;align-items:center}
#min-full .mf-hero h1{font-size:clamp(27px,4vw,43px);line-height:1.16;letter-spacing:-1.5px;font-weight:850;margin:17px 0}
#min-full .mf-hero h1 span{color:#b9cbe7}
#min-full .mf-hero p{max-width:530px;color:var(–muted);font-size:13px;line-height:1.95;margin:0 0 23px}
#min-full .mf-actions{display:flex;gap:11px;flex-wrap:wrap}
#min-full .mf-proof{display:flex;gap:20px;flex-wrap:wrap;margin-top:30px}
#min-full .mf-proof span{font-size:10px;color:#d8e2f0}
#min-full .mf-proof b{margin-right:6px}
#min-full .mf-stage{border:1px solid #ffffff26;border-radius:13px;background:linear-gradient(145deg,#ffffff13,#ffffff03);padding:16px;position:relative;overflow:hidden}
#min-full .mf-windowbar{display:flex;align-items:center;gap:5px;padding-bottom:14px;border-bottom:1px solid #ffffff20}
#min-full .mf-windowbar i{height:6px;width:6px;border-radius:50%;background:#c6d2e4}
#min-full .mf-windowbar span{margin-left:auto;font-size:9px;color:var(–muted)}
#min-full .mf-mock{padding:21px 8px 10px;min-height:285px}
#min-full .mf-mocktop{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:9px;font-weight:900;letter-spacing:1px}
#min-full .mf-mockpill{border:1px solid #ffffff35;padding:8px 10px;border-radius:4px}
#min-full .mf-mocktitle{font-size:clamp(27px,3.6vw,43px);line-height:1.03;letter-spacing:-1.6px;font-weight:900;margin:36px 0 12px}
#min-full .mf-mocktitle span{display:block;color:#b9cbe7}
#min-full .mf-mockdesc{font-size:10px;color:var(–muted);line-height:1.7;max-width:250px}
#min-full .mf-mocktiles{display:grid;grid-template-columns:1.2fr .8fr;gap:9px;margin-top:23px}
#min-full .mf-mocktile{min-height:65px;border:1px solid #ffffff22;border-radius:5px;padding:11px;background:#ffffff08}
#min-full .mf-mocktile strong{display:block;font-size:11px;margin-bottom:5px}
#min-full .mf-mocktile span{font-size:9px;color:var(–muted)}
#min-full .mf-floating{position:absolute;right:12px;bottom:20px;background:white;color:var(–navy);padding:11px 13px;border-radius:6px;box-shadow:0 10px 30px #0003;font-size:10px;font-weight:900;animation:mf-float 4s ease-in-out infinite}
#min-full .mf-strip{border-top:1px solid var(–line);border-bottom:1px solid var(–line);overflow:hidden;padding:15px 0}
#min-full .mf-striptrack{display:flex;width:max-content;animation:mf-scroll 30s linear infinite}
#min-full .mf-strip:hover .mf-striptrack{animation-play-state:paused}
#min-full .mf-strip span{padding:0 26px;font-size:10px;font-weight:850;letter-spacing:1.5px;white-space:nowrap}
#min-full .mf-strip b{margin-left:26px;color:#a8bddb}
#min-full .mf-headrow{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:27px}
#min-full .mf-headrow h2{font-size:clamp(24px,3.3vw,36px);line-height:1.15;letter-spacing:-1px;margin:10px 0 0}
#min-full .mf-headrow p{font-size:11px;line-height:1.8;color:var(–muted);max-width:330px;margin:0}
#min-full .mf-light .mf-headrow p{color:#586a84}
#min-full .mf-services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
#min-full .mf-service{width:100%;text-align:left;color:white;border:1px solid #ffffff22;border-radius:10px;background:#ffffff06;padding:21px 17px;transition:transform .3s,border-color .3s,background .3s;position:relative;overflow:hidden}
#min-full .mf-service:hover,#min-full .mf-service[aria-pressed=true]{transform:translateY(-5px);border-color:white;background:#ffffff12}
#min-full .mf-service:after{content:””;position:absolute;bottom:0;left:0;width:100%;height:2px;background:white;transform:scaleX(0);transform-origin:left;transition:transform .3s}
#min-full .mf-service[aria-pressed=true]:after{transform:scaleX(1)}
#min-full .mf-symbol{display:grid;place-items:center;width:39px;height:39px;border:1px solid #ffffff38;border-radius:8px;font-size:18px;margin-bottom:23px;transition:transform .3s}
#min-full .mf-service:hover .mf-symbol{transform:rotate(-8deg) scale(1.1)}
#min-full .mf-service h3{font-size:14px;margin:0 0 9px}
#min-full .mf-service p{font-size:11px;line-height:1.8;color:var(–muted);margin:0 0 17px}
#min-full .mf-arrow{font-size:10px;font-weight:900;letter-spacing:.5px}
#min-full .mf-service-detail{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;border:1px solid #ffffff28;border-radius:10px;padding:21px;margin-top:14px;background:#ffffff08;animation:mf-rise .3s ease}
#min-full .mf-service-detail h3{font-size:17px;margin:0 0 8px}
#min-full .mf-service-detail p{font-size:12px;line-height:1.85;color:var(–muted);max-width:670px;margin:0}
#min-full .mf-pricing{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
#min-full .mf-package{display:flex;flex-direction:column;min-width:0;padding:22px 17px 17px;border:1px solid #ffffff26;border-radius:10px;background:#ffffff05;transition:transform .3s,border-color .3s,box-shadow .3s}
#min-full .mf-package:hover{transform:translateY(-6px);border-color:white;box-shadow:0 15px 30px #0002}
#min-full .mf-package.featured{background:white;color:var(–navy);border-color:white}
#min-full .mf-badge{font-size:9px;font-weight:900;letter-spacing:1px;align-self:flex-start;border:1px solid #ffffff35;padding:6px 8px;border-radius:3px;margin-bottom:18px}
#min-full .featured .mf-badge{background:var(–navy);color:white}
#min-full .mf-package h3{font-size:16px;line-height:1.4;margin:0 0 9px}
#min-full .mf-description{font-size:11px;color:var(–muted);line-height:1.8;margin:0 0 19px;min-height:59px}
#min-full .featured .mf-description,#min-full .featured .mf-period{color:#5c6d85}
#min-full .mf-price{font-size:39px;font-weight:900;letter-spacing:-1.4px}
#min-full .mf-period{font-size:10px;color:var(–muted);margin:6px 0 19px}
#min-full .mf-features{border-top:1px solid #ffffff25;list-style:none;padding:17px 0 14px;margin:0 0 10px;flex:1}
#min-full .featured .mf-features{border-color:#dbe1ea}
#min-full .mf-features li{display:flex;gap:8px;font-size:11px;line-height:1.7;color:#dfe7f3;margin-bottom:10px}
#min-full .featured .mf-features li{color:#344866}
#min-full .mf-features li:before{content:”✓”;font-weight:900}
#min-full .mf-pbtn{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:12px 10px;border:1px solid #ffffff50;border-radius:5px;font-size:9px;font-weight:900;transition:.25s}
#min-full .mf-pbtn:hover{background:white;color:var(–navy)}
#min-full .featured .mf-pbtn{background:var(–navy);color:white;border-color:var(–navy)}
#min-full .featured .mf-pbtn:hover{background:#2a4369}
#min-full .mf-planner{display:grid;grid-template-columns:.75fr 1.25fr;gap:32px}
#min-full .mf-planner-intro h2{font-size:clamp(25px,3.4vw,37px);line-height:1.15;letter-spacing:-1px;margin:12px 0}
#min-full .mf-planner-intro p{font-size:12px;line-height:1.9;color:var(–muted)}
#min-full .mf-plannerbox{border:1px solid #ffffff27;border-radius:11px;padding:23px;background:#ffffff07}
#min-full .mf-step{display:none;animation:mf-rise .3s ease}
#min-full .mf-step.active{display:block}
#min-full .mf-step h3{font-size:17px;margin:0 0 7px}
#min-full .mf-step>p{font-size:11px;color:var(–muted);line-height:1.8;margin:0 0 20px}
#min-full .mf-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}
#min-full .mf-option{color:white;background:#ffffff06;border:1px solid #ffffff30;border-radius:7px;padding:14px;text-align:left;min-height:73px;transition:.2s}
#min-full .mf-option:hover,#min-full .mf-option[aria-pressed=true]{border-color:white;background:#ffffff16}
#min-full .mf-option strong{display:block;font-size:11px;margin-bottom:6px}
#min-full .mf-option span{display:block;font-size:10px;color:var(–muted);line-height:1.6}
#min-full .mf-progress{height:3px;background:#ffffff22;border-radius:4px;margin-bottom:20px;overflow:hidden}
#min-full .mf-progress span{display:block;width:33.33%;height:100%;background:white;transition:width .3s}
#min-full .mf-plancontrols{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:20px}
#min-full .mf-smallbtn{padding:11px 14px;background:transparent;color:white;border:1px solid #ffffff40;border-radius:5px;font-size:10px;font-weight:900}
#min-full .mf-smallbtn:disabled{opacity:.3;cursor:not-allowed}
#min-full .mf-planresult{border:1px solid #ffffff25;border-radius:8px;padding:16px;margin-top:18px;background:#ffffff08}
#min-full .mf-planresult strong{font-size:12px}
#min-full .mf-planresult p{font-size:11px;color:var(–muted);line-height:1.8}
#min-full .mf-planresult a{display:inline-flex;margin-top:8px}
#min-full .mf-workgrid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}
#min-full .mf-workcard{min-height:205px;border-radius:10px;padding:22px;position:relative;overflow:hidden;border:1px solid #ffffff23;background:linear-gradient(135deg,#20385d,#142544);transition:transform .3s}
#min-full .mf-workcard:hover{transform:translateY(-4px)}
#min-full .mf-workcard h3{font-size:20px;line-height:1.25;max-width:290px;margin:16px 0 9px}
#min-full .mf-workcard p{font-size:11px;line-height:1.8;color:var(–muted);max-width:300px}
#min-full .mf-worklabel{font-size:9px;font-weight:900;letter-spacing:1.5px}
#min-full .mf-workart{position:absolute;right:-18px;bottom:-26px;width:190px;height:150px;border:1px solid #ffffff2b;border-radius:8px;transform:rotate(-9deg);background:#ffffff0a;padding:14px;transition:transform .4s}
#min-full .mf-workcard:hover .mf-workart{transform:rotate(0) translateY(-7px)}
#min-full .mf-workart i{display:block;height:6px;background:#ffffff75;margin-bottom:8px;width:80%;border-radius:3px}
#min-full .mf-workart i:nth-child(2){width:55%}
#min-full .mf-workart i:nth-child(3){height:42px;width:100%;border:1px solid #ffffff40;background:#ffffff10}
#min-full .mf-worksmall{display:grid;gap:14px}
#min-full .mf-worksmall .mf-workcard{min-height:95px;padding:17px}
#min-full .mf-worksmall h3{font-size:15px;margin:12px 0 5px}
#min-full .mf-worksmall .mf-workart{width:105px;height:75px;right:-12px;bottom:-17px}
#min-full .mf-worksmall .mf-workart i:nth-child(3){height:18px}
#min-full .mf-faq{border-top:1px solid #ffffff25}
#min-full .mf-faq details{border-bottom:1px solid #ffffff25;padding:17px 0}
#min-full .mf-faq summary{list-style:none;cursor:pointer;font-size:13px;font-weight:750;display:flex;justify-content:space-between;gap:15px}
#min-full .mf-faq summary::-webkit-details-marker{display:none}
#min-full .mf-faq summary:after{content:”+”;font-size:18px;font-weight:400;transition:transform .25s}
#min-full .mf-faq details[open] summary:after{transform:rotate(45deg)}
#min-full .mf-faq details p{font-size:12px;line-height:1.9;color:var(–muted);max-width:750px;margin:13px 0 0}
#min-full .mf-contactgrid{display:grid;grid-template-columns:.85fr 1.15fr;gap:36px}
#min-full .mf-contactintro h2{font-size:clamp(28px,4vw,43px);line-height:1.1;letter-spacing:-1.3px;margin:13px 0}
#min-full .mf-contactintro p{font-size:12px;color:var(–muted);line-height:1.9}
#min-full .mf-contactlist{display:grid;gap:12px;margin-top:22px}
#min-full .mf-contactlist a{display:block;border:1px solid #ffffff30;border-radius:7px;padding:13px;transition:background .2s}
#min-full .mf-contactlist a:hover{background:#ffffff12}
#min-full .mf-contactlist small{display:block;color:var(–muted);font-size:9px;letter-spacing:1px;margin-bottom:5px}
#min-full .mf-contactlist strong{font-size:12px;overflow-wrap:anywhere}
#min-full .mf-form{border:1px solid #ffffff29;border-radius:10px;padding:23px;background:#ffffff06}
#min-full .mf-form h3{font-size:18px;margin:0 0 19px}
#min-full .mf-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#min-full .mf-field{margin-bottom:13px;min-width:0}
#min-full .mf-field label{display:block;font-size:9px;font-weight:800;letter-spacing:.8px;color:var(–muted);margin-bottom:7px}
#min-full .mf-field input,#min-full .mf-field select,#min-full .mf-field textarea{width:100%;min-width:0;color:white;background:#142544;border:1px solid #ffffff30;border-radius:5px;padding:12px;font-size:11px;outline:none}
#min-full .mf-field input:focus,#min-full .mf-field select:focus,#min-full .mf-field textarea:focus{border-color:white;box-shadow:0 0 0 3px #ffffff12}
#min-full .mf-field select option{background:#142544}
#min-full .mf-field textarea{min-height:90px;resize:vertical}
#min-full .mf-form .mf-btn{width:100%;cursor:pointer}
#min-full .mf-legal{font-size:9px;line-height:1.7;color:var(–muted);margin:12px 0 0}
#min-full .mf-footer{border-top:1px solid #ffffff24;padding:26px 0 32px}
#min-full .mf-footerrow{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
#min-full .mf-footer p{font-size:10px;line-height:1.8;color:var(–muted);margin:0}
#min-full .mf-footerlinks{display:flex;gap:17px;flex-wrap:wrap}
#min-full .mf-footerlinks a{font-size:10px}
#min-full .mf-float{position:fixed;z-index:9998;right:18px;bottom:18px;display:inline-flex;align-items:center;gap:9px;background:white;color:var(–navy)!important;border-radius:40px;padding:13px 17px;font-size:11px;font-weight:900;box-shadow:0 8px 25px #0003;transition:transform .25s}
#min-full .mf-float:hover{transform:translateY(-4px)}
#min-full .mf-reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}
#min-full .mf-reveal.in{opacity:1;transform:none}
@keyframes mf-scroll{to{transform:translateX(-50%)}}
@keyframes mf-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes mf-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){
#min-full .mf-navlinks{gap:12px}
#min-full .mf-herogrid{gap:25px}
#min-full .mf-services,#min-full .mf-pricing{grid-template-columns:repeat(2,minmax(0,1fr))}
#min-full .mf-planner,#min-full .mf-contactgrid{grid-template-columns:1fr}
}
@media(max-width:600px){
#min-full .mf-wrap{padding-left:15px;padding-right:15px}
#min-full .mf-navrow{min-height:67px}
#min-full .mf-navlinks{display:none}
#min-full .mf-hero{padding-top:38px}
#min-full .mf-herogrid{grid-template-columns:1fr}
#min-full .mf-mock{min-height:250px}
#min-full .mf-section{padding-top:53px;padding-bottom:53px}
#min-full .mf-headrow{align-items:flex-start;flex-direction:column;gap:10px}
#min-full .mf-services{gap:9px}
#min-full .mf-service{padding:15px 12px}
#min-full .mf-service h3{font-size:12px}
#min-full .mf-service p{font-size:10px}
#min-full .mf-service-detail{grid-template-columns:1fr}
#min-full .mf-pricing{grid-template-columns:1fr}
#min-full .mf-description{min-height:0}
#min-full .mf-workgrid{grid-template-columns:1fr}
#min-full .mf-worksmall{grid-template-columns:1fr 1fr}
#min-full .mf-worksmall .mf-workcard{min-height:120px}
#min-full .mf-fields{grid-template-columns:1fr}
#min-full .mf-actions .mf-btn{width:100%}
#min-full .mf-proof{gap:11px}
}
@media(prefers-reduced-motion:reduce){
#min-full *,#min-full *:before,#min-full *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
#min-full .mf-reveal{opacity:1;transform:none}
}
Independent creative studio · Newry
Creative websites. Clear pricing. Built around your business.
From a simple starter website to a more advanced business presence, explore web design, ecommerce, website improvements and branding in one place.
✓ Mobile-friendly design ✓ WordPress solutions ✓ Direct enquiries
MADE IN NEWRY / WEB PREVIEW
YOUR BUSINESS ONLINE EXPLORE ↗
Built to lookbetter online.
A professional digital presence, designed around what makes your business different.
Thoughtful design Clear. Modern. Responsive.
Built for growth Made for your goals.
Your next project ↗
WEBSITE DESIGN ✳ ECOMMERCE ✳ WEBSITE FIXES ✳ BUSINESS BRANDING ✳ WORDPRESS ✳ MADE IN NEWRY ✳
WEBSITE DESIGN ✳ ECOMMERCE ✳ WEBSITE FIXES ✳ BUSINESS BRANDING ✳ WORDPRESS ✳ MADE IN NEWRY ✳
01 / What we do
Everything starts with an idea. Choose a service to explore what your project could include. Each enquiry connects directly to WhatsApp.
↗ Website Design Professional, responsive websites that present your business clearly.
EXPLORE SERVICE +
◇ Ecommerce Online shopping experiences tailored to your products and customers.
EXPLORE SERVICE +
⌘ Website Fixes Discuss repairs, updates and improvements to an existing website.
EXPLORE SERVICE +
✳ Business Branding Consistent visual identity for your business across digital and print.
EXPLORE SERVICE +
Website design that makes a strong first impression. Explore a website built around your business, your customers and the information people need to take the next step.
DISCUSS THIS SERVICE ↗
02 / Website packages
Pick your starting point. Four clear starting prices, from a simple one-page website to a larger business site.
01 · STARTER Basic A simple, professional way to establish your online presence.
£100
Starting price · One-off
One-page website Responsive layout Brand colours and styling Contact details Basic on-page SEO setup GET STARTED ↗
02 · ESTABLISH Small Business More space to introduce your business, services and team.
£250
Starting price · One-off
Up to 5 pages Custom branded design Mobile-responsive layout Contact form and map Social media integration Basic on-page SEO setup CHOOSE PACKAGE ↗
MOST POPULAR Progressive Business Extra flexibility, features and room to grow.
£400
Starting price · One-off
Up to 8 pages Enhanced custom design Advanced enquiry forms Blog or news section Enhanced SEO setup Analytics integration Interactive features LET’S GROW ↗
04 · ADVANCED Enterprise A broader digital presence for more ambitious projects.
£600
Starting price · One-off
Up to 12 pages Premium tailored design Advanced functionality Lead generation features Enhanced SEO configuration Analytics integration Priority communication DISCUSS ENTERPRISE ↗
Prices are proposed starting prices. Final cost depends on requirements, content and functionality. Hosting, domain registration, paid plugins and ongoing maintenance should be agreed separately.
03 / Interactive project planner
Let’s work out what you need. Answer three quick questions. We’ll create a project summary you can send to Made in Newry through WhatsApp.
ASK US DIRECTLY ↗
What are you looking to build? Choose the option that best matches your project.
Business website A website for my company or services Online shop Sell products or services online Website improvements Fix or update an existing site Branding Improve my business identity
What budget works for you? This helps us start the conversation at the right level.
£100–£250 Getting started £250–£400 Building a presence £400–£600 More advanced requirements Not sure yet Help me choose
What matters most? Choose your main goal and create your project summary.
More enquiries Help customers contact me More sales Sell online or generate leads Professional appearance Build trust and credibility Improve what I have Update an existing site
← BACK STEP 1 OF 3 NEXT →
04 / Our approach
Thoughtful design. Practical solutions. A good website should look professional, make information easy to find and help customers take action.
01 / DESIGN & EXPERIENCE Make a better first impression. Clear layouts, consistent branding, mobile-friendly pages and simple ways for customers to get in touch.
02 / FUNCTIONALITY Make it work for your business.
03 / COLLABORATION A clear route from brief to launch.
05 / Frequently asked questions
Good to know. Need an answer specific to your business? Send us a message.
Which website package is right for me? Basic is intended for a simple one-page presence. Small Business allows for more pages, Progressive Business adds further features, and Enterprise is designed for broader requirements. Use the project planner or contact us to discuss your needs.
Are the package prices fixed? The displayed prices are starting prices. The final quote depends on the agreed scope, content, design, integrations and functionality. Confirm any additional costs before work begins.
Can you help with an existing website? Choose Website Fixes or Website Improvements in the project planner and describe what you need. We can discuss the requirements and the appropriate next step.
Can my website work on mobile? The package descriptions include responsive design. The finished site should be checked on common screen sizes and devices before launch.
Are hosting and domain costs included? Hosting, domain registration, premium plugins and ongoing maintenance are not automatically included in the example prices. Agree these items separately when confirming your quote.
How do I get started? Choose a package, complete the project planner or message Made in Newry on WhatsApp. Share your goals and requirements so the project can be scoped properly.
WHATSAPP ↗
(function(){
const root=document.getElementById(‘min-full’);
if(!root||root.dataset.started)return;
root.dataset.started=’1′;
const wa=’
https://wa.me/447526336735?text=’ ;;
const serviceInfo={
web:{title:’Website design that makes a strong first impression.’,desc:’Explore a website built around your business, your customers and the information people need to take the next step.’,message:’website design’},
shop:{title:’Bring your products online.’,desc:’Discuss your online store, products, customer journey and the features your business needs to sell online.’,message:’ecommerce solutions’},
fix:{title:’Make your existing website work better.’,desc:’Tell us about repairs, updates, layout issues or new features you would like to discuss.’,message:’website fixes and improvements’},
brand:{title:’Build a consistent business identity.’,desc:’Discuss branding, logos and visual assets that can help your business present itself consistently.’,message:’business branding’}
};
const serviceButtons=[…root.querySelectorAll(‘.mf-service’)];
serviceButtons.forEach(btn=>btn.addEventListener(‘click’,()=>{
serviceButtons.forEach(b=>b.setAttribute(‘aria-pressed’,String(b===btn)));
const item=serviceInfo[btn.dataset.service];
root.querySelector(‘#mf-service-title’).textContent=item.title;
root.querySelector(‘#mf-service-desc’).textContent=item.desc;
root.querySelector(‘#mf-service-cta’).href=wa+encodeURIComponent(‘Hi Made in Newry, I would like to discuss ‘+item.message+’.’);
}));
// Reveal sections on scroll.
const reveals=root.querySelectorAll(‘.mf-reveal’);
if(‘IntersectionObserver’in window){
const observer=new IntersectionObserver(entries=>{
entries.forEach(entry=>{
if(entry.isIntersecting){entry.target.classList.add(‘in’);observer.unobserve(entry.target)}
});
},{threshold:.10});
reveals.forEach(el=>observer.observe(el));
}else reveals.forEach(el=>el.classList.add(‘in’));
// Interactive project planner.
const state={service:”,budget:”,goal:”};
let step=0;
const steps=[…root.querySelectorAll(‘.mf-step’)];
const back=root.querySelector(‘#mf-back’);
const next=root.querySelector(‘#mf-next’);
const label=root.querySelector(‘#mf-step-label’);
const progress=root.querySelector(‘#mf-progress-fill’);
const result=root.querySelector(‘#mf-result’);
function updatePlanner(){
steps.forEach((s,i)=>s.classList.toggle(‘active’,i===step));
back.disabled=step===0;
next.textContent=step===2?’CREATE SUMMARY ↗’:’NEXT →’;
label.textContent=’STEP ‘+(step+1)+’ OF 3′;
progress.style.width=((step+1)/3*100)+’%’;
next.disabled=!state[[‘service’,’budget’,’goal’][step]];
result.hidden=true;
}
root.querySelectorAll(‘.mf-option’).forEach(btn=>{
btn.addEventListener(‘click’,()=>{
const group=btn.dataset.group;
state[group]=btn.dataset.value;
root.querySelectorAll(‘.mf-option[data-group=”‘+group+'”]’).forEach(b=>b.setAttribute(‘aria-pressed’,String(b===btn)));
updatePlanner();
});
});
back.addEventListener(‘click’,()=>{if(step>0){step–;updatePlanner()}});
next.addEventListener(‘click’,()=>{
if(!state[[‘service’,’budget’,’goal’][step]])return;
if(step{
e.preventDefault();
const get=id=>root.querySelector(‘#’+id).value.trim();
const message=[
‘Hi Made in Newry, I would like to discuss a project.’,
‘Name: ‘+get(‘mf-name’),
get(‘mf-company’)?’Business: ‘+get(‘mf-company’):”,
get(‘mf-email’)?’Email: ‘+get(‘mf-email’):”,
‘Service: ‘+get(‘mf-service’),
‘Budget: ‘+get(‘mf-budget’),
‘Project details: ‘+get(‘mf-message’)
].filter(Boolean).join(‘\n’);
const url=wa+encodeURIComponent(message);
const win=window.open(url,’_blank’);
if(!win)window.location.href=url;
});
root.querySelector(‘#mf-year’).textContent=new Date().getFullYear();
})();