{"id":3194,"date":"2026-05-04T10:59:52","date_gmt":"2026-05-04T10:59:52","guid":{"rendered":"https:\/\/carmultimedia.nl\/?page_id=3194"},"modified":"2026-07-02T10:27:42","modified_gmt":"2026-07-02T10:27:42","slug":"installation","status":"publish","type":"page","link":"https:\/\/carmultimedia.nl\/de\/installation\/","title":{"rendered":"Installation"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3194\" class=\"elementor elementor-3194\" wpc-filter-elementor-widget=\"1\">\n\t\t\t\t<div class=\"elementor-element elementor-element-502aa5a e-con-full e-flex e-con e-parent\" data-id=\"502aa5a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-732f887 elementor-widget elementor-widget-shortcode\" data-id=\"732f887\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><style>\n#cminst-page,#cminst-lookup{--navy:#0a1f44;--navy-deep:#061533;--red:#e11d2a;--red-hover:#b91c1c;--orange:#ff8a1f;--teal:#0d9488;--ink:#0b1730;--mute:#5b6478;--line:#e5e7eb;--bg:#f7f8fb;--card:#fff;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;color:var(--ink)}\n#cminst-page *,#cminst-page *::before,#cminst-page *::after,#cminst-lookup *,#cminst-lookup *::before,#cminst-lookup *::after{box-sizing:border-box}\n#cminst-page .cminst-wrap,#cminst-lookup .cminst-wrap{max-width:1180px;margin:0 auto;padding:0 20px}\n#cminst-page h1,#cminst-page h2,#cminst-page h3{color:var(--navy);letter-spacing:-.01em;margin:0}\n#cminst-page h1{font-size:clamp(32px,5vw,56px);font-weight:800;line-height:1.05;color:#fff;max-width:900px;margin-left:auto;margin-right:auto}\n#cminst-page h2{font-size:clamp(24px,3.2vw,36px);font-weight:800}\n#cminst-page h3{font-size:18px;font-weight:700}\n#cminst-page p{margin:0;line-height:1.55}\n\/* Hero *\/\n#cminst-page .cminst-hero{position:relative;background:var(--navy);color:#fff;overflow:hidden}\n#cminst-page .cminst-hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,var(--navy-deep) 0%,rgba(10,31,68,.85) 100%)}\n#cminst-page .cminst-hero-inner{position:relative;padding:72px 20px 88px;text-align:center}\n#cminst-page .cminst-kicker{font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--red);display:block}\n#cminst-page .cminst-lead{margin:18px auto 0;color:rgba(255,255,255,.75);font-size:18px;max-width:640px}\n#cminst-page .cminst-hero-ctas{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}\n#cminst-page .cminst-btn{display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 24px;border-radius:8px;font-weight:700;text-decoration:none;transition:all .2s;border:0;cursor:pointer;font-size:15px}\n#cminst-page .cminst-btn-primary{background:var(--red);color:#fff;box-shadow:0 8px 20px -8px rgba(225,29,42,.6)}\n#cminst-page .cminst-btn-primary:hover{background:var(--red-hover)}\n#cminst-page .cminst-btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.3)}\n#cminst-page .cminst-btn-ghost:hover{background:rgba(255,255,255,.1)}\n#cminst-page .cminst-usps{margin:40px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:900px}\n@media(max-width:760px){#cminst-page .cminst-usps{grid-template-columns:repeat(2,1fr)}}\n#cminst-page .cminst-usp{display:flex;align-items:flex-start;gap:8px;background:rgba(255,255,255,.05);backdrop-filter:blur(6px);padding:10px 12px;border-radius:6px;font-size:13px;color:rgba(255,255,255,.85)}\n#cminst-page .cminst-check{color:var(--red);font-weight:700}\n\/* Sections *\/\n#cminst-page .cminst-section{padding:64px 0}\n#cminst-page .cminst-section-alt{background:rgba(247,248,251,.6)}\n#cminst-page .cminst-section-head{text-align:center;max-width:640px;margin:0 auto 48px}\n#cminst-page .cminst-section-head p{margin-top:12px;color:var(--mute)}\n\/* Services *\/\n#cminst-page .cminst-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}\n@media(max-width:900px){#cminst-page .cminst-grid-3{grid-template-columns:1fr}}\n#cminst-page .cminst-card-svc{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 2px 8px rgba(10,31,68,.04);transition:box-shadow .2s}\n#cminst-page .cminst-card-svc:hover{box-shadow:0 8px 24px rgba(10,31,68,.08)}\n#cminst-page .cminst-svc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}\n#cminst-page .cminst-icon{width:44px;height:44px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:20px}\n#cminst-page .cminst-icon-red{background:rgba(225,29,42,.1);color:var(--red)}\n#cminst-page .cminst-icon-navy{background:rgba(10,31,68,.1);color:var(--navy)}\n#cminst-page .cminst-icon-orange{background:rgba(255,138,31,.15);color:var(--orange)}\n#cminst-page .cminst-tag{font-size:12px;font-weight:700;color:var(--red)}\n#cminst-page .cminst-card-svc p{margin-top:8px;color:var(--mute);font-size:14px}\n\/* Pricing *\/\n#cminst-page .cminst-grid-pricing{display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:start}\n@media(max-width:900px){#cminst-page .cminst-grid-pricing{grid-template-columns:1fr}}\n#cminst-page .cminst-price-card{margin-top:24px;background:var(--navy);color:#fff;border-radius:16px;padding:28px;box-shadow:0 12px 32px rgba(10,31,68,.15)}\n#cminst-page .cminst-price-rate{font-size:48px;font-weight:800}\n#cminst-page .cminst-price-vat{color:rgba(255,255,255,.6);font-size:13px;margin-top:4px}\n#cminst-page .cminst-price-card p{margin-top:20px;color:rgba(255,255,255,.75);font-size:14px}\n#cminst-page .cminst-eyebrow{font-size:13px;font-weight:700;color:var(--mute);margin-bottom:16px}\n#cminst-page .cminst-dur-list{display:flex;flex-direction:column;gap:12px}\n#cminst-page .cminst-dur{display:flex;gap:16px;align-items:flex-start;padding:20px;border:1px solid var(--line);border-radius:12px;background:rgba(247,248,251,.4)}\n#cminst-page .cminst-dur-fast{border-color:rgba(13,148,136,.4);background:rgba(13,148,136,.05)}\n#cminst-page .cminst-dur-factory{border-color:rgba(225,29,42,.3);background:rgba(225,29,42,.05)}\n#cminst-page .cminst-dur-ico{color:var(--navy);font-size:18px}\n#cminst-page .cminst-dur-title{font-weight:700;color:var(--navy)}\n#cminst-page .cminst-dur-desc{font-size:14px;color:var(--mute);margin-top:4px}\n\/* Notice *\/\n#cminst-page .cminst-notice{border:1px solid rgba(255,138,31,.3);background:rgba(255,138,31,.05);border-radius:16px;padding:28px;display:flex;gap:16px;align-items:flex-start}\n#cminst-page .cminst-notice ul{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}\n#cminst-page .cminst-notice li{position:relative;padding-left:16px;font-size:14px;color:rgba(11,23,48,.85)}\n#cminst-page .cminst-notice li::before{content:\"\";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--orange)}\n\/* FAQ *\/\n#cminst-page .cminst-grid-faq{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:start}\n@media(max-width:900px){#cminst-page .cminst-grid-faq{grid-template-columns:1fr}}\n#cminst-page .cminst-faq{margin-top:24px;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}\n#cminst-page .cminst-faq-item{border-bottom:1px solid var(--line)}\n#cminst-page .cminst-faq-item:last-child{border-bottom:0}\n#cminst-page .cminst-faq-item summary{padding:18px 20px;cursor:pointer;font-weight:600;color:var(--navy);list-style:none;display:flex;justify-content:space-between;align-items:center}\n#cminst-page .cminst-faq-item summary::after{content:\"+\";font-size:20px;color:var(--mute);font-weight:400}\n#cminst-page .cminst-faq-item[open] summary::after{content:\"\u2212\"}\n#cminst-page .cminst-faq-body{padding:0 20px 20px;color:var(--mute);line-height:1.6}\n#cminst-page .cminst-workshop{background:var(--navy);color:#fff;border-radius:16px;padding:28px;box-shadow:0 12px 32px rgba(10,31,68,.15);position:sticky;top:24px}\n#cminst-page .cminst-workshop-pin{font-size:24px;color:var(--red)}\n#cminst-page .cminst-workshop h3{color:#fff;margin-top:12px;font-size:20px}\n#cminst-page .cminst-workshop p{margin-top:8px;color:rgba(255,255,255,.7);font-size:14px}\n\/* Lookup *\/\n.cminst-lookup{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:0 2px 8px rgba(10,31,68,.04)}\n.cminst-lookup-head{display:flex;gap:16px;align-items:flex-start;margin-bottom:20px}\n.cminst-lookup-ico{width:44px;height:44px;border-radius:8px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}\n.cminst-lookup-head h2{font-size:24px;font-weight:800;color:var(--navy);margin:0}\n.cminst-lookup-head p{font-size:14px;color:var(--mute);margin-top:4px}\n.cminst-lookup-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}\n@media(max-width:760px){.cminst-lookup-row{grid-template-columns:1fr}}\n.cminst-lookup label{display:block;font-size:13px;font-weight:700;color:var(--mute);margin-bottom:6px}\n.cminst-lookup select{width:100%;height:44px;border:1px solid var(--line);border-radius:8px;padding:0 12px;font-size:14px;background:#fff;color:var(--ink);font-family:inherit}\n.cminst-lookup-result{border-radius:8px;padding:14px 18px;display:flex;align-items:center;gap:10px;min-height:68px;background:#eef0f5;color:var(--mute)}\n.cminst-lookup-result.has-result{background:var(--red);color:#fff}\n.cminst-lookup-result .cminst-lookup-eyebrow{font-size:12px;opacity:.85}\n.cminst-lookup-result .cminst-lookup-hours{font-weight:800;font-size:18px;line-height:1.1}\n<\/style>\n        <div id=\"cminst-page\">\n    <!-- Hero -->\n    <section class=\"cminst-hero\">\n        <div class=\"cminst-hero-overlay\"><\/div>\n        <div class=\"cminst-wrap cminst-hero-inner\">\n            <span class=\"cminst-kicker\">In-house workshop \u00b7 Near Amsterdam<\/span>\n            <h1>Professional installation \u2014 your product or ours<\/h1>\n            <p class=\"cminst-lead\">Bring your own CarPlay system, car radio or reversing camera \u2014 or let us supply one. Certified specialists, transparent hourly pricing, all car brands.<\/p>\n            <div class=\"cminst-hero-ctas\">\n                <a href=\"#book\" class=\"cminst-btn cminst-btn-primary\">Book installation<\/a>\n                <a href=\"#pricing\" class=\"cminst-btn cminst-btn-ghost\">View pricing<\/a>\n            <\/div>\n            <div class=\"cminst-usps\">\n                <div class=\"cminst-usp\"><span class=\"cminst-check\">\u2713<\/span> Bring your own product \u2014 we install it<\/div>\n                <div class=\"cminst-usp\"><span class=\"cminst-check\">\u2713<\/span> Reversing cameras for factory radios<\/div>\n                <div class=\"cminst-usp\"><span class=\"cminst-check\">\u2713<\/span> All car brands &amp; models<\/div>\n                <div class=\"cminst-usp\"><span class=\"cminst-check\">\u2713<\/span> Typical lead time: ~2 weeks<\/div>\n            <\/div>\n        <\/div>\n    <\/section>\n\n    <!-- Services -->\n    <section class=\"cminst-section\">\n        <div class=\"cminst-wrap\">\n            <div class=\"cminst-section-head\">\n                <h2>Three ways to book<\/h2>\n                <p>Choose the option that fits your situation. A flat \u20ac79 reservation deposit applies to every booking; the hourly labour is paid after the installation.<\/p>\n            <\/div>\n            <div class=\"cminst-grid-3\">\n                <article class=\"cminst-card-svc\">\n                    <div class=\"cminst-svc-top\">\n                        <div class=\"cminst-icon cminst-icon-red\">\ud83d\udd27<\/div>\n                        <span class=\"cminst-tag\">Most flexible<\/span>\n                    <\/div>\n                    <h3>Bring your own product<\/h3>\n                    <p>Already bought a CarPlay screen, head unit or camera? We install it cleanly and configure everything. A \u20ac79 reservation deposit locks in your slot \u2014 the remaining installation fee is paid after the work is completed.<\/p>\n                <\/article>\n                <article class=\"cminst-card-svc\">\n                    <div class=\"cminst-svc-top\">\n                        <div class=\"cminst-icon cminst-icon-navy\">\ud83d\ude97<\/div>\n                        <span class=\"cminst-tag\">Easiest<\/span>\n                    <\/div>\n                    <h3>Bought from us<\/h3>\n                    <p>Buy a system from our shop and add installation. A \u20ac79 reservation deposit secures your appointment; the balance is settled after installation.<\/p>\n                <\/article>\n                <article class=\"cminst-card-svc\">\n                    <div class=\"cminst-svc-top\">\n                        <div class=\"cminst-icon cminst-icon-orange\">\ud83d\udcf7<\/div>\n                        <span class=\"cminst-tag\">Specialist<\/span>\n                    <\/div>\n                    <h3>Camera for factory radio<\/h3>\n                    <p>Keep your original infotainment. We integrate our own reversing cameras for VW, Audi, Mercedes, BMW and more \u2014 only with video-capable systems. \u20ac79 reservation deposit applies.<\/p>\n                <\/article>\n            <\/div>\n        <\/div>\n    <\/section>\n\n    <!-- Pricing -->\n    <section id=\"pricing\" class=\"cminst-section cminst-section-alt\">\n        <div class=\"cminst-wrap cminst-grid-pricing\">\n            <div>\n                <h2>Transparent pricing<\/h2>\n                <div class=\"cminst-price-card\">\n                    <div class=\"cminst-price-rate\">\u20ac79.00<\/div>\n                    <div class=\"cminst-price-vat\">flat reservation deposit \u00b7 paid at booking<\/div>\n                    <p>Every booking is secured with a single flat deposit of \u20ac79. The hourly labour (\u20ac78\/hour incl. VAT) is calculated from the actual work carried out and paid after the installation.<\/p>\n                <\/div>\n            <\/div>\n            <div>\n                <h3 class=\"cminst-eyebrow\">Typical duration by brand<\/h3>\n                <div class=\"cminst-dur-list\">\n                    <div class=\"cminst-dur cminst-dur-fast\">\n                        <div class=\"cminst-dur-ico\">\u23f1<\/div>\n                        <div><div class=\"cminst-dur-title\">\u2248 1 hour<\/div><div class=\"cminst-dur-desc\">Toyota \u00b7 Kia \u00b7 Opel \u00b7 Ford \u00b7 Peugeot \u00b7 Renault \u00b7 Mazda \u00b7 Fiat \u00b7 Volkswagen \u00b7 Hyundai \u00b7 Seat \u00b7 \u0160koda \u00b7 Suzuki<\/div><\/div>\n                    <\/div>\n                    <div class=\"cminst-dur\">\n                        <div class=\"cminst-dur-ico\">\u23f1<\/div>\n                        <div><div class=\"cminst-dur-title\">\u2248 2 hours<\/div><div class=\"cminst-dur-desc\">BMW \u00b7 Audi \u00b7 Volvo \u00b7 Lexus \u00b7 Porsche (and any make not listed above)<\/div><\/div>\n                    <\/div>\n                    <div class=\"cminst-dur cminst-dur-factory\">\n                        <div class=\"cminst-dur-ico\">\u23f1<\/div>\n                        <div><div class=\"cminst-dur-title\">\u20ac79 flat deposit<\/div><div class=\"cminst-dur-desc\">Applies to every booking. Balance = hours \u00d7 \u20ac78, paid after installation.<\/div><\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/section>\n\n    <!-- Notice -->\n    <section class=\"cminst-section\">\n        <div class=\"cminst-wrap\">\n            <div class=\"cminst-notice\">\n                <div class=\"cminst-icon cminst-icon-orange\">\u26a0<\/div>\n                <div>\n                    <h2>Good to know before you book<\/h2>\n                    <ul>\n                        <li>Current scheduling lead time is approximately 2 weeks.<\/li>\n                        <li>Every booking requires a flat \u20ac79 reservation deposit through our standard WooCommerce checkout. The remaining installation fee is calculated by hours (\u20ac78\/hour incl. VAT) and paid after the installation is completed.<\/li>\n                        <li>We accept only two bookings per day \u2014 one morning slot and one afternoon slot.<\/li>\n                        <li>We install radios, multimedia systems and cameras only \u2014 no speakers, amplifiers, subwoofers, DSP or wiring kits.<\/li>\n                        <li>Due to the technician shortage in the Netherlands and parallel projects, small delays may occur. We always communicate them upfront.<\/li>\n                    <\/ul>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/section>\n\n    <!-- Duration lookup -->\n    <section class=\"cminst-section\">\n        <div class=\"cminst-wrap\">\n            <div id=\"cminst-lookup\" class=\"cminst-lookup\">\n    <div class=\"cminst-lookup-head\">\n        <div class=\"cminst-lookup-ico\">\ud83d\udd0e<\/div>\n        <div>\n            <h2>Look up your install time<\/h2>\n            <p>Pick your car make \u2014 we'll show the typical workshop time.<\/p>\n        <\/div>\n    <\/div>\n    <div class=\"cminst-lookup-row\" style=\"grid-template-columns:1fr auto\">\n        <div>\n            <label>Make<\/label>\n            <select id=\"cminst-lk-make\"><option value=\"\">\u2014<\/option><\/select>\n        <\/div>\n        <div class=\"cminst-lookup-result\" id=\"cminst-lk-result\">\n            <span>\u23f1<\/span>\n            <div>\n                <div class=\"cminst-lookup-eyebrow\">Estimated installation time<\/div>\n                <div class=\"cminst-lookup-hours\" id=\"cminst-lk-hours\">\u2014<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <p style=\"margin-top:14px;font-size:13px;color:var(--mute)\">Flat \u20ac79 reservation deposit applies. Balance = hours \u00d7 \u20ac78 (incl. VAT), paid after installation.<\/p>\n<\/div>\n            <\/div>\n    <\/section>\n\n    <!-- FAQ + Workshop -->\n    <section class=\"cminst-section cminst-section-alt\">\n        <div class=\"cminst-wrap cminst-grid-faq\">\n            <div>\n                <h2>Frequently asked questions<\/h2>\n                <div class=\"cminst-faq\">\n                                            <details class=\"cminst-faq-item\" open>\n                            <summary>How long does an appointment take?<\/summary>\n                            <div class=\"cminst-faq-body\">1 hour for Toyota, Kia, Opel, Ford, Peugeot, Renault, Mazda, Fiat, Volkswagen, Hyundai, Seat, \u0160koda and Suzuki. 2 hours for BMW, Audi, Volvo, Lexus and Porsche (and any make not listed above). We confirm the exact estimate when you book.<\/div>\n                        <\/details>\n                                            <details class=\"cminst-faq-item\">\n                            <summary>How do I pay?<\/summary>\n                            <div class=\"cminst-faq-body\">Every booking is secured with a flat \u20ac79 reservation deposit through our standard WooCommerce checkout (iDEAL, cards). The remaining installation fee is calculated by hours (\u20ac78\/hour incl. VAT) and paid after the installation has been completed.<\/div>\n                        <\/details>\n                                            <details class=\"cminst-faq-item\">\n                            <summary>What is your refund policy for the reservation deposit?<\/summary>\n                            <div class=\"cminst-faq-body\">The \u20ac79 deposit secures your appointment and is refundable if you cancel with reasonable notice. If we cannot install on the day (incompatibility, missing parts, etc.) the deposit is refunded; labour already performed during diagnostics is non-refundable. We always communicate any issue before charging.<\/div>\n                        <\/details>\n                                    <\/div>\n            <\/div>\n            <aside class=\"cminst-workshop\">\n                <div class=\"cminst-workshop-pin\">\ud83d\udccd<\/div>\n                <h3>Workshop<\/h3>\n                <p>Car Multimedia NL<br>Workshop near Amsterdam<br>Mon\u2013Thu & Sat \u00b7 09:00\u201317:00<\/p>\n            <\/aside>\n        <\/div>\n    <\/section>\n\n    <!-- Booking flow -->\n    <section id=\"book\" class=\"cminst-section\">\n        <div class=\"cminst-wrap\">\n            <div class=\"cminst-section-head\">\n                <h2>Book your installation<\/h2>\n                <p>Pick a service, share your vehicle details and choose a slot.<\/p>\n            <\/div>\n            <script>window.CMIB_CFG = {\"ajaxUrl\":\"https:\\\/\\\/carmultimedia.nl\\\/wp-admin\\\/admin-ajax.php\",\"nonce\":\"0eeb12641c\",\"rate\":78,\"deposit\":79,\"wooReady\":true};<\/script><!--\n  Car Multimedia \u2013 Installation Booking (drop-in)\n  English only. Two bookable slots per day: Morning (09:00\u201312:00) and Afternoon (13:00\u201317:00).\n  Bring-your-own-product (BYO) bookings are routed to WooCommerce checkout for full prepayment.\n  Configure via data-* attributes on #cmib-root:\n    data-wa       WhatsApp number, no '+'  (e.g. 31634487635)\n    data-email    Notification email address\n    data-webhook  (optional) POST URL \u2014 receives JSON booking payload for non-BYO services\n    data-lead     Lead time in days before first bookable slot (default 14)\n    data-slots    Number of weekdays to show (default 14)\n-->\n<div id=\"cmib-root\"\n     data-wa=\"31634487635\"\n     data-email=\"Info@carmultimedia.nl\"\n     data-webhook=\"\"\n     data-lead=\"14\"\n     data-slots=\"14\"\n     data-lang=\"en\">\n\n  <style>\n    #cmib-root{--navy:#0b1e3a;--navy-deep:#071328;--red:#e11d2e;--red-hover:#c4172a;--orange:#f59e0b;--teal:#0d9488;\n      --bg:#f7f8fb;--surface:#fff;--border:#e5e7eb;--muted:#6b7280;--text:#0f172a;\n      --shadow-card:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);\n      --shadow-cta:0 8px 20px -8px rgba(225,29,46,.55);\n      font-family:ui-sans-serif,system-ui,-apple-system,\"Segoe UI\",Roboto,Inter,Arial,sans-serif;\n      color:var(--text);background:var(--bg);box-sizing:border-box;display:block;\n      padding:32px 16px;line-height:1.5}\n    #cmib-root *,#cmib-root *::before,#cmib-root *::after{box-sizing:border-box}\n    #cmib-root .cmib-wrap{max-width:1180px;margin:0 auto}\n    #cmib-root h1,#cmib-root h2,#cmib-root h3{color:var(--navy);margin:0;font-weight:800;line-height:1.15}\n    #cmib-root h1{font-size:clamp(28px,4vw,40px)}\n    #cmib-root h2{font-size:24px}\n    #cmib-root h3{font-size:15px;color:var(--muted);font-weight:700}\n    #cmib-root p{margin:0;color:var(--muted)}\n    #cmib-root .cmib-sub{margin-top:8px;color:var(--muted);font-size:15px}\n\n    #cmib-root .cmib-steps{margin:28px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:760px}\n    #cmib-root .cmib-steps li{display:flex;flex-direction:column;gap:6px}\n    #cmib-root .cmib-steps .bar{height:6px;border-radius:999px;background:var(--border)}\n    #cmib-root .cmib-steps li.active .bar,#cmib-root .cmib-steps li.done .bar{background:var(--red)}\n    #cmib-root .cmib-steps span{font-size:12px;font-weight:700;color:var(--muted)}\n    #cmib-root .cmib-steps li.active span,#cmib-root .cmib-steps li.done span{color:var(--navy)}\n\n    #cmib-root .cmib-grid{margin-top:32px;display:grid;grid-template-columns:1fr;gap:24px;align-items:start}\n    @media (min-width:980px){#cmib-root .cmib-grid{grid-template-columns:1fr 340px}}\n    #cmib-root .cmib-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:24px;box-shadow:var(--shadow-card)}\n    @media (min-width:768px){#cmib-root .cmib-card{padding:32px}}\n\n    #cmib-root .cmib-tiles{display:grid;grid-template-columns:1fr;gap:12px}\n    @media (min-width:640px){#cmib-root .cmib-tiles{grid-template-columns:repeat(3,1fr)}}\n    #cmib-root .cmib-tile{text-align:left;background:var(--surface);border:2px solid var(--border);border-radius:14px;padding:18px;cursor:pointer;transition:all .15s;font:inherit;color:inherit}\n    #cmib-root .cmib-tile:hover{border-color:rgba(11,30,58,.4)}\n    #cmib-root .cmib-tile.active{border-color:var(--red);background:rgba(225,29,46,.05);box-shadow:var(--shadow-cta)}\n    #cmib-root .cmib-tile .ico{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--navy)}\n    #cmib-root .cmib-tile.active .ico{color:var(--red)}\n    #cmib-root .cmib-tile .ttl{margin-top:10px;font-weight:800;color:var(--navy)}\n    #cmib-root .cmib-tile .dsc{margin-top:4px;font-size:13px;color:var(--muted);line-height:1.5}\n\n    #cmib-root .cmib-fields{display:grid;grid-template-columns:1fr;gap:16px}\n    @media (min-width:640px){#cmib-root .cmib-fields.cols-3{grid-template-columns:repeat(3,1fr)}\n      #cmib-root .cmib-fields.cols-2{grid-template-columns:repeat(2,1fr)}}\n    #cmib-root .cmib-field label{display:block;font-size:13px;font-weight:700;color:var(--navy);margin-bottom:6px}\n    #cmib-root .cmib-field .err{display:block;margin-top:4px;font-size:12px;color:var(--red);font-weight:600}\n    #cmib-root .cmib-input,#cmib-root .cmib-select,#cmib-root .cmib-textarea{\n      width:100%;height:42px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text);font:inherit;outline:none;transition:border-color .15s,box-shadow .15s}\n    #cmib-root .cmib-textarea{height:auto;min-height:96px;resize:vertical}\n    #cmib-root .cmib-input:focus,#cmib-root .cmib-select:focus,#cmib-root .cmib-textarea:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(11,30,58,.12)}\n    #cmib-root .cmib-span2{grid-column:1\/-1}\n\n    \/* Date list: rows of (day + 2 period slots) *\/\n    #cmib-root .cmib-days{display:grid;grid-template-columns:1fr;gap:10px}\n    #cmib-root .cmib-day{display:grid;grid-template-columns:140px 1fr 1fr;gap:10px;align-items:stretch}\n    @media (max-width:640px){#cmib-root .cmib-day{grid-template-columns:1fr;}}\n    #cmib-root .cmib-daylabel{display:flex;flex-direction:column;justify-content:center;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#fff}\n    #cmib-root .cmib-daylabel .wd{font-size:12px;color:var(--muted);font-weight:700}\n    #cmib-root .cmib-daylabel .dt{font-size:15px;font-weight:800;color:var(--navy);margin-top:2px}\n    #cmib-root .cmib-slot{border:2px solid var(--border);border-radius:12px;padding:10px 12px;text-align:left;background:#fff;cursor:pointer;transition:all .15s;font:inherit;color:inherit;display:flex;flex-direction:column;justify-content:center}\n    #cmib-root .cmib-slot:hover{border-color:rgba(11,30,58,.4)}\n    #cmib-root .cmib-slot.active{border-color:var(--red);background:rgba(225,29,46,.05);box-shadow:var(--shadow-cta)}\n    #cmib-root .cmib-slot .period{font-size:14px;font-weight:800;color:var(--navy)}\n    #cmib-root .cmib-slot .hours{font-size:12px;color:var(--muted);margin-top:2px}\n    #cmib-root .cmib-slot .av{font-size:11px;color:var(--teal);font-weight:700;margin-top:4px}\n\n    #cmib-root .cmib-notice{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:10px;font-size:13px;border:1px solid;margin-bottom:18px}\n    #cmib-root .cmib-notice.orange{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.35);color:#7a4f06}\n    #cmib-root .cmib-notice.red{background:rgba(225,29,46,.08);border-color:rgba(225,29,46,.35);color:#9a1622;margin-top:18px;margin-bottom:0}\n    #cmib-root .cmib-notice svg{flex:0 0 16px;margin-top:2px}\n    #cmib-root .cmib-meta{margin-top:14px;font-size:13px;color:var(--muted);display:flex;align-items:center;gap:8px}\n    #cmib-root .cmib-meta b{color:var(--navy);font-weight:700}\n\n    #cmib-root .cmib-nav{margin-top:28px;display:flex;justify-content:space-between;align-items:center;gap:12px}\n    #cmib-root .cmib-btn{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 20px;border-radius:10px;font-weight:700;cursor:pointer;border:0;font:inherit;transition:all .15s;line-height:1}\n    #cmib-root .cmib-btn-primary{background:var(--red);color:#fff;box-shadow:var(--shadow-cta)}\n    #cmib-root .cmib-btn-primary:hover{background:var(--red-hover)}\n    #cmib-root .cmib-btn-primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}\n    #cmib-root .cmib-btn-ghost{background:transparent;color:var(--navy);padding:0 12px}\n    #cmib-root .cmib-btn-ghost:hover{background:#f1f3f7}\n    #cmib-root .cmib-btn-ghost:disabled{opacity:.3;cursor:not-allowed;background:transparent}\n\n    #cmib-root .cmib-summary{background:var(--navy);color:#fff;border-radius:18px;padding:24px;position:sticky;top:24px}\n    #cmib-root .cmib-summary h3{color:rgba(255,255,255,.75)}\n    #cmib-root .cmib-summary dl{margin:16px 0 0;padding:0;display:grid;gap:10px;font-size:14px}\n    #cmib-root .cmib-summary dt{color:rgba(255,255,255,.7);font-size:13px;font-weight:600}\n    #cmib-root .cmib-summary dd{margin:2px 0 0;font-weight:700}\n    #cmib-root .cmib-summary .row{padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.1)}\n    #cmib-root .cmib-summary .row:last-child{border-bottom:0;padding-bottom:0}\n    #cmib-root .cmib-summary .empty{color:rgba(255,255,255,.45);font-weight:500}\n    #cmib-root .cmib-rate{margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.15);display:flex;align-items:baseline;gap:6px}\n    #cmib-root .cmib-rate b{font-size:28px;font-weight:800}\n    #cmib-root .cmib-rate small{color:rgba(255,255,255,.7);font-size:13px}\n    #cmib-root .cmib-estimate{margin-top:14px;background:rgba(255,255,255,.06);border-radius:10px;padding:10px 12px;font-size:13px;color:#fff}\n    #cmib-root .cmib-estimate b{font-weight:800}\n\n    #cmib-root .cmib-success{text-align:center;padding:48px 24px}\n    #cmib-root .cmib-success .check{margin:0 auto;width:64px;height:64px;border-radius:999px;background:rgba(13,148,136,.15);color:var(--teal);display:flex;align-items:center;justify-content:center}\n    #cmib-root .cmib-success h2{margin-top:18px;font-size:28px}\n    #cmib-root .cmib-success .ref{display:inline-block;margin-top:14px;background:#f1f3f7;padding:8px 14px;border-radius:8px;font-size:13px}\n    #cmib-root .cmib-success .ref b{color:var(--navy);margin-left:6px}\n    #cmib-root .cmib-success .actions{margin-top:24px;display:flex;justify-content:center;gap:10px;flex-wrap:wrap}\n  <\/style>\n\n  <div class=\"cmib-wrap\">\n    \n      <h1>Book your installation<\/h1>\n      <p class=\"cmib-sub\">Four short steps. We accept only two bookings per day \u2014 one morning and one afternoon slot. Every booking is secured with a flat \u20ac79 reservation deposit; the remaining installation fee (hours \u00d7 \u20ac78 incl. VAT) is paid after the installation has been completed.<\/p>\n\n      <ol class=\"cmib-steps\" id=\"cmib-steps\">\n        <li data-step=\"1\"><div class=\"bar\"><\/div><span>Step 1 \u2014 Service<\/span><\/li>\n        <li data-step=\"2\"><div class=\"bar\"><\/div><span>Step 2 \u2014 Vehicle<\/span><\/li>\n        <li data-step=\"3\"><div class=\"bar\"><\/div><span>Step 3 \u2014 Date &amp; time<\/span><\/li>\n        <li data-step=\"4\"><div class=\"bar\"><\/div><span>Step 4 \u2014 Contact<\/span><\/li>\n      <\/ol>\n    \n\n    <div class=\"cmib-grid\">\n      <section class=\"cmib-card\" id=\"cmib-card\">\n\n        <!-- Step 1: Service -->\n        <div data-pane=\"1\">\n          <h2>Choose your service<\/h2>\n          <div class=\"cmib-tiles\" style=\"margin-top:20px\">\n            <button type=\"button\" class=\"cmib-tile\" data-service=\"byo\">\n              <div class=\"ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"22\" height=\"22\"><path d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"\/><\/svg><\/div>\n              <div class=\"ttl\">Bring your own product<\/div>\n              <div class=\"dsc\">You already have a car radio, multimedia system or camera and want it installed. \u20ac79 reservation deposit; balance paid after installation.<\/div>\n            <\/button>\n            <button type=\"button\" class=\"cmib-tile\" data-service=\"purchased\">\n              <div class=\"ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"22\" height=\"22\"><path d=\"M5 17h14M5 17a2 2 0 0 1-2-2v-2l2-6h14l2 6v2a2 2 0 0 1-2 2\"\/><circle cx=\"7\" cy=\"17\" r=\"2\"\/><circle cx=\"17\" cy=\"17\" r=\"2\"\/><\/svg><\/div>\n              <div class=\"ttl\">Bought from us<\/div>\n              <div class=\"dsc\">Installation of a car radio, multimedia system or camera you purchased from us. \u20ac79 reservation deposit; balance paid after installation.<\/div>\n            <\/button>\n            <button type=\"button\" class=\"cmib-tile\" data-service=\"factory\">\n              <div class=\"ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"22\" height=\"22\"><path d=\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"\/><circle cx=\"12\" cy=\"13\" r=\"4\"\/><\/svg><\/div>\n              <div class=\"ttl\">Camera for factory radio<\/div>\n              <div class=\"dsc\">Reversing camera or upgrade for the original factory radio. \u20ac79 reservation deposit; balance paid after installation.<\/div>\n            <\/button>\n          <\/div>\n          <div class=\"cmib-notice red\" id=\"cmib-byo\" style=\"margin-top:18px;display:flex\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"16\" height=\"16\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>\n            <span>A flat \u20ac79 reservation deposit is required for every booking. After step 4 you will be redirected to our standard WooCommerce checkout to pay the deposit. The remaining installation fee (hours \u00d7 \u20ac78) is paid after the installation is completed.<\/span>\n          <\/div>\n          <div class=\"cmib-notice orange\" style=\"margin-top:14px\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"16\" height=\"16\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>\n            <span>We install radios, multimedia systems and cameras only \u2014 no speakers, amplifiers, subwoofers, DSP or wiring kits.<\/span>\n          <\/div>\n        <\/div>\n\n        <!-- Step 2: Vehicle -->\n        <div data-pane=\"2\" hidden>\n          <h2>Vehicle details<\/h2>\n          <div class=\"cmib-fields cols-3\" style=\"margin-top:20px\">\n            <div class=\"cmib-field\"><label>Make<\/label>\n              <select class=\"cmib-select\" id=\"cmib-make\"><option value=\"\">\u2014<\/option><\/select>\n            <\/div>\n            <div class=\"cmib-field\"><label>Model<\/label>\n              <input class=\"cmib-input\" id=\"cmib-model\" maxlength=\"40\" placeholder=\"Golf, A3, \u2026\" \/>\n            <\/div>\n            <div class=\"cmib-field\"><label>Year<\/label>\n              <select class=\"cmib-select\" id=\"cmib-year\"><option value=\"\">\u2014<\/option><\/select>\n            <\/div>\n          <\/div>\n          <div class=\"cmib-meta\" id=\"cmib-duration-line\" style=\"display:none\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"16\" height=\"16\" style=\"color:var(--teal)\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            Estimated duration: <b id=\"cmib-duration\"><\/b>\n          <\/div>\n        <\/div>\n\n        <!-- Step 3: Date & time -->\n        <div data-pane=\"3\" hidden>\n          <h2>Pick a date &amp; time<\/h2>\n          <div class=\"cmib-notice orange\" style=\"margin-top:14px\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"16\" height=\"16\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>\n            <span>Two bookings per day maximum \u2014 one morning (09:00\u201312:00) and one afternoon (13:00\u201317:00). First available is in ~2 weeks. Closed Fridays and Sundays.<\/span>\n          <\/div>\n          <div class=\"cmib-days\" id=\"cmib-days\"><\/div>\n        <\/div>\n\n        <!-- Step 4: Contact -->\n        <div data-pane=\"4\" hidden>\n          <h2>Contact details<\/h2>\n          <div class=\"cmib-fields cols-2\" style=\"margin-top:20px\">\n            <div class=\"cmib-field\"><label>Name<\/label>\n              <input class=\"cmib-input\" id=\"cmib-name\" maxlength=\"80\" \/><span class=\"err\" id=\"err-name\"><\/span>\n            <\/div>\n            <div class=\"cmib-field\"><label>Email<\/label>\n              <input class=\"cmib-input\" id=\"cmib-email\" type=\"email\" maxlength=\"200\" \/><span class=\"err\" id=\"err-email\"><\/span>\n            <\/div>\n            <div class=\"cmib-field\"><label>Phone<\/label>\n              <input class=\"cmib-input\" id=\"cmib-phone\" type=\"tel\" maxlength=\"30\" \/><span class=\"err\" id=\"err-phone\"><\/span>\n            <\/div>\n            <div class=\"cmib-field\"><label>Product (optional)<\/label>\n              <input class=\"cmib-input\" id=\"cmib-product\" maxlength=\"120\" \/>\n            <\/div>\n            <div class=\"cmib-field cmib-span2\"><label>Notes (optional)<\/label>\n              <textarea class=\"cmib-textarea\" id=\"cmib-notes\" maxlength=\"500\" rows=\"4\"><\/textarea>\n            <\/div>\n          <\/div>\n          <div class=\"cmib-notice red\" id=\"cmib-byo-pay\" style=\"display:none\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"16\" height=\"16\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>\n            <span>On confirming, you will be redirected to our secure checkout to pay the reservation deposit of <b id=\"cmib-byo-amount\">\u2014<\/b> and lock in the slot. The remaining installation fee (estimated <b id=\"cmib-byo-balance\">\u2014<\/b>) is paid after the installation is completed.<\/span>\n          <\/div>\n          <div class=\"cmib-notice red\" id=\"cmib-error\" style=\"display:none\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"16\" height=\"16\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>\n            <span id=\"cmib-error-text\"><\/span>\n          <\/div>\n        <\/div>\n\n        <div class=\"cmib-nav\">\n          <button type=\"button\" class=\"cmib-btn cmib-btn-ghost\" id=\"cmib-back\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"16\" height=\"16\"><line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\"\/><polyline points=\"12 19 5 12 12 5\"\/><\/svg>\n            <span>Back<\/span>\n          <\/button>\n          <button type=\"button\" class=\"cmib-btn cmib-btn-primary\" id=\"cmib-next\">\n            <span id=\"cmib-next-label\">Next<\/span>\n            <svg id=\"cmib-next-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"16\" height=\"16\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg>\n          <\/button>\n        <\/div>\n      <\/section>\n\n      <!-- Summary -->\n      <aside class=\"cmib-summary\">\n        <h3>Booking summary<\/h3>\n        <dl>\n          <div class=\"row\"><dt>Service<\/dt><dd id=\"sum-service\" class=\"empty\">\u2014<\/dd><\/div>\n          <div class=\"row\"><dt>Vehicle<\/dt><dd id=\"sum-vehicle\" class=\"empty\">\u2014<\/dd><\/div>\n          <div class=\"row\"><dt>Date &amp; time<\/dt><dd id=\"sum-date\" class=\"empty\">\u2014<\/dd><\/div>\n          <div class=\"row\"><dt>Duration<\/dt><dd id=\"sum-duration\" class=\"empty\">\u2014<\/dd><\/div>\n        <\/dl>\n        <div class=\"cmib-rate\">\n          <b id=\"cmib-rate\">\u20ac78<\/b><small>\/hour incl. VAT<\/small>\n        <\/div>\n        <div class=\"cmib-estimate\" id=\"cmib-est\" style=\"display:none\">\n          <div>Reservation deposit today: <b id=\"cmib-est-deposit\">\u20ac79.00<\/b><\/div>\n          <div style=\"margin-top:4px\">Estimated balance after installation: <b id=\"cmib-est-amount\">\u2014<\/b><\/div>\n        <\/div>\n      <\/aside>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  var root=document.getElementById('cmib-root');if(!root)return;\n  var CFG=window.CMIB_CFG||{};\n  var RATE=parseFloat(CFG.rate||78);\n  var DEPOSIT=parseFloat(CFG.deposit||79);\n  var WA=root.dataset.wa||'',EMAIL=root.dataset.email||'',HOOK=root.dataset.webhook||'';\n  var LEAD=parseInt(root.dataset.lead||'14',10),NDAYS=parseInt(root.dataset.slots||'14',10);\n\n  \/\/ Set rate in summary\n  var rateEl=root.querySelector('#cmib-rate'); if(rateEl) rateEl.textContent='\u20ac'+RATE.toFixed(0);\n\n  \/\/ ---- Car makes (curated common set) ----\n  var MAKES=['Audi','BMW','Citro\u00ebn','Dacia','Fiat','Ford','Honda','Hyundai','Jaguar','Kia','Land Rover','Lexus','Mazda','Mercedes-Benz','Mini Cooper','Nissan','Opel','Peugeot','Porsche','Renault','Seat','\u0160koda','Suzuki','Toyota','Volkswagen','Volvo'];\n  var sel=root.querySelector('#cmib-make');\n  MAKES.forEach(function(m){var o=document.createElement('option');o.value=m;o.textContent=m;sel.appendChild(o)});\n  var ysel=root.querySelector('#cmib-year'),Y=new Date().getFullYear();\n  for(var i=0;i<18;i++){var o=document.createElement('option');o.value=String(Y-i);o.textContent=String(Y-i);ysel.appendChild(o)}\n\n  \/\/ ---- Install duration logic (brand-based, per client spec) ----\n  var ONE_HOUR_BRANDS = ['toyota','kia','opel','ford','peugeot','renault','mazda','fiat','volkswagen','hyundai','seat','\u0161koda','skoda','suzuki'];\n  var TWO_HOUR_BRANDS = ['bmw','audi','volvo','lexus','porsche'];\n  function hours(make){\n    if(!make) return 2;\n    var m = make.toString().trim().toLowerCase();\n    if(ONE_HOUR_BRANDS.indexOf(m)>-1) return 1;\n    if(TWO_HOUR_BRANDS.indexOf(m)>-1) return 2;\n    return 2; \/\/ default\n  }\n  function durLabel(h){return '\u2248 '+h+' hour'+(h>1?'s':'')}\n\n  \/\/ ---- State ----\n  var state={step:1,service:null,make:'',model:'',year:'',date:null,period:null,dateLabel:''};\n\n  function svcLabel(s){\n    if(s==='byo') return 'Bring your own product';\n    if(s==='purchased') return 'Bought from us';\n    if(s==='factory') return 'Camera for factory radio';\n    return '';\n  }\n  function periodLabel(p){\n    if(p==='morning') return 'Morning \u00b7 09:00\u201312:00';\n    if(p==='afternoon') return 'Afternoon \u00b7 13:00\u201317:00';\n    return '';\n  }\n  function estHours(){\n    if(!state.make) return 2;\n    if(state.service==='factory') return 2;\n    return hours(state.make);\n  }\n  function estAmount(){ return (estHours() * RATE).toFixed(2); }\n  function balanceAmount(){ return Math.max(0, estHours() * RATE).toFixed(2); }\n  function depositAmount(){ return DEPOSIT.toFixed(2); }\n\n  \/\/ ---- Service tiles ----\n  root.querySelectorAll('[data-service]').forEach(function(b){\n    b.addEventListener('click',function(){\n      state.service=b.dataset.service;\n      root.querySelectorAll('[data-service]').forEach(function(x){x.classList.toggle('active',x===b)});\n      updateSummary();updateNav();updateByoPayHint();\n    });\n  });\n\n  \/\/ ---- Vehicle inputs ----\n  root.querySelector('#cmib-make').addEventListener('change',function(e){state.make=e.target.value;refreshDur();updateSummary();updateNav();updateByoPayHint()});\n  root.querySelector('#cmib-model').addEventListener('input',function(e){state.model=e.target.value;refreshDur();updateSummary();updateByoPayHint()});\n  root.querySelector('#cmib-year').addEventListener('change',function(e){state.year=e.target.value;updateSummary();updateNav()});\n  function refreshDur(){\n    var line=root.querySelector('#cmib-duration-line');\n    if(!state.make){line.style.display='none';return}\n    line.style.display='flex';\n    root.querySelector('#cmib-duration').textContent=state.service==='factory'?durLabel(2):durLabel(hours(state.make));\n  }\n\n  \/\/ ---- Date list: 2 slots per day (Morning \/ Afternoon) ----\n  function buildDays(){\n    var c=root.querySelector('#cmib-days');c.innerHTML='';\n    var start=new Date();start.setDate(start.getDate()+LEAD);\n    var locale='en-GB',count=0,i=0;\n    while(count<NDAYS){\n      var d=new Date(start);d.setDate(start.getDate()+i++);\n      var day=d.getDay();\n      if(day===0 || day===5) continue; \/\/ Skip Sunday and Friday; Saturdays are bookable\n      var iso=d.toISOString().slice(0,10);\n      var dlabel=d.toLocaleDateString(locale,{day:'numeric',month:'short'});\n      var wd=d.toLocaleDateString(locale,{weekday:'long'});\n\n      var row=document.createElement('div');row.className='cmib-day';\n      row.innerHTML='<div class=\"cmib-daylabel\"><div class=\"wd\">'+wd+'<\/div><div class=\"dt\">'+dlabel+'<\/div><\/div>';\n\n      ['morning','afternoon'].forEach(function(p){\n        var btn=document.createElement('button');btn.type='button';btn.className='cmib-slot';\n        btn.dataset.iso=iso;btn.dataset.period=p;btn.dataset.label=wd+' '+dlabel+' \u00b7 '+periodLabel(p);\n        btn.innerHTML='<div class=\"period\">'+(p==='morning'?'Morning':'Afternoon')+'<\/div>'+\n                      '<div class=\"hours\">'+(p==='morning'?'09:00\u201312:00':'13:00\u201317:00')+'<\/div>'+\n                      '<div class=\"av\">Available<\/div>';\n        btn.addEventListener('click',function(){\n          state.date=this.dataset.iso;state.period=this.dataset.period;state.dateLabel=this.dataset.label;\n          c.querySelectorAll('.cmib-slot').forEach(function(x){x.classList.remove('active')});\n          this.classList.add('active');\n          updateSummary();updateNav();\n        });\n        row.appendChild(btn);\n      });\n      c.appendChild(row);count++;\n    }\n  }\n  buildDays();\n\n  \/\/ ---- Stepper \/ pane swap ----\n  function show(n){\n    state.step=n;\n    root.querySelectorAll('[data-pane]').forEach(function(p){p.hidden=parseInt(p.dataset.pane,10)!==n});\n    root.querySelectorAll('#cmib-steps li').forEach(function(li){\n      var s=parseInt(li.dataset.step,10);\n      li.classList.toggle('active',s<=n);\n      li.classList.toggle('done',s<n);\n    });\n    var nextLbl=root.querySelector('#cmib-next-label'),nextIcon=root.querySelector('#cmib-next-icon');\n    nextLbl.textContent=n===4?(state.service?'Continue to payment':'Confirm booking'):'Next';\n    nextIcon.style.display=n===4?'none':'';\n    root.querySelector('#cmib-back').disabled=n===1;\n    updateNav();updateByoPayHint();\n    root.scrollIntoView({behavior:'smooth',block:'start'});\n  }\n  function canNext(){\n    if(state.step===1)return !!state.service;\n    if(state.step===2)return !!state.make&&!!state.year;\n    if(state.step===3)return !!state.date && !!state.period;\n    return true;\n  }\n  function updateNav(){root.querySelector('#cmib-next').disabled=!canNext()}\n\n  function updateByoPayHint(){\n    var box=root.querySelector('#cmib-byo-pay');\n    var amt=root.querySelector('#cmib-byo-amount');\n    var bal=root.querySelector('#cmib-byo-balance');\n    var est=root.querySelector('#cmib-est');\n    var estAmt=root.querySelector('#cmib-est-amount');\n    var estDep=root.querySelector('#cmib-est-deposit');\n    var show=!!state.service; \/\/ flat \u20ac79 deposit applies to every service\n    if(box) box.style.display=(show&&state.step===4)?'flex':'none';\n    if(amt) amt.textContent='\u20ac'+depositAmount();\n    if(bal) bal.textContent='\u20ac'+balanceAmount();\n    if(est) est.style.display=show?'block':'none';\n    if(estAmt) estAmt.textContent='\u20ac'+balanceAmount();\n    if(estDep) estDep.textContent='\u20ac'+depositAmount();\n  }\n\n  root.querySelector('#cmib-back').addEventListener('click',function(){if(state.step>1)show(state.step-1)});\n  root.querySelector('#cmib-next').addEventListener('click',function(){\n    if(!canNext())return;\n    if(state.step<4){show(state.step+1);return}\n    submit();\n  });\n\n  \/\/ ---- Summary ----\n  function updateSummary(){\n    function set(id,val){var el=root.querySelector(id);el.textContent=val||'\u2014';el.classList.toggle('empty',!val)}\n    var veh=[state.make,state.model,state.year].filter(Boolean).join(' ');\n    var dur=state.make?(state.service==='factory'?durLabel(2):durLabel(hours(state.make))):'';\n    set('#sum-service',svcLabel(state.service));set('#sum-vehicle',veh);\n    set('#sum-date',state.dateLabel);set('#sum-duration',dur);\n  }\n  updateSummary();updateNav();\n\n  \/\/ ---- Submit ----\n  function showError(msg){var b=root.querySelector('#cmib-error');b.style.display='flex';root.querySelector('#cmib-error-text').textContent=msg}\n  function clearError(){root.querySelector('#cmib-error').style.display='none'}\n\n  function submit(){\n    clearError();\n    var name=root.querySelector('#cmib-name').value.trim();\n    var email=root.querySelector('#cmib-email').value.trim();\n    var phone=root.querySelector('#cmib-phone').value.trim();\n    var product=root.querySelector('#cmib-product').value.trim();\n    var notes=root.querySelector('#cmib-notes').value.trim();\n    var ok=true;\n    function fe(id,err){root.querySelector(id).textContent=err||'';if(err)ok=false}\n    fe('#err-name',name.length<2?'Name required':'');\n    fe('#err-email',\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email)?'':'Invalid email');\n    fe('#err-phone',phone.length<6?'Phone required':'');\n    if(!ok)return;\n\n    var btn=root.querySelector('#cmib-next');btn.disabled=true;\n    root.querySelector('#cmib-next-label').textContent='Redirecting to payment\u2026';\n\n    var ref='CM-'+Math.random().toString(36).slice(2,8).toUpperCase();\n    var dur=state.service==='factory'?2:hours(state.make);\n\n    \/\/ === All bookings: create WooCommerce order with \u20ac79 flat reservation deposit and redirect ===\n    if(!CFG.ajaxUrl){\n      showError('Payment endpoint is not configured. Please contact us to complete the booking.');\n      btn.disabled=false;root.querySelector('#cmib-next-label').textContent='Continue to payment';\n      return;\n    }\n    var fd=new FormData();\n    fd.append('action','cmib_byo_checkout');\n    fd.append('nonce',CFG.nonce||'');\n    fd.append('reference',ref);\n    fd.append('service',state.service||'');\n    fd.append('date',state.date);\n    fd.append('period',state.period);\n    fd.append('make',state.make);\n    fd.append('model',state.model);\n    fd.append('year',state.year);\n    fd.append('hours',dur);\n    fd.append('name',name);\n    fd.append('email',email);\n    fd.append('phone',phone);\n    fd.append('product',product);\n    fd.append('notes',notes);\n\n    \/\/ Fire-and-forget optional webhook (planner notification), then go to checkout.\n    if(HOOK){\n      try{\n        var payload={reference:ref,booking_date:state.date,period:state.period,service:state.service,\n          make:state.make||null,model:state.model||null,year:state.year||null,\n          duration_hours:dur,customer_name:name,customer_email:email,customer_phone:phone,\n          product:product||null,notes:notes||null};\n        fetch(HOOK,{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify(payload),keepalive:true}).catch(function(){});\n      }catch(e){}\n    }\n\n    fetch(CFG.ajaxUrl,{method:'POST',body:fd,credentials:'same-origin'})\n      .then(function(r){return r.json()})\n      .then(function(res){\n        if(res && res.success && res.data && res.data.checkout_url){\n          window.location.href=res.data.checkout_url;\n        }else{\n          var msg=(res && res.data && res.data.message) || 'Could not start the payment. Please try again or contact us.';\n          showError(msg);\n          btn.disabled=false;root.querySelector('#cmib-next-label').textContent='Continue to payment';\n        }\n      })\n      .catch(function(){\n        showError('Network error while starting payment. Please try again.');\n        btn.disabled=false;root.querySelector('#cmib-next-label').textContent='Continue to payment';\n      });\n  }\n\n  function success(ref){\n    var card=root.querySelector('#cmib-card');\n    card.innerHTML='<div class=\"cmib-success\">'+\n      '<div class=\"check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"32\" height=\"32\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>'+\n      '<h2>Thanks \u2014 your booking is in!<\/h2>'+\n      '<p style=\"margin-top:8px;color:var(--muted)\">We will send a confirmation as soon as our planner has checked the slot.<\/p>'+\n      '<div class=\"ref\">Reference:<b>'+ref+'<\/b><\/div>'+\n      '<div class=\"actions\"><button type=\"button\" class=\"cmib-btn cmib-btn-primary\" id=\"cmib-restart\">New booking<\/button><\/div>'+\n      '<\/div>';\n    root.querySelector('#cmib-restart').addEventListener('click',function(){location.reload()});\n  }\n\n  show(1);\n})();\n<\/script>\n        <\/div>\n    <\/section>\n<\/div>\n        <script>\n(function(){\n    const root = document.getElementById('cminst-lookup'); if(!root) return;\n    const cfg = {\"one_hour\":[\"Toyota\",\"Kia\",\"Opel\",\"Ford\",\"Peugeot\",\"Renault\",\"Mazda\",\"Fiat\",\"Volkswagen\",\"Hyundai\",\"Seat\",\"Skoda\",\"\\u0160koda\",\"Suzuki\"],\"two_hour\":[\"BMW\",\"Audi\",\"Volvo\",\"Lexus\",\"Porsche\"]};\n    const makeSel = document.getElementById('cminst-lk-make');\n    const result  = document.getElementById('cminst-lk-result');\n    const hoursEl = document.getElementById('cminst-lk-hours');\n    const allMakes = Array.from(new Set([\n        'Audi','BMW','Citro\u00ebn','Dacia','Fiat','Ford','Honda','Hyundai','Jaguar','Jeep','Kia','Land Rover','Lexus','Mazda','Mercedes-Benz','Mini Cooper','Nissan','Opel','Peugeot','Porsche','Renault','Seat','\u0160koda','Suzuki','Tesla','Toyota','Volkswagen','Volvo'\n    ])).sort();\n    allMakes.forEach(m=>{const o=document.createElement('option');o.value=m;o.textContent=m;makeSel.appendChild(o);});\n\n    function norm(s){return (s||'').toString().trim().toLowerCase();}\n    function calcHours(make){\n        if(!make) return 2;\n        const one = (cfg.one_hour||[]).map(norm);\n        const two = (cfg.two_hour||[]).map(norm);\n        const m = norm(make);\n        if(one.includes(m)) return 1;\n        if(two.includes(m)) return 2;\n        return 2;\n    }\n\n    function update(){\n        const make = makeSel.value;\n        if(!make){result.classList.remove('has-result');hoursEl.textContent='\u2014';return;}\n        const h = calcHours(make);\n        result.classList.add('has-result');\n        hoursEl.textContent = '\u2248 '+h+' hour'+(h>1?'s':'');\n    }\n    makeSel.addEventListener('change', update);\n})();\n<\/script>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-66b3746 e-flex e-con-boxed e-con e-parent\" data-id=\"66b3746\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\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":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-3194","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/carmultimedia.nl\/de\/wp-json\/wp\/v2\/pages\/3194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/carmultimedia.nl\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/carmultimedia.nl\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/carmultimedia.nl\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/carmultimedia.nl\/de\/wp-json\/wp\/v2\/comments?post=3194"}],"version-history":[{"count":20,"href":"https:\/\/carmultimedia.nl\/de\/wp-json\/wp\/v2\/pages\/3194\/revisions"}],"predecessor-version":[{"id":7706,"href":"https:\/\/carmultimedia.nl\/de\/wp-json\/wp\/v2\/pages\/3194\/revisions\/7706"}],"wp:attachment":[{"href":"https:\/\/carmultimedia.nl\/de\/wp-json\/wp\/v2\/media?parent=3194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}