{"id":534,"date":"2026-10-15T19:43:38","date_gmt":"2026-10-15T23:43:38","guid":{"rendered":"https:\/\/harmless-studio.com\/?page_id=534"},"modified":"2026-10-15T20:13:39","modified_gmt":"2026-10-16T00:13:39","slug":"accueil","status":"publish","type":"page","link":"https:\/\/harmless-studio.com\/fr\/accueil\/","title":{"rendered":"Accueil"},"content":{"rendered":"<script>\n\/* Safety net only. WordPress already loads Google tag (AW-608191338 via WPCode, GT-WB5HP4S via Site Kit),\n   GTM-WFCC9J2Z and the Meta pixel via PixelYourSite. These two lines define dataLayer\/gtag ONLY if missing,\n   so the booking pop-up can never throw and nothing is ever loaded twice. *\/\nwindow.dataLayer = window.dataLayer || [];\nwindow.gtag = window.gtag || function(){ window.dataLayer.push(arguments); };\n<\/script>\n<style>\n@font-face{font-family:\"Encode Sans Expanded\";font-weight:600;font-style:normal;font-display:swap;src:url(https:\/\/harmless-studio.com\/wp-content\/plugins\/harmless-new-home\/assets\/fonts\/EncodeSansExpanded-600.woff2?v=1.2.0) format(\"woff2\")}\n@font-face{font-family:\"Encode Sans Expanded\";font-weight:700;font-style:normal;font-display:swap;src:url(https:\/\/harmless-studio.com\/wp-content\/plugins\/harmless-new-home\/assets\/fonts\/EncodeSansExpanded-700.woff2?v=1.2.0) format(\"woff2\")}\n@font-face{font-family:\"Encode Sans Expanded\";font-weight:800;font-style:normal;font-display:swap;src:url(https:\/\/harmless-studio.com\/wp-content\/plugins\/harmless-new-home\/assets\/fonts\/EncodeSansExpanded-800.woff2?v=1.2.0) format(\"woff2\")}\n@font-face{font-family:\"Encode Sans\";font-weight:400;font-style:normal;font-display:swap;src:url(https:\/\/harmless-studio.com\/wp-content\/plugins\/harmless-new-home\/assets\/fonts\/EncodeSans-400.woff2?v=1.2.0) format(\"woff2\")}\n@font-face{font-family:\"Encode Sans\";font-weight:500;font-style:normal;font-display:swap;src:url(https:\/\/harmless-studio.com\/wp-content\/plugins\/harmless-new-home\/assets\/fonts\/EncodeSans-500.woff2?v=1.2.0) format(\"woff2\")}\n@font-face{font-family:\"Encode Sans\";font-weight:600;font-style:normal;font-display:swap;src:url(https:\/\/harmless-studio.com\/wp-content\/plugins\/harmless-new-home\/assets\/fonts\/EncodeSans-600.woff2?v=1.2.0) format(\"woff2\")}\n@font-face{font-family:\"Encode Sans\";font-weight:700;font-style:normal;font-display:swap;src:url(https:\/\/harmless-studio.com\/wp-content\/plugins\/harmless-new-home\/assets\/fonts\/EncodeSans-700.woff2?v=1.2.0) format(\"woff2\")}\n\n:root{\n  --bg:#000;--panel:#0b0b0f;--panel2:#111117;\n  --line:rgba(255,255,255,.14);--line2:rgba(255,255,255,.26);\n  --text:#f4f2ee;--muted:#b4b4b8;\n  --green:#1dbf6a;--green-d:#17a85c;--green-soft:rgba(29,191,106,.14);\n  --head:\"Encode Sans Expanded\",\"Encode Sans\",system-ui,-apple-system,\"Segoe UI\",Arial,sans-serif;\n  --body:\"Encode Sans\",system-ui,-apple-system,\"Segoe UI\",Arial,sans-serif;\n  --wrap:1160px;--r:14px;\n}\n#hs-home *,#hs-home *::before,#hs-home *::after{box-sizing:border-box}\nhtml{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}\nbody{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:1.0625rem;line-height:1.65;overflow-x:hidden}\n#hs-home{background:var(--bg);color:var(--text);font-family:var(--body);font-size:1.0625rem;line-height:1.65;text-align:left}\n#hs-home img{max-width:100%;display:block}\n#hs-home a{color:inherit}\n#hs-home h1,#hs-home h2,#hs-home h3,#hs-home h4{font-family:var(--head);font-weight:800;line-height:1.15;margin:0;text-transform:uppercase;letter-spacing:.2px}\n#hs-home p{margin:0}\n#hs-home ul{margin:0;padding:0;list-style:none}\n#hs-home :focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:4px}\n#hs-home .wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}\n#hs-home .sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}\n#hs-home .skip{position:absolute;left:12px;top:-60px;background:var(--green);color:#000;padding:10px 16px;border-radius:8px;font-weight:700;z-index:3000;text-decoration:none}\n#hs-home .skip:focus{top:10px}\n#hs-home .ico{width:1.1em;height:1.1em;flex:none;fill:currentColor}\n\n\/* buttons: site green or white, never the old blue *\/\n#hs-home .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border-radius:999px;border:1.5px solid transparent;\n  font-family:var(--head);font-weight:700;font-size:.8125rem;letter-spacing:1.4px;text-transform:uppercase;text-decoration:none;cursor:pointer;\n  transition:background-color .2s,color .2s,border-color .2s,transform .2s;-webkit-tap-highlight-color:transparent;text-align:center;line-height:1.2}\n#hs-home .btn-green{background:var(--green);color:#000}\n#hs-home .btn-green:hover{background:#34d583}\n#hs-home .btn-white{background:#fff;color:#000}\n#hs-home .btn-white:hover{background:#e6e6e6}\n#hs-home .btn-ghost{background:transparent;color:var(--text);border-color:var(--line2)}\n#hs-home .btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.06)}\n#hs-home .btn-sm{min-height:44px;padding:0 20px;font-size:.75rem}\n#hs-home .btn:active{transform:translateY(1px)}\n\n\/* top strip *\/\n#hs-home .strip{background:#050507;border-bottom:1px solid var(--line);font-size:.875rem}\n#hs-home .strip .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:42px;flex-wrap:wrap;padding-top:4px;padding-bottom:4px}\n#hs-home .strip a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--text);min-height:36px}\n#hs-home .strip a:hover{color:var(--green)}\n#hs-home .strip .ico{color:var(--green)}\n#hs-home .strip .where{color:var(--muted)}\n#hs-home .strip .grp{display:flex;gap:22px;flex-wrap:wrap;align-items:center}\n\n\/* header *\/\n#hs-home .hs-site-header{position:sticky;top:0;z-index:1000;background:rgba(0,0,0,.88);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}\n#hs-home .hs-site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px}\n#hs-home .logo{display:block;flex:none}\n#hs-home .logo img{height:46px;width:auto}\n#hs-home .nav{display:flex;align-items:center;gap:30px}\n#hs-home .nav a{font-family:var(--head);font-weight:700;font-size:.75rem;letter-spacing:1.6px;text-transform:uppercase;text-decoration:none;padding:10px 2px;position:relative;color:var(--text)}\n#hs-home .nav a::after{content:\"\";position:absolute;left:0;right:0;bottom:4px;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .25s}\n#hs-home .nav a:hover::after,#hs-home .nav a:focus-visible::after{transform:scaleX(1)}\n#hs-home .hdr-actions{display:flex;align-items:center;gap:14px}\n#hs-home .lang{display:inline-flex;border:1px solid var(--line2);border-radius:999px;overflow:hidden;font-family:var(--head);font-weight:700;font-size:.6875rem;letter-spacing:1.2px}\n#hs-home .lang a,#hs-home .lang span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:36px;padding:0 10px;text-decoration:none}\n#hs-home .lang span{background:#fff;color:#000}\n#hs-home .lang a:hover{background:rgba(255,255,255,.1)}\n#hs-home .menu-btn{display:none;width:48px;height:48px;border-radius:50%;border:1px solid var(--line2);background:transparent;color:var(--text);cursor:pointer;align-items:center;justify-content:center}\n#hs-home .menu-btn .bars,#hs-home .menu-btn .bars::before,#hs-home .menu-btn .bars::after{display:block;width:20px;height:2px;background:currentColor;border-radius:2px;content:\"\";position:relative;transition:transform .25s,background .25s}\n#hs-home .menu-btn .bars::before{position:absolute;top:-6px}#hs-home .menu-btn .bars::after{position:absolute;top:6px}\n#hs-home .menu-btn[aria-expanded=\"true\"] .bars{background:transparent}\n#hs-home .menu-btn[aria-expanded=\"true\"] .bars::before{transform:translateY(6px) rotate(45deg)}\n#hs-home .menu-btn[aria-expanded=\"true\"] .bars::after{transform:translateY(-6px) rotate(-45deg)}\n\n\/* hero *\/\n#hs-home .hero{position:relative;overflow:hidden;isolation:isolate;border-bottom:1px solid var(--line)}\n#hs-home .hero-bg{position:absolute;inset:-40px 0;z-index:-2;will-change:transform}\n#hs-home .hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center}\n#hs-home .hero::after{content:\"\";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.82) 45%,rgba(0,0,0,.45) 100%),linear-gradient(0deg,#000 0%,rgba(0,0,0,0) 30%)}\n#hs-home .hero .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:56px;align-items:center;padding-top:72px;padding-bottom:72px;min-height:min(680px,calc(100svh - 118px))}\n#hs-home .eyebrow{font-family:var(--head);font-weight:700;font-size:.75rem;letter-spacing:2.4px;text-transform:uppercase;color:var(--green);display:flex;align-items:center;gap:12px}\n#hs-home .eyebrow::before{content:\"\";width:28px;height:2px;background:var(--green)}\n#hs-home .hero h1{font-size:clamp(1.85rem,4.2vw,3.3rem);margin:18px 0 20px;line-height:1.14}\n#hs-home .hero h1 em{font-style:normal;color:var(--green)}\n#hs-home[data-hs-lang=fr] .hero h1{font-size:clamp(1.5rem,3.3vw,2.6rem)}\n#hs-home .hero .lead{font-size:clamp(1.0625rem,1.8vw,1.3125rem);color:#e6e4df;max-width:34rem;font-weight:500}\n#hs-home .hero .cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}\n#hs-home .rating{display:inline-flex;align-items:center;gap:14px;margin-top:28px;padding:10px 18px 10px 14px;border:1px solid var(--line2);border-radius:999px;background:rgba(0,0,0,.45);text-decoration:none;min-height:48px}\n#hs-home .rating:hover{border-color:#fff}\n#hs-home .stars{display:inline-flex;gap:2px;color:var(--green)}\n#hs-home .stars .ico{width:18px;height:18px}\n#hs-home .rating b{font-family:var(--head);font-weight:800;font-size:1rem}\n#hs-home .rating span.t{font-size:.9375rem;color:#e6e4df}\n#hs-home .chips{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:22px;color:var(--muted);font-size:.9375rem}\n#hs-home .chips li{display:flex;align-items:center;gap:8px}\n#hs-home .chips li::before{content:\"\";width:6px;height:6px;border-radius:50%;background:var(--green)}\n#hs-home .hero-photo{justify-self:end;width:min(100%,380px);aspect-ratio:4\/5;border-radius:var(--r);overflow:hidden;border:1px solid var(--line2);position:relative;box-shadow:0 30px 70px rgba(0,0,0,.6)}\n#hs-home .hero-photo img{width:100%;height:100%;object-fit:cover}\n\n\/* sections *\/\n#hs-home section{padding:96px 0;position:relative}\n#hs-home .alt{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}\n#hs-home .sec-head{max-width:46rem;margin-bottom:48px}\n#hs-home .sec-head h2{font-size:clamp(1.6rem,3.6vw,2.6rem);margin-top:14px}\n#hs-home .sec-head p{color:var(--muted);margin-top:14px;font-size:1.0625rem}\n#hs-home .center{text-align:center;margin-left:auto;margin-right:auto}\n#hs-home .center .eyebrow{justify-content:center}\n#hs-home .center .eyebrow::before{display:none}\n\n\/* service cards *\/\n#hs-home .cards3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}\n#hs-home .svc{display:flex;flex-direction:column;text-decoration:none;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .25s,transform .25s}\n#hs-home .svc:hover,#hs-home .svc:focus-visible{border-color:var(--green);transform:translateY(-4px)}\n#hs-home .svc .ph{aspect-ratio:4\/3;overflow:hidden;position:relative;background:#000}\n#hs-home .svc .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s}\n#hs-home .svc:hover .ph img{transform:scale(1.04)}\n#hs-home .svc .ph::after{content:\"\";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,11,15,.95),rgba(11,11,15,0) 55%)}\n#hs-home .svc .ph h3{position:absolute;left:22px;bottom:14px;z-index:1;font-size:1.6rem}\n#hs-home .svc .bd{padding:22px 22px 26px;display:flex;flex-direction:column;gap:16px;flex:1}\n#hs-home .svc .bd>p{font-weight:500}\n#hs-home .svc ul{display:grid;gap:8px;color:var(--muted);font-size:.9688rem}\n#hs-home .svc li{display:flex;gap:10px;align-items:flex-start}\n#hs-home .svc li::before{content:\"\";flex:none;width:7px;height:7px;margin-top:.62em;border-radius:50%;background:var(--green)}\n#hs-home .more{margin-top:auto;padding-top:6px;font-family:var(--head);font-weight:700;font-size:.75rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--green);display:inline-flex;align-items:center;gap:8px}\n\n\/* pricing *\/\n#hs-home .price{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}\n#hs-home .plan{background:var(--panel2);border:1px solid var(--line);border-radius:var(--r);padding:34px 28px 30px;display:flex;flex-direction:column;gap:20px;transition:border-color .25s}\n#hs-home .plan:hover{border-color:var(--line2)}\n#hs-home .plan h3{font-size:1.15rem;letter-spacing:1.5px;color:var(--muted)}\n#hs-home .amt{font-family:var(--head);font-weight:800;font-size:3.4rem;line-height:1}\n#hs-home .amt small{font-size:1rem;color:var(--muted);font-weight:600;margin-left:6px}\n#hs-home .plan ul{display:grid;gap:10px;padding-top:6px;border-top:1px solid var(--line);margin-top:2px;padding-top:20px}\n#hs-home .plan li{display:flex;gap:10px}\n#hs-home .plan li::before{content:\"\";flex:none;width:9px;height:5px;margin-top:.6em;border-left:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(-45deg)}\n#hs-home .plan .btn{margin-top:auto}\n#hs-home .plan-sub{color:var(--green);font-family:var(--head);font-weight:700;font-size:.8125rem;letter-spacing:1.2px;text-transform:uppercase;margin-top:-8px}\n#hs-home .note{color:var(--muted);margin-top:26px;font-size:.9688rem;text-align:center}\n#hs-home .note a{color:var(--text)}\n\n\/* work *\/\n#hs-home .work-banner{position:absolute;inset:0;z-index:0;overflow:hidden}\n#hs-home .work-banner img{width:100%;height:100%;object-fit:cover;opacity:.22}\n#hs-home .work-banner::after{content:\"\";position:absolute;inset:0;background:linear-gradient(180deg,#000 0%,rgba(0,0,0,.55) 40%,#000 100%)}\n#hs-home #work .wrap{position:relative;z-index:1}\n#hs-home .tracks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}\n#hs-home .track{background:rgba(11,11,15,.92);border:1px solid var(--line);border-radius:var(--r);padding:20px;display:grid;grid-template-columns:96px minmax(0,1fr);gap:18px;align-items:start}\n#hs-home .art{width:96px;height:96px;border-radius:10px;background:radial-gradient(circle at 30% 30%,rgba(29,191,106,.45),rgba(29,191,106,0) 60%),linear-gradient(135deg,#1b1b22,#08080b);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--text)}\n#hs-home .art .ico{width:30px;height:30px;opacity:.8}\n#hs-home .track h3{font-size:1rem;letter-spacing:.5px}\n#hs-home .track .artist{color:var(--muted);font-size:.9375rem;margin-top:2px}\n#hs-home .tag{display:inline-block;font-family:var(--head);font-weight:700;font-size:.625rem;letter-spacing:1.4px;text-transform:uppercase;border:1px dashed var(--line2);border-radius:999px;padding:3px 10px;color:var(--muted);margin-bottom:8px}\n#hs-home .sample-slot{margin-top:12px;min-height:44px}\n#hs-home .sample-slot .ph-line{display:flex;align-items:center;min-height:44px;padding:0 14px;border:1px dashed var(--line2);border-radius:10px;color:var(--muted);font-size:.9063rem}\n#hs-home .sample-slot audio{width:100%;height:44px}\n#hs-home .sample-slot iframe{width:100%;height:166px;border:0;border-radius:10px}\n#hs-home .ab{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}\n#hs-home .ab button{min-height:40px;padding:0 18px;border-radius:999px;border:1px solid var(--line2);background:transparent;color:var(--text);font-family:var(--head);font-weight:700;font-size:.6875rem;letter-spacing:1.3px;text-transform:uppercase;cursor:pointer}\n#hs-home .ab button[aria-pressed=\"true\"]{background:var(--green);border-color:var(--green);color:#000}\n#hs-home .ab button:disabled{opacity:.55;cursor:default}\n#hs-home .ab .lbl{width:100%;font-size:.8125rem;color:var(--muted)}\n\n\/* proof *\/\n#hs-home .proof{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:28px;align-items:stretch}\n#hs-home .gbadge{background:var(--panel2);border:1px solid var(--line);border-radius:var(--r);padding:34px 28px;display:flex;flex-direction:column;gap:14px;justify-content:center;align-items:flex-start}\n#hs-home .gbadge .big{font-family:var(--head);font-weight:800;font-size:4.2rem;line-height:1}\n#hs-home .gbadge .stars .ico{width:24px;height:24px}\n#hs-home .gbadge p{color:var(--muted)}\n#hs-home .quotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}\n#hs-home .quote{background:var(--panel2);border:1px solid var(--line);border-radius:var(--r);padding:26px 22px;display:flex;flex-direction:column;gap:18px}\n#hs-home .quote blockquote{margin:0;font-size:1rem;line-height:1.6;flex:1}\n#hs-home .quote .tr{display:block;margin-top:10px;color:var(--muted);font-size:.875rem}\n#hs-home .quote figcaption{border-top:1px solid var(--line);padding-top:14px}\n#hs-home .quote figcaption b{display:block;font-family:var(--head);font-weight:700;font-size:.8125rem;letter-spacing:1.2px;text-transform:uppercase}\n#hs-home .quote figcaption span{color:var(--muted);font-size:.9063rem}\n#hs-home .quote{margin:0}\n#hs-home .stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:64px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}\n#hs-home .stat{padding:34px 18px;text-align:center;border-left:1px solid var(--line)}\n#hs-home .stat:first-child{border-left:0}\n#hs-home .stat .n{font-family:var(--head);font-weight:800;font-size:clamp(2rem,4vw,3.2rem);line-height:1}\n#hs-home .stat .n i{font-style:normal;color:var(--green)}\n#hs-home .stat .l{color:var(--muted);font-size:.9375rem;margin-top:10px}\n\n\/* steps *\/\n#hs-home .steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;counter-reset:s}\n#hs-home .step{padding:30px 26px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel2);position:relative}\n#hs-home .step .no{font-family:var(--head);font-weight:800;font-size:.8125rem;letter-spacing:2px;color:var(--green);display:flex;align-items:center;gap:12px;margin-bottom:16px}\n#hs-home .step .no::after{content:\"\";height:1px;flex:1;background:var(--line2)}\n#hs-home .step h3{font-size:1.2rem;margin-bottom:10px}\n#hs-home .step p{color:var(--muted)}\n\n\/* faq *\/\n#hs-home .faq{max-width:52rem;margin:0 auto;display:grid;gap:12px}\n#hs-home .faq details{border:1px solid var(--line);border-radius:12px;background:var(--panel2);transition:border-color .2s}\n#hs-home .faq details[open]{border-color:var(--line2)}\n#hs-home .faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;min-height:60px;font-family:var(--head);font-weight:700;font-size:.9375rem;letter-spacing:.3px}\n#hs-home .faq summary::-webkit-details-marker{display:none}\n#hs-home .faq summary::after{content:\"+\";font-family:var(--body);font-size:1.6rem;font-weight:400;color:var(--green);line-height:1;transition:transform .25s}\n#hs-home .faq details[open] summary::after{transform:rotate(45deg)}\n#hs-home .faq .a{padding:0 22px 22px;color:#d9d7d2}\n#hs-home .faq .a .owner{color:var(--green)}\n\n\/* contact *\/\n#hs-home .contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px}\n#hs-home .info{display:grid;gap:22px;align-content:start}\n#hs-home .info .row{display:flex;gap:16px;align-items:flex-start}\n#hs-home .info .row .ic{width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);display:flex;align-items:center;justify-content:center;color:var(--green);flex:none}\n#hs-home .info h3{font-size:.8125rem;letter-spacing:1.6px;color:var(--muted);margin-bottom:4px}\n#hs-home .info a{text-decoration:none;font-weight:600}\n#hs-home .info a:hover{color:var(--green)}\n#hs-home .info .dir{display:inline-flex;align-items:center;min-height:44px;color:var(--green);font-family:var(--head);font-weight:700;font-size:.75rem;letter-spacing:1.4px;text-transform:uppercase}\n#hs-home .info address{font-style:normal}\n#hs-home form.contact{display:grid;gap:16px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r);padding:28px}\n#hs-home .f2{display:grid;grid-template-columns:1fr 1fr;gap:16px}\n#hs-home .fld{display:grid;gap:6px}\n#hs-home .fld label{font-family:var(--head);font-weight:700;font-size:.6875rem;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted)}\n#hs-home .fld input,#hs-home .fld textarea{width:100%;min-height:50px;padding:12px 14px;border-radius:10px;border:1px solid var(--line2);background:#050507;color:var(--text);font:inherit;font-size:1rem}\n#hs-home .fld textarea{min-height:140px;resize:vertical}\n#hs-home .fld input:focus,#hs-home .fld textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}\n#hs-home .form-status{min-height:1.4em;color:var(--green);font-size:.9375rem}\n#hs-home .map{margin-top:44px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;height:clamp(280px,32vw,400px);background:#0b0b0f}\n#hs-home .map iframe{width:100%;height:100%;border:0;filter:grayscale(.85) invert(.92) contrast(.9)}\n\n\/* academy *\/\n#hs-home .academy{position:relative;overflow:hidden;isolation:isolate;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}\n#hs-home .academy .bgimg{position:absolute;inset:0;z-index:-2}\n#hs-home .academy .bgimg img{width:100%;height:100%;object-fit:cover}\n#hs-home .academy::after{content:\"\";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,.92),rgba(0,0,0,.65))}\n#hs-home .academy .in{max-width:40rem}\n#hs-home .academy h2{font-size:clamp(1.6rem,3.6vw,2.6rem);margin:14px 0 16px}\n#hs-home .academy p{color:#dedcd6;margin-bottom:28px}\n\n\/* footer *\/\n#hs-home footer{padding:64px 0 36px;background:#000}\n#hs-home .fgrid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:36px;align-items:start}\n#hs-home .fgrid h3{font-size:.75rem;letter-spacing:1.8px;color:var(--muted);margin-bottom:12px}\n#hs-home .fgrid p,#hs-home .fgrid li,#hs-home .fgrid address{color:#d9d7d2;font-size:.9688rem;font-style:normal}\n#hs-home .fgrid a{text-decoration:none}\n#hs-home .fgrid a:hover{color:var(--green)}\n#hs-home .fgrid ul{display:grid;gap:4px}\n#hs-home .fgrid ul a{display:inline-block;padding:6px 0}\n#hs-home .legal{margin-top:48px;padding-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:.875rem;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}\n\n\/* sticky pill (v1.2.0): calm solid site green, dark text, soft shadow, gentle fade. Hidden near other Book buttons, the contact section and the footer (see script) *\/\n#hs-home #hs-floating-booking-cta{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom,0px));z-index:900;transform:translate(-50%,10px);\n  display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 26px;border-radius:999px;\n  background:var(--green);border:0;color:#000;text-decoration:none;\n  font-family:var(--head);font-weight:700;font-size:.75rem;letter-spacing:1.6px;text-transform:uppercase;white-space:nowrap;\n  box-shadow:0 6px 20px rgba(0,0,0,.38);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,transform .45s ease,visibility .45s,background-color .2s}\n#hs-home #hs-floating-booking-cta.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}\n#hs-home #hs-floating-booking-cta:hover{background:#34d583}\nbody.hs-sm-lock #hs-home #hs-floating-booking-cta{opacity:0;visibility:hidden;pointer-events:none}\n\n\/* harmless sessions (video cards) *\/\n#hs-home .vgrid{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:18px}\n#hs-home .vcard{display:flex;flex-direction:column;gap:12px;min-width:0}\n#hs-home .vbox{position:relative;aspect-ratio:9\/16;border-radius:var(--r);overflow:hidden;background:#000;border:1px solid var(--line);transition:border-color .25s,transform .25s}\n#hs-home .vcard:hover .vbox,#hs-home .vbox:focus-within{border-color:var(--line2)}\n#hs-home .vplay{all:unset;box-sizing:border-box;position:absolute;inset:0;cursor:pointer;display:block;-webkit-tap-highlight-color:transparent}\n#hs-home .vplay[hidden]{display:none}\n#hs-home .vplay:focus-visible{outline:3px solid var(--green);outline-offset:-3px;border-radius:var(--r)}\n#hs-home .vplay img{width:100%;height:100%;object-fit:cover;transition:transform .6s,opacity .3s}\n#hs-home .vcard:hover .vplay img{transform:scale(1.03)}\n#hs-home .vplay::after{content:\"\";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.55),rgba(0,0,0,0) 40%)}\n#hs-home .vbtn{position:absolute;left:50%;top:50%;z-index:1;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;display:flex;align-items:center;justify-content:center;\n  background:rgba(10,10,12,.62);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(245,242,235,.72);color:#f5f2eb;transition:background-color .2s,border-color .2s,color .2s}\n#hs-home .vbtn .ico{width:26px;height:26px;margin-left:3px}\n#hs-home .vcard:hover .vbtn,#hs-home .vplay:focus-visible .vbtn{background:var(--green);border-color:var(--green);color:#000}\n#hs-home .vbox video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;display:block}\n#hs-home .vcap{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.875rem;padding:0 2px}\n#hs-home .vcap b{font-family:var(--head);font-weight:700;font-size:.6875rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--text)}\n#hs-home .vcta{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;justify-content:center;margin-top:44px}\n#hs-home .iglink{display:inline-flex;align-items:center;gap:10px;min-height:48px;color:var(--muted);text-decoration:none;font-size:.9688rem}\n#hs-home .iglink svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;flex:none}\n#hs-home .iglink:hover{color:var(--text)}\n#hs-home .iglink u{text-decoration:none;border-bottom:1px solid var(--line2)}\n#hs-home .iglink:hover u{border-color:var(--green)}\n@media (min-width:1021px){#hs-home .vgrid.vscroll{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -24px;padding:0 24px 8px;scrollbar-width:thin}#hs-home .vgrid.vscroll .vcard{flex:0 0 220px;scroll-snap-align:start}}\n@media (max-width:1020px){\n  #hs-home .vgrid{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;\n    margin:0 -24px;padding:0 24px 8px;scroll-padding-left:24px;scrollbar-width:none}\n  #hs-home .vgrid::-webkit-scrollbar{display:none}\n  #hs-home .vcard{flex:0 0 min(64vw,280px);scroll-snap-align:start}\n}\n@media (max-width:640px){#hs-home .vgrid{margin:0 -20px;padding:0 20px 8px;scroll-padding-left:20px}#hs-home .vcta{margin-top:32px}#hs-home .vcta .btn{flex:1 1 100%}}\n@media (prefers-reduced-motion:reduce){#hs-home .vplay img,#hs-home .vbox{transition:none}#hs-home .vcard:hover .vplay img{transform:none}}\n\n\/* before \/ after audio players *\/\n#hs-home .abgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}\n#hs-home .abc{background:rgba(11,11,15,.92);border:1px solid var(--line);border-radius:var(--r);padding:26px 24px 24px;display:flex;flex-direction:column;gap:20px;transition:border-color .25s}\n#hs-home .abc:hover,#hs-home .abc.is-on{border-color:var(--line2)}\n#hs-home .abc .num{font-family:var(--head);font-weight:700;font-size:.6875rem;letter-spacing:1.8px;color:var(--green)}\n#hs-home .abc h3{font-size:1.1rem;letter-spacing:.4px;margin-top:6px}\n#hs-home .abtog{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line2);border-radius:999px;padding:4px;background:#050507}\n#hs-home .abtog button{all:unset;box-sizing:border-box;text-align:center;cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:999px;\n  font-family:var(--head);font-weight:700;font-size:.75rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);transition:background-color .2s,color .2s;-webkit-tap-highlight-color:transparent}\n#hs-home .abtog button:hover{color:var(--text)}\n#hs-home .abtog button[aria-pressed=\"true\"]{background:#fff;color:#000}\n#hs-home .abtog button:focus-visible{outline:3px solid var(--green);outline-offset:2px}\n#hs-home .ablbl{min-height:1.5em;color:var(--text);font-size:.9688rem;display:flex;align-items:center;gap:10px}\n#hs-home .ablbl::before{content:\"\";width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none;transition:background-color .2s}\n#hs-home .abc[data-side=\"after\"] .ablbl::before{background:var(--green)}\n#hs-home .abplay{display:flex;align-items:center;gap:16px}\n#hs-home .abp{all:unset;box-sizing:border-box;flex:none;width:56px;height:56px;border-radius:50%;background:#fff;color:#000;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s;-webkit-tap-highlight-color:transparent}\n#hs-home .abp:hover{background:var(--green)}\n#hs-home .abp:focus-visible{outline:3px solid var(--green);outline-offset:3px}\n#hs-home .abp .ico{width:24px;height:24px}\n#hs-home .abp .i-pause{display:none}\n#hs-home .abc.is-playing .abp .i-pause{display:block}\n#hs-home .abc.is-playing .abp .i-play{display:none}\n#hs-home .abp .i-play{margin-left:3px}\n#hs-home .abbar{flex:1;min-width:0;display:grid;gap:4px}\n#hs-home .abbar input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:32px;margin:0;background:transparent;cursor:pointer;--p:0%}\n#hs-home .abbar input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--green) var(--p),rgba(255,255,255,.2) var(--p))}\n#hs-home .abbar input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:rgba(255,255,255,.2)}\n#hs-home .abbar input[type=range]::-moz-range-progress{height:4px;border-radius:4px;background:var(--green)}\n#hs-home .abbar input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:0;margin-top:-6px}\n#hs-home .abbar input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:0}\n#hs-home .abbar input[type=range]:focus-visible{outline:3px solid var(--green);outline-offset:2px;border-radius:6px}\n#hs-home .abtime{display:flex;justify-content:space-between;color:var(--muted);font-size:.8125rem;font-variant-numeric:tabular-nums}\n#hs-home .abnote{color:var(--muted);font-size:.9375rem;text-align:center;margin-top:30px}\n#hs-home .abcta{display:flex;justify-content:center;margin-top:36px}\n@media (max-width:1020px){#hs-home .abgrid{grid-template-columns:1fr;max-width:34rem;margin:0 auto}}\n@media (max-width:640px){#hs-home .abc{padding:22px 18px 20px}#hs-home .abcta .btn{width:100%}}\n\n\/* scroll-tied motion (only applied when JS adds .js and motion is allowed) *\/\n#hs-home .js .rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease;transition-delay:var(--d,0s)}\n#hs-home .js .rv.in{opacity:1;transform:none}\n@media (prefers-reduced-motion:reduce){\n  html{scroll-behavior:auto}\n  #hs-home .js .rv{opacity:1;transform:none;transition:none}\n  #hs-home .svc,#hs-home .svc .ph img,#hs-home .btn,#hs-home #hs-floating-booking-cta,#hs-home .nav a::after{transition:none}\n  #hs-home .hero-bg{transform:none!important}\n}\n\n@media (max-width:1020px){\n  #hs-home .hero .wrap{grid-template-columns:1fr;min-height:0;padding-top:56px;padding-bottom:56px}\n  #hs-home .hero-photo{display:none}\n  #hs-home .cards3,#hs-home .price,#hs-home .steps{grid-template-columns:1fr}\n  #hs-home .tracks{grid-template-columns:1fr}\n  #hs-home .proof{grid-template-columns:1fr}\n  #hs-home .quotes{grid-template-columns:1fr}\n  #hs-home .contact-grid{grid-template-columns:1fr}\n  #hs-home .fgrid{grid-template-columns:1fr 1fr}\n  #hs-home .svc{flex-direction:column}\n  #hs-home .stats{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #hs-home .stat:nth-child(3){border-left:0}\n  #hs-home .stat:nth-child(n+3){border-top:1px solid var(--line)}\n}\n@media (max-width:940px){\n  #hs-home .menu-btn{display:inline-flex}\n  #hs-home .nav{position:absolute;left:0;right:0;top:100%;background:#000;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;padding:8px 24px 18px;display:none}\n  #hs-home .nav.open{display:flex}\n  #hs-home .nav a{padding:16px 0;border-bottom:1px solid var(--line);font-size:.8125rem}\n  #hs-home .nav a::after{display:none}\n  #hs-home .hdr-book{display:none}\n}\n@media (max-width:640px){\n  body,#hs-home{font-size:1rem}\n  #hs-home .wrap{padding:0 20px}\n  #hs-home section{padding:64px 0}\n  #hs-home .strip .wrap{justify-content:center;gap:2px 18px}\n  #hs-home .strip .where{display:none}\n  #hs-home .strip .grp{gap:6px 18px;justify-content:center}\n  #hs-home .strip{font-size:.8125rem}\n  #hs-home .hs-site-header .wrap{min-height:68px}\n  #hs-home .logo img{height:40px}\n  #hs-home .hero .wrap{padding-top:40px;padding-bottom:44px}\n  #hs-home .hero .cta .btn{flex:1 1 100%}\n  #hs-home .rating{padding-right:14px;gap:10px}\n  #hs-home .f2{grid-template-columns:1fr}\n  #hs-home .track{grid-template-columns:72px minmax(0,1fr);padding:16px;gap:14px}\n  #hs-home .art{width:72px;height:72px}\n  #hs-home .sec-head{margin-bottom:34px}\n  #hs-home .map{height:300px}\n  #hs-home .fgrid{grid-template-columns:1fr}\n  #hs-home .stat{padding:26px 10px}\n  #hs-home .amt{font-size:3rem}\n  #hs-home form.contact{padding:20px}\n}\n\n\/* Theme compatibility: Hello Elementor (reset.css) restyles bare elements. :where() keeps these at zero extra specificity. *\/\n:where(#hs-home) label{line-height:inherit;vertical-align:baseline}\n:where(#hs-home) figcaption{color:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit}\n:where(#hs-home) a{text-decoration:underline}\n:where(#hs-home) :is(button,[type=button],[type=submit]):is(:hover,:focus){background-color:transparent;color:inherit;text-decoration:none}\n#hs-home .menu-btn{padding:0}\n\n\/* ===== v1.2.0 additions ===== *\/\n\/* hero picture wrapper (keeps the old img sizing) *\/\n#hs-home .hero-bg picture{display:block;width:100%;height:100%}\n\/* video captions: artist name above a calm \"Live session\" label *\/\n#hs-home .vcap{align-items:flex-start}\n#hs-home .vcn{display:flex;flex-direction:column;gap:2px;min-width:0}\n#hs-home .vcap b{font-size:.8125rem;letter-spacing:1.4px;overflow-wrap:anywhere}\n#hs-home .vcn small{font-size:.8125rem;color:var(--muted);letter-spacing:.2px}\n#hs-home .vcap>span{flex:none;font-variant-numeric:tabular-nums}\n\/* payment line under the price cards, address note *\/\n#hs-home .note.pay{margin-top:30px;color:var(--text)}\n#hs-home .note.pay+.note{margin-top:10px}\n#hs-home .dir-note{color:var(--muted);font-size:.9375rem;margin-top:2px}\n\/* contrast: Book button inside .note kept dark on green *\/\n#hs-home .note a.btn{text-decoration:none}\n#hs-home .note a.btn-green{color:#000}\n\/* 44 px minimum tap areas *\/\n#hs-home .strip a{min-height:44px}\n#hs-home .strip .wrap{padding-top:0;padding-bottom:0}\n#hs-home .logo{display:flex;align-items:center;min-height:44px}\n#hs-home .lang a,#hs-home .lang span{min-height:44px}\n#hs-home .abbar input[type=range]{height:44px;margin:-6px 0;border:0;padding:0}\n#hs-home .info .row a:not(.dir){display:inline-flex;align-items:center;min-height:44px}\n#hs-home .fgrid ul{gap:0}\n#hs-home .fgrid ul a{display:inline-flex;align-items:center;min-height:44px;padding:0}\n\n\/* ===== WordPress package additions ===== *\/\n.hs-hp{position:absolute!important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}\n.form-status.is-error{color:#ff8f8f}\n.fld input[aria-invalid=true],.fld textarea[aria-invalid=true]{border-color:#ff8f8f}\n<\/style>\n<div id=\"hs-home\" class=\"hs-home\" data-hs-lang=\"fr\">\n<svg width=\"0\" height=\"0\" style=\"position:absolute\" aria-hidden=\"true\" focusable=\"false\">\n  <symbol id=\"i-phone\" viewBox=\"0 0 24 24\"><path d=\"M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25c1.1.37 2.3.57 3.6.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z\"\/><\/symbol>\n  <symbol id=\"i-mail\" viewBox=\"0 0 24 24\"><path d=\"M3 5h18a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm9 7.2L4.6 7H4v.4l8 5.6 8-5.6V7h-.6L12 12.2z\"\/><\/symbol>\n  <symbol id=\"i-star\" viewBox=\"0 0 24 24\"><path d=\"M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5l-5.9 3.2 1.2-6.6L2.5 9.5l6.6-.9z\"\/><\/symbol>\n  <symbol id=\"i-play\" viewBox=\"0 0 24 24\"><path d=\"M8 5.5v13l11-6.5z\"\/><\/symbol>\n  <symbol id=\"i-arrow\" viewBox=\"0 0 24 24\"><path d=\"M5 11h11.2l-4.6-4.6L13 5l7 7-7 7-1.4-1.4 4.6-4.6H5z\"\/><\/symbol>\n  <symbol id=\"i-pin\" viewBox=\"0 0 24 24\"><path d=\"M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z\"\/><\/symbol>\n  <symbol id=\"i-clock\" viewBox=\"0 0 24 24\"><path d=\"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm.8 5v5.2l4.2 2.5-.8 1.3-5-3V7z\"\/><\/symbol>\n<\/svg>\n\n<a class=\"skip\" href=\"#main\">Aller au contenu<\/a>\n\n<div class=\"strip\">\n  <div class=\"wrap\">\n    <div class=\"grp\">\n      <a href=\"tel:+15146325922\"><svg class=\"ico\" aria-hidden=\"true\"><use href=\"#i-phone\"\/><\/svg><span class=\"sr\">Appeler <\/span>+1 514 632 5922<\/a>\n      <a href=\"mailto:harmless.mtl@gmail.com\"><svg class=\"ico\" aria-hidden=\"true\"><use href=\"#i-mail\"\/><\/svg><span class=\"sr\">\u00c9crire \u00e0 <\/span>harmless.mtl@gmail.com<\/a>\n    <\/div>\n    <span class=\"where\">245 boul. Des Laurentides, Laval, QC<\/span>\n  <\/div>\n<\/div>\n\n<header class=\"hs-site-header\">\n  <div class=\"wrap\">\n    <a class=\"logo\" href=\"\/accueil\/\" aria-label=\"Harmless Studio\"><img decoding=\"async\" src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/harmless-logo.png\" width=\"110\" height=\"46\" alt=\"Harmless Studio logo\"><\/a>\n    <nav class=\"nav\" id=\"nav\" aria-label=\"Principale\">\n      <a href=\"#services\">Services<\/a>\n      <a href=\"#work\">\u00c9couter nos r\u00e9alisations<\/a>\n      <a href=\"#pricing\">Tarifs<\/a>\n      <a href=\"#faq\">FAQ<\/a>\n      <a href=\"#contact\">Contact<\/a>\n    <\/nav>\n    <div class=\"hdr-actions\">\n      <div class=\"lang\" role=\"group\" aria-label=\"Langue\"><a href=\"\/\" hreflang=\"en\" lang=\"en\" aria-label=\"EN, English\">EN<\/a><span aria-current=\"true\">FR<\/span><\/div>\n      <a class=\"btn btn-green btn-sm hdr-book\" href=\"https:\/\/harmlessstudio.setmore.com\/\">R\u00e9server une s\u00e9ance<\/a>\n      <button class=\"menu-btn\" id=\"menu-btn\" type=\"button\" aria-expanded=\"false\" aria-controls=\"nav\" aria-label=\"Menu\"><span class=\"bars\"><\/span><\/button>\n    <\/div>\n  <\/div>\n<\/header>\n\n<main id=\"main\">\n\n<section class=\"hero\" id=\"top\" style=\"padding:0\">\n  <div class=\"hero-bg\" data-parallax aria-hidden=\"true\"><picture><source media=\"(max-width:640px)\" type=\"image\/webp\" srcset=\"https:\/\/harmless-studio.com\/wp-content\/plugins\/harmless-new-home\/assets\/img\/hero-m-900.webp?v=1.2.0\"><source type=\"image\/webp\" srcset=\"https:\/\/harmless-studio.com\/wp-content\/plugins\/harmless-new-home\/assets\/img\/hero-1600.webp?v=1.2.0\"><img fetchpriority=\"high\" src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/hero-console.jpg\" alt=\"\" width=\"1600\" height=\"833\" fetchpriority=\"high\" decoding=\"async\"><\/picture><\/div>\n  <div class=\"wrap\">\n    <div>\n      <p class=\"eyebrow\">Studio d\u2019enregistrement musical \u00e0 Laval, QC<\/p>\n      <h1>Votre chanson, comme vous l\u2019entendez. Termin\u00e9e \u00e0 <em>Laval<\/em>.<\/h1>\n      <p class=\"lead\">170 $ pour une s\u00e9ance de 2 heures vous donne une chanson termin\u00e9e, enregistr\u00e9e, mix\u00e9e et masteris\u00e9e, pr\u00eate \u00e0 sortir, tout inclus.<\/p>\n      <div class=\"cta\">\n        <a class=\"btn btn-green\" href=\"https:\/\/harmlessstudio.setmore.com\/\">R\u00e9server une s\u00e9ance<\/a>\n        <a class=\"btn btn-ghost\" href=\"#work\">\u00c9couter nos r\u00e9alisations<\/a>\n      <\/div>\n      <a class=\"rating\" href=\"https:\/\/www.google.com\/maps\/search\/?api=1&amp;query=Harmless+Studio+245+Des+Laurentides+Blvd+Laval+QC\" target=\"_blank\" rel=\"noopener\">\n        <span class=\"stars\" aria-hidden=\"true\"><svg class=\"ico\"><use href=\"#i-star\"\/><\/svg><svg class=\"ico\"><use href=\"#i-star\"\/><\/svg><svg class=\"ico\"><use href=\"#i-star\"\/><\/svg><svg class=\"ico\"><use href=\"#i-star\"\/><\/svg><svg class=\"ico\"><use href=\"#i-star\"\/><\/svg><\/span>\n        <b>5,0<\/b><span class=\"t\">sur 60 avis Google<\/span>\n      <\/a>\n      <ul class=\"chips\">\n        <li>Sur rendez-vous<\/li>\n        <li>Ouvert du lundi au dimanche, 10 h \u00e0 minuit<\/li>\n      <\/ul>\n    <\/div>\n    <figure class=\"hero-photo\" style=\"margin:0 0 0 auto\">\n      <img loading=\"lazy\" src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/hero-engineer-bw.jpg\" width=\"900\" height=\"1125\" alt=\"Ing\u00e9nieur du son avec casque qui \u00e9coute attentivement pendant une s\u00e9ance au Harmless Studio\" loading=\"lazy\" decoding=\"async\">\n    <\/figure>\n  <\/div>\n<\/section>\n\n<section id=\"sessions\" class=\"alt\">\n  <div class=\"wrap\">\n    <div class=\"sec-head center rv\">\n      <p class=\"eyebrow\">Harmless Sessions<\/p>\n      <h2>En direct dans la salle. Une seule prise. Devant le micro.<\/h2>\n      <p>Harmless Sessions, c\u2019est notre s\u00e9rie de performances en direct. Des artistes montent au micro au Harmless Studio et jouent en une seule prise.<\/p>\n    <\/div>\n    <div class=\"vgrid\" style=\"--n:5\" role=\"group\" aria-label=\"Vid\u00e9os Harmless Sessions\">\n      <div class=\"vcard rv\" style=\"--d:0.00s\" data-vcard data-src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-1-hq.mp4\" data-poster=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-1-poster.jpg\">\n        <div class=\"vbox\">\n          <button class=\"vplay\" type=\"button\" data-label=\"Lire la vid\u00e9o Harmless Sessions 1, Sinza\" aria-label=\"Lire la vid\u00e9o Harmless Sessions 1, Sinza\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-1-poster.jpg\" width=\"540\" height=\"960\" loading=\"lazy\" alt=\"Artiste en tuque noire et capuchon qui performe au micro sous l\u2019enseigne lumineuse du Harmless Studio\"><span class=\"vbtn\" aria-hidden=\"true\"><svg class=\"ico\"><use href=\"#i-play\"\/><\/svg><\/span><\/button>\n        <\/div>\n        <div class=\"vcap\"><span class=\"vcn\"><b>Sinza<\/b><small>S\u00e9ance en direct<\/small><\/span><span>0:54<\/span><\/div>\n      <\/div>\n      <div class=\"vcard rv\" style=\"--d:0.08s\" data-vcard data-src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-2-hq.mp4\" data-poster=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-2-poster.jpg\">\n        <div class=\"vbox\">\n          <button class=\"vplay\" type=\"button\" data-label=\"Lire la vid\u00e9o Harmless Sessions 2, Gweda21\" aria-label=\"Lire la vid\u00e9o Harmless Sessions 2, Gweda21\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-2-poster.jpg\" width=\"540\" height=\"960\" loading=\"lazy\" alt=\"Rappeur avec une casquette de New York et des lunettes teint\u00e9es qui performe au micro sous l\u2019enseigne du Harmless Studio\"><span class=\"vbtn\" aria-hidden=\"true\"><svg class=\"ico\"><use href=\"#i-play\"\/><\/svg><\/span><\/button>\n        <\/div>\n        <div class=\"vcap\"><span class=\"vcn\"><b>Gweda21<\/b><small>S\u00e9ance en direct<\/small><\/span><span>0:46<\/span><\/div>\n      <\/div>\n      <div class=\"vcard rv\" style=\"--d:0.16s\" data-vcard data-src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-3-hq.mp4\" data-poster=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-3-poster.jpg\">\n        <div class=\"vbox\">\n          <button class=\"vplay\" type=\"button\" data-label=\"Lire la vid\u00e9o Harmless Sessions 3, POSIC\" aria-label=\"Lire la vid\u00e9o Harmless Sessions 3, POSIC\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-3-poster.jpg\" width=\"540\" height=\"960\" loading=\"lazy\" alt=\"Artiste aux tresses \u00e0 m\u00e8ches blondes qui performe au micro sous l\u2019enseigne du Harmless Studio\"><span class=\"vbtn\" aria-hidden=\"true\"><svg class=\"ico\"><use href=\"#i-play\"\/><\/svg><\/span><\/button>\n        <\/div>\n        <div class=\"vcap\"><span class=\"vcn\"><b>POSIC<\/b><small>S\u00e9ance en direct<\/small><\/span><span>0:53<\/span><\/div>\n      <\/div>\n      <div class=\"vcard rv\" style=\"--d:0.24s\" data-vcard data-src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-4-hq.mp4\" data-poster=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-4-poster.jpg\">\n        <div class=\"vbox\">\n          <button class=\"vplay\" type=\"button\" data-label=\"Lire la vid\u00e9o Harmless Sessions 4, BU$HGOD\" aria-label=\"Lire la vid\u00e9o Harmless Sessions 4, BU$HGOD\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-4-poster.jpg\" width=\"540\" height=\"960\" loading=\"lazy\" alt=\"Rappeur en complet vert p\u00e2le et cravate rose qui performe au micro sous l\u2019enseigne du Harmless Studio\"><span class=\"vbtn\" aria-hidden=\"true\"><svg class=\"ico\"><use href=\"#i-play\"\/><\/svg><\/span><\/button>\n        <\/div>\n        <div class=\"vcap\"><span class=\"vcn\"><b>BU$HGOD<\/b><small>S\u00e9ance en direct<\/small><\/span><span>0:43<\/span><\/div>\n      <\/div>\n      <div class=\"vcard rv\" style=\"--d:0.32s\" data-vcard data-src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-5-hq.mp4\" data-poster=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-5-poster.jpg\">\n        <div class=\"vbox\">\n          <button class=\"vplay\" type=\"button\" data-label=\"Lire la vid\u00e9o Harmless Sessions 5, Jay\" aria-label=\"Lire la vid\u00e9o Harmless Sessions 5, Jay\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/session-5-poster.jpg\" width=\"540\" height=\"960\" loading=\"lazy\" alt=\"Artiste en t-shirt noir qui performe au micro sous l\u2019enseigne du Harmless Studio\"><span class=\"vbtn\" aria-hidden=\"true\"><svg class=\"ico\"><use href=\"#i-play\"\/><\/svg><\/span><\/button>\n        <\/div>\n        <div class=\"vcap\"><span class=\"vcn\"><b>Jay<\/b><small>S\u00e9ance en direct<\/small><\/span><span>0:53<\/span><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"vcta rv\">\n      <a class=\"btn btn-green\" href=\"https:\/\/harmlessstudio.setmore.com\/\" data-hs-track=\"book-sessions\">R\u00e9server une s\u00e9ance<\/a>\n      <a class=\"iglink\" href=\"https:\/\/www.instagram.com\/harmless.studio\/\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"5\"\/><circle cx=\"12\" cy=\"12\" r=\"4\"\/><circle cx=\"17.3\" cy=\"6.7\" r=\".6\" fill=\"currentColor\"\/><\/svg><span>Suivez <u>@harmless.studio<\/u> sur Instagram<\/span><\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section id=\"work\" class=\"ab-section\" style=\"overflow:hidden\">\n  <div class=\"work-banner\" aria-hidden=\"true\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/hero-lights.jpg\" alt=\"\" loading=\"lazy\" width=\"1920\" height=\"1200\"><\/div>\n  <div class=\"wrap\">\n    <div class=\"sec-head center rv\">\n      <p class=\"eyebrow\">Avant et apr\u00e8s<\/p>\n      <h2>Entendez ce que font le mixage et le mastering<\/h2>\n      <p>Le m\u00eame moment de la chanson, en deux versions. Passez de l\u2019enregistrement brut \u00e0 la version finale mix\u00e9e et masteris\u00e9e pendant la lecture.<\/p>\n    <\/div>\n    <div class=\"abgrid\" role=\"group\" aria-label=\"Lecteurs avant et apr\u00e8s\">\n      <div class=\"abc rv\" style=\"--d:0.00s\" data-ab data-before=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/slomo-cherie-coco-before-hq.mp3\" data-after=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/slomo-cherie-coco-after-hq.mp3\" data-lbl-before=\"Enregistrement brut\" data-lbl-after=\"Mix\u00e9 et masteris\u00e9\">\n        <div><span class=\"num\">01<\/span><h3>Titre : Ch\u00e9rie Coco<\/h3><\/div>\n        <div class=\"abtog\" role=\"group\" aria-label=\"Ch\u00e9rie Coco, Avant \/ Apr\u00e8s\">\n          <button type=\"button\" data-side=\"before\" aria-pressed=\"false\">Avant<\/button>\n          <button type=\"button\" data-side=\"after\" aria-pressed=\"true\">Apr\u00e8s<\/button>\n        <\/div>\n        <p class=\"ablbl\" aria-live=\"polite\">Mix\u00e9 et masteris\u00e9<\/p>\n        <div class=\"abplay\">\n          <button class=\"abp\" type=\"button\" aria-label=\"Lire Ch\u00e9rie Coco\" data-play=\"Lire Ch\u00e9rie Coco\" data-pause=\"Pause Ch\u00e9rie Coco\"><svg class=\"ico i-play\" aria-hidden=\"true\"><use href=\"#i-play\"\/><\/svg><svg class=\"ico i-pause\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 5h4v14H6zM14 5h4v14h-4z\"\/><\/svg><\/button>\n          <div class=\"abbar\"><input type=\"range\" min=\"0\" max=\"1000\" value=\"0\" step=\"1\" aria-label=\"Position dans la chanson, Ch\u00e9rie Coco\"><div class=\"abtime\"><span class=\"abcur\">0:00<\/span><span class=\"abtot\">0:50<\/span><\/div><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"abc rv\" style=\"--d:0.10s\" data-ab data-before=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/oso-lit-greed-before-hq.mp3\" data-after=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/oso-lit-greed-after-hq.mp3\" data-lbl-before=\"Enregistrement brut\" data-lbl-after=\"Mix\u00e9 et masteris\u00e9\">\n        <div><span class=\"num\">02<\/span><h3>Titre : Greed<\/h3><\/div>\n        <div class=\"abtog\" role=\"group\" aria-label=\"Greed, Avant \/ Apr\u00e8s\">\n          <button type=\"button\" data-side=\"before\" aria-pressed=\"false\">Avant<\/button>\n          <button type=\"button\" data-side=\"after\" aria-pressed=\"true\">Apr\u00e8s<\/button>\n        <\/div>\n        <p class=\"ablbl\" aria-live=\"polite\">Mix\u00e9 et masteris\u00e9<\/p>\n        <div class=\"abplay\">\n          <button class=\"abp\" type=\"button\" aria-label=\"Lire Greed\" data-play=\"Lire Greed\" data-pause=\"Pause Greed\"><svg class=\"ico i-play\" aria-hidden=\"true\"><use href=\"#i-play\"\/><\/svg><svg class=\"ico i-pause\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 5h4v14H6zM14 5h4v14h-4z\"\/><\/svg><\/button>\n          <div class=\"abbar\"><input type=\"range\" min=\"0\" max=\"1000\" value=\"0\" step=\"1\" aria-label=\"Position dans la chanson, Greed\"><div class=\"abtime\"><span class=\"abcur\">0:00<\/span><span class=\"abtot\">0:50<\/span><\/div><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"abc rv\" style=\"--d:0.20s\" data-ab data-before=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/oxi-danger-before-hq.mp3\" data-after=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/oxi-danger-after-hq.mp3\" data-lbl-before=\"Enregistrement brut\" data-lbl-after=\"Mix\u00e9 et masteris\u00e9\">\n        <div><span class=\"num\">03<\/span><h3>Titre : Danger<\/h3><\/div>\n        <div class=\"abtog\" role=\"group\" aria-label=\"Danger, Avant \/ Apr\u00e8s\">\n          <button type=\"button\" data-side=\"before\" aria-pressed=\"false\">Avant<\/button>\n          <button type=\"button\" data-side=\"after\" aria-pressed=\"true\">Apr\u00e8s<\/button>\n        <\/div>\n        <p class=\"ablbl\" aria-live=\"polite\">Mix\u00e9 et masteris\u00e9<\/p>\n        <div class=\"abplay\">\n          <button class=\"abp\" type=\"button\" aria-label=\"Lire Danger\" data-play=\"Lire Danger\" data-pause=\"Pause Danger\"><svg class=\"ico i-play\" aria-hidden=\"true\"><use href=\"#i-play\"\/><\/svg><svg class=\"ico i-pause\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 5h4v14H6zM14 5h4v14h-4z\"\/><\/svg><\/button>\n          <div class=\"abbar\"><input type=\"range\" min=\"0\" max=\"1000\" value=\"0\" step=\"1\" aria-label=\"Position dans la chanson, Danger\"><div class=\"abtime\"><span class=\"abcur\">0:00<\/span><span class=\"abtot\">0:50<\/span><\/div><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n    <p class=\"abnote\">Extraits d\u2019environ 50 secondes. \u00c9coutez au casque ou sur de bons haut-parleurs.<\/p>\n    <div class=\"abcta\"><a class=\"btn btn-green\" href=\"https:\/\/harmlessstudio.setmore.com\/\" data-hs-track=\"book-before-after\">R\u00e9server une s\u00e9ance<\/a><\/div>\n  <\/div>\n<\/section>\n\n<section id=\"services\">\n  <div class=\"wrap\">\n    <div class=\"sec-head rv\">\n      <p class=\"eyebrow\">Services<\/p>\n      <h2>Trois \u00e9tapes, un seul studio<\/h2>\n      <p>De la premi\u00e8re prise au mastering final, tout se passe au m\u00eame endroit, avec un ing\u00e9nieur du son \u00e0 vos c\u00f4t\u00e9s.<\/p>\n    <\/div>\n    <div class=\"cards3\">\n      <a class=\"svc rv\" href=\"#pricing\" style=\"--d:0s\">\n        <div class=\"ph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/recording-mic.jpg\" width=\"900\" height=\"1200\" loading=\"lazy\" alt=\"Microphone \u00e0 condensateur de studio sur suspension, dans la salle d\u2019enregistrement\"><h3>Enregistrement<\/h3><\/div>\n        <div class=\"bd\"><p>Enregistrez voix et instruments avec un ing\u00e9nieur du son qui dirige la s\u00e9ance.<\/p>\n          <ul><li>Ing\u00e9nieur du son avec vous pendant toute la s\u00e9ance<\/li><li>Votre enregistrement, pr\u00eat pour le mixage<\/li><li>Mixage et mastering inclus dans chaque tarif<\/li><\/ul>\n          <span class=\"more\">Voir les tarifs <svg class=\"ico\" aria-hidden=\"true\"><use href=\"#i-arrow\"\/><\/svg><\/span><\/div>\n      <\/a>\n      <a class=\"svc rv\" href=\"#pricing\" style=\"--d:.1s\">\n        <div class=\"ph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/mixing-engineer.jpg\" width=\"900\" height=\"1125\" loading=\"lazy\" alt=\"Ing\u00e9nieur du son avec casque d\u2019\u00e9coute, vu de dos, devant une table de mixage\"><h3>Mixage<\/h3><\/div>\n        <div class=\"bd\"><p>\u00c9quilibrez, fa\u00e7onnez et peaufinez vos pistes enregistr\u00e9es pour en faire un mix final.<\/p>\n          <ul><li>Mixage inclus avec chaque s\u00e9ance<\/li><li>R\u00e9alis\u00e9 par l\u2019ing\u00e9nieur du studio<\/li><li>Apportez votre projet, repartez avec un mix<\/li><\/ul>\n          <span class=\"more\">Voir les tarifs <svg class=\"ico\" aria-hidden=\"true\"><use href=\"#i-arrow\"\/><\/svg><\/span><\/div>\n      <\/a>\n      <a class=\"svc rv\" href=\"#pricing\" style=\"--d:.2s\">\n        <div class=\"ph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/mastering-console.jpg\" width=\"1200\" height=\"625\" loading=\"lazy\" alt=\"Gros plan sur les boutons d\u2019une console de mixage \u00e9clair\u00e9s en vert\"><h3>Mastering<\/h3><\/div>\n        <div class=\"bd\"><p>La touche finale, pour que votre titre sonne de fa\u00e7on uniforme partout o\u00f9 il est diffus\u00e9.<\/p>\n          <ul><li>Mastering inclus avec chaque s\u00e9ance<\/li><li>Appliqu\u00e9 \u00e0 votre mix final<\/li><li>Une seule r\u00e9servation couvre les trois \u00e9tapes<\/li><\/ul>\n          <span class=\"more\">Voir les tarifs <svg class=\"ico\" aria-hidden=\"true\"><use href=\"#i-arrow\"\/><\/svg><\/span><\/div>\n      <\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section id=\"pricing\" class=\"alt\">\n  <div class=\"wrap\">\n    <div class=\"sec-head center rv\">\n      <p class=\"eyebrow\">L\u2019offre<\/p>\n      <h2>Une chanson termin\u00e9e, tout inclus<\/h2>\n      <p>170 $ pour une s\u00e9ance de 2 heures vous donne une chanson termin\u00e9e, enregistr\u00e9e, mix\u00e9e et masteris\u00e9e, pr\u00eate \u00e0 sortir, tout inclus. Besoin de plus de temps? Les s\u00e9ances plus longues laissent de la place pour plus de chansons, si vous arrivez pr\u00e9par\u00e9, et le tarif \u00e0 l\u2019heure baisse.<\/p>\n    <\/div>\n    <div class=\"price\">\n      <div class=\"plan rv\" style=\"--d:0s\">\n        <h3>2 heures<\/h3>\n        <div class=\"amt\">170 $<\/div>\n        <p class=\"plan-sub\">Une chanson termin\u00e9e<\/p>\n        <ul><li>Une chanson termin\u00e9e, pr\u00eate \u00e0 sortir<\/li><li>Ing\u00e9nieur du son avec vous toute la s\u00e9ance<\/li><li>Enregistr\u00e9, mix\u00e9 et masteris\u00e9<\/li><li>Tout inclus, rien de plus \u00e0 payer<\/li><\/ul>\n        <a class=\"btn btn-white\" href=\"https:\/\/harmlessstudio.setmore.com\/book?step=time-slot&amp;products=s3453ebb35633bd5219733281c3a0ceff46b753c5&amp;type=service&amp;staff=SKIP&amp;staffSelected=false\" data-hs-track=\"book-plan-2h\">R\u00e9server 2 heures<\/a>\n      <\/div>\n      <div class=\"plan rv\" style=\"--d:.1s\">\n        <h3>3 heures<\/h3>\n        <div class=\"amt\">230 $<\/div>\n        <p class=\"plan-sub\">Plus de place pour cr\u00e9er<\/p>\n        <ul><li>Du temps pour une deuxi\u00e8me chanson si vous arrivez pr\u00e9par\u00e9<\/li><li>Environ 77 $ de l\u2019heure, vous \u00e9conomisez 25 $ par rapport \u00e0 2 heures<\/li><li>Ing\u00e9nieur du son avec vous toute la s\u00e9ance<\/li><li>Enregistr\u00e9, mix\u00e9 et masteris\u00e9<\/li><li>Tout inclus, rien de plus \u00e0 payer<\/li><\/ul>\n        <a class=\"btn btn-green\" href=\"https:\/\/harmlessstudio.setmore.com\/book?step=time-slot&amp;products=s42631b762616b70a6491845439f57bcfefef5f6f&amp;type=service&amp;staff=SKIP&amp;staffSelected=false\" data-hs-track=\"book-plan-3h\">R\u00e9server 3 heures<\/a>\n      <\/div>\n      <div class=\"plan rv\" style=\"--d:.2s\">\n        <h3>4 heures<\/h3>\n        <div class=\"amt\">300 $<\/div>\n        <p class=\"plan-sub\">Le plus de temps, le meilleur tarif<\/p>\n        <ul><li>Du temps pour plus de chansons si vous arrivez pr\u00e9par\u00e9<\/li><li>Environ 75 $ de l\u2019heure, vous \u00e9conomisez 40 $ par rapport \u00e0 2 heures<\/li><li>Le temps de peaufiner, de refaire et de bien faire<\/li><li>Ing\u00e9nieur du son avec vous toute la s\u00e9ance<\/li><li>Enregistr\u00e9, mix\u00e9 et masteris\u00e9<\/li><li>Tout inclus, rien de plus \u00e0 payer<\/li><\/ul>\n        <a class=\"btn btn-white\" href=\"https:\/\/harmlessstudio.setmore.com\/book?step=time-slot&amp;products=s940e0ec3b2f54ea9cc61712c48e345cdd61f030d&amp;type=service&amp;staff=SKIP&amp;staffSelected=false\" data-hs-track=\"book-plan-4h\">R\u00e9server 4 heures<\/a>\n      <\/div>\n    <\/div>\n    <p class=\"note pay\">Vous payez au studio, \u00e0 la fin de votre s\u00e9ance.<\/p>\n    <p class=\"note\">Vous h\u00e9sitez sur la dur\u00e9e qui convient \u00e0 votre projet? <a href=\"#contact\">\u00c9crivez-nous<\/a> et nous vous aiderons \u00e0 choisir.<\/p>\n  <\/div>\n<\/section>\n\n<section id=\"reviews\" class=\"alt\">\n  <div class=\"wrap\">\n    <div class=\"sec-head rv\">\n      <p class=\"eyebrow\">Preuves<\/p>\n      <h2>Ce que disent les artistes<\/h2>\n    <\/div>\n    <div class=\"proof\">\n      <div class=\"gbadge rv\">\n        <span class=\"stars\" aria-hidden=\"true\"><svg class=\"ico\"><use href=\"#i-star\"\/><\/svg><svg class=\"ico\"><use href=\"#i-star\"\/><\/svg><svg class=\"ico\"><use href=\"#i-star\"\/><\/svg><svg class=\"ico\"><use href=\"#i-star\"\/><\/svg><svg class=\"ico\"><use href=\"#i-star\"\/><\/svg><\/span>\n        <div class=\"big\">5,0<\/div>\n        <p>sur 60 avis Google<\/p>\n        <a class=\"btn btn-ghost btn-sm\" href=\"https:\/\/www.google.com\/maps\/search\/?api=1&amp;query=Harmless+Studio+245+Des+Laurentides+Blvd+Laval+QC\" target=\"_blank\" rel=\"noopener\">Lire les avis<\/a>\n      <\/div>\n      <div class=\"quotes\">\n        <figure class=\"quote rv\" style=\"--d:0.0s\"><blockquote><p>&ldquo;Je travaille avec DMAZ et Harmless depuis 4 ans. Le meilleur studio de production et de d\u00e9veloppement d\u2019artistes \u00e0 Laval et \u00e0 Montr\u00e9al.&rdquo;<\/p><span class=\"tr\">Traduit de l\u2019anglais.<\/span><\/blockquote>\n          <figcaption><b>Daniel Saad<\/b><span>Artiste rap<\/span><\/figcaption><\/figure>\n        <figure class=\"quote rv\" style=\"--d:0.1s\"><blockquote><p>&ldquo;J\u2019ai ador\u00e9 mon exp\u00e9rience! Meilleur studio et meilleur producteur, merci Dmaz!&rdquo;<\/p><span class=\"tr\">Traduit de l\u2019anglais.<\/span><\/blockquote>\n          <figcaption><b>Justina Hanna<\/b><span>Chanteuse R&amp;B<\/span><\/figcaption><\/figure>\n        <figure class=\"quote rv\" style=\"--d:0.2s\"><blockquote><p>&ldquo;C\u2019\u00e9tait propre, chaleureux, j\u2019ai aim\u00e9 la facilitation de l\u2019\u00e9quipe, pour de vrai 10\/10 sur le produit final&rdquo;<\/p><\/blockquote>\n          <figcaption><b>Serge Granger<\/b><span>Artiste<\/span><\/figcaption><\/figure>\n      <\/div>\n    <\/div>\n    <div class=\"stats rv\">\n      <div class=\"stat\"><div class=\"n\">14<i>+<\/i><\/div><div class=\"l\">Ann\u00e9es d\u2019exp\u00e9rience<\/div><\/div>\n      <div class=\"stat\"><div class=\"n\">800<i>+<\/i><\/div><div class=\"l\">Artistes enregistr\u00e9s<\/div><\/div>\n      <div class=\"stat\"><div class=\"n\">3\u202f000<i>+<\/i><\/div><div class=\"l\">Mixages livr\u00e9s<\/div><\/div>\n      <div class=\"stat\"><div class=\"n\">10\u202f000<i>+<\/i><\/div><div class=\"l\">Heures d\u2019ing\u00e9nierie<\/div><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section id=\"how\">\n  <div class=\"wrap\">\n    <div class=\"sec-head rv\">\n      <p class=\"eyebrow\">D\u00e9marche<\/p>\n      <h2>Comment \u00e7a marche<\/h2>\n    <\/div>\n    <div class=\"steps\">\n      <div class=\"step rv\" style=\"--d:0s\"><div class=\"no\">\u00c9tape 1<\/div><h3>R\u00e9servez<\/h3><p>Choisissez la dur\u00e9e de la s\u00e9ance et une heure sur notre page de r\u00e9servation. Rendez-vous requis.<\/p><\/div>\n      <div class=\"step rv\" style=\"--d:.1s\"><div class=\"no\">\u00c9tape 2<\/div><h3>Enregistrez<\/h3><p>Venez au studio \u00e0 Laval et enregistrez avec votre ing\u00e9nieur du son. Vous payez au studio, \u00e0 la fin de la s\u00e9ance.<\/p><\/div>\n      <div class=\"step rv\" style=\"--d:.2s\"><div class=\"no\">\u00c9tape 3<\/div><h3>Recevez votre mix<\/h3><p>Votre tarif comprend le mixage et le mastering. Votre chanson termin\u00e9e est g\u00e9n\u00e9ralement pr\u00eate en 3 \u00e0 5 jours et vous est livr\u00e9e.<\/p><\/div>\n    <\/div>\n    <p class=\"note rv\"><a class=\"btn btn-green\" href=\"https:\/\/harmlessstudio.setmore.com\/\" data-hs-track=\"book-how\">R\u00e9server une s\u00e9ance<\/a><\/p>\n  <\/div>\n<\/section>\n\n<section id=\"faq\" class=\"alt\">\n  <div class=\"wrap\">\n    <div class=\"sec-head center rv\">\n      <p class=\"eyebrow\">FAQ<\/p>\n      <h2>Bon \u00e0 savoir<\/h2>\n    <\/div>\n    <div class=\"faq rv\">\n      <details><summary>Qu\u2019est-ce qui est inclus dans une s\u00e9ance?<\/summary><div class=\"a\">Chaque tarif comprend un ing\u00e9nieur du son, ainsi que le mixage et le mastering.<\/div><\/details>\n      <details><summary>Comment payer?<\/summary><div class=\"a\">Vous payez au studio, \u00e0 la fin de votre s\u00e9ance. Aucun paiement n\u2019est demand\u00e9 lors de la r\u00e9servation en ligne.<\/div><\/details>\n      <details><summary>Que dois-je apporter?<\/summary><div class=\"a\">Apportez votre instrumental si vous en avez un, vos paroles et les pistes de r\u00e9f\u00e9rence que vous aimez. Vous ne savez pas ce qu\u2019il vous faut? \u00c9crivez-nous avant de r\u00e9server.<\/div><\/details>\n      <details><summary>Puis-je annuler ou reporter ma s\u00e9ance?<\/summary><div class=\"a\">Oui. Vous pouvez annuler ou reporter votre s\u00e9ance jusqu\u2019\u00e0 24 heures \u00e0 l\u2019avance. Pr\u00e9venez-nous simplement par t\u00e9l\u00e9phone ou par courriel, et nous la d\u00e9placerons ou l\u2019annulerons sans tracas.<\/div><\/details>\n      <details><summary>En combien de temps vais-je recevoir mon mix?<\/summary><div class=\"a\">Le mixage et le mastering sont inclus avec votre s\u00e9ance. Votre chanson termin\u00e9e est g\u00e9n\u00e9ralement pr\u00eate en 3 \u00e0 5 jours.<\/div><\/details>\n      <details><summary>Travaillez-vous en anglais et en fran\u00e7ais?<\/summary><div class=\"a\">Oui. Les s\u00e9ances sont offertes en anglais et en fran\u00e7ais, et vous pouvez nous \u00e9crire dans l\u2019une ou l\u2019autre langue.<\/div><\/details>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"academy\" id=\"academy\">\n  <div class=\"bgimg\" aria-hidden=\"true\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/academy-tunnel.jpg\" alt=\"\" loading=\"lazy\" width=\"1600\" height=\"853\"><\/div>\n  <div class=\"wrap\">\n    <div class=\"in rv\">\n      <p class=\"eyebrow\">Harmless Academy<\/p>\n      <h2>Apprenez l\u2019ing\u00e9nierie sonore<\/h2>\n      <p>Apprenez \u00e0 devenir un producteur professionnel et un ing\u00e9nieur du son. Notre programme est con\u00e7u pour vous donner une base de connaissances approfondie qui changera \u00e0 jamais votre perception de la musique.<\/p>\n      <a class=\"btn btn-white\" href=\"https:\/\/harmless-studio.com\/fr\/academy\/\">D\u00e9couvrir l\u2019Acad\u00e9mie<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section id=\"contact\">\n  <div class=\"wrap\">\n    <div class=\"sec-head rv\">\n      <p class=\"eyebrow\">Contact<\/p>\n      <h2>Des questions? \u00c9crivez-nous<\/h2>\n      <p>Vous h\u00e9sitez sur la s\u00e9ance qui convient, ou vous voulez savoir comment vous pr\u00e9parer? Envoyez-nous un message et nous vous r\u00e9pondrons par courriel. Les s\u00e9ances se r\u00e9servent en ligne.<\/p>\n    <\/div>\n    <div class=\"contact-grid\">\n      <div class=\"info rv\">\n        <div class=\"row\"><span class=\"ic\"><svg class=\"ico\" aria-hidden=\"true\"><use href=\"#i-pin\"\/><\/svg><\/span>\n          <div><h3>Adresse<\/h3><address>Harmless Studio<br>245 Des Laurentides Blvd.<br>Laval (QC), Canada H7G 2T7<\/address>\n          <a class=\"dir\" href=\"https:\/\/www.google.com\/maps\/dir\/?api=1&amp;destination=245+Des+Laurentides+Blvd+Laval+QC+H7G+2T7\" target=\"_blank\" rel=\"noopener\">Ouvrir l\u2019emplacement dans Maps<\/a>\n          <p class=\"dir-note\">S\u00e9ances sur rendez-vous seulement.<\/p><\/div><\/div>\n        <div class=\"row\"><span class=\"ic\"><svg class=\"ico\" aria-hidden=\"true\"><use href=\"#i-clock\"\/><\/svg><\/span>\n          <div><h3>Heures d\u2019ouverture<\/h3><p>Lundi au dimanche<br>10 h \u00e0 minuit<\/p><p style=\"color:var(--muted);font-size:.9375rem\">Sur rendez-vous, veuillez r\u00e9server \u00e0 l\u2019avance.<\/p><\/div><\/div>\n        <div class=\"row\"><span class=\"ic\"><svg class=\"ico\" aria-hidden=\"true\"><use href=\"#i-phone\"\/><\/svg><\/span>\n          <div><h3>T\u00e9l\u00e9phone<\/h3><a href=\"tel:+15146325922\">+1 514 632 5922<\/a><\/div><\/div>\n        <div class=\"row\"><span class=\"ic\"><svg class=\"ico\" aria-hidden=\"true\"><use href=\"#i-mail\"\/><\/svg><\/span>\n          <div><h3>Courriel<\/h3><a href=\"mailto:harmless.mtl@gmail.com\">harmless.mtl@gmail.com<\/a><\/div><\/div>\n      <\/div>\n      <form class=\"contact rv\" id=\"contact-form\" action=\"https:\/\/harmless-studio.com\/wp-admin\/admin-ajax.php\" method=\"post\" novalidate>\n        <input type=\"hidden\" name=\"action\" value=\"hs_contact_form\">\n        <input type=\"hidden\" name=\"lang\" value=\"fr\">\n        <div class=\"hs-hp\" aria-hidden=\"true\"><label for=\"f-web\">Site web<\/label><input id=\"f-web\" name=\"hs_website\" type=\"text\" tabindex=\"-1\" autocomplete=\"off\" value=\"\"><\/div>\n        <div class=\"f2\">\n          <div class=\"fld\"><label for=\"f-name\">Nom<\/label><input id=\"f-name\" name=\"name\" type=\"text\" autocomplete=\"name\" required><\/div>\n          <div class=\"fld\"><label for=\"f-email\">Courriel<\/label><input id=\"f-email\" name=\"email\" type=\"email\" autocomplete=\"email\" required><\/div>\n        <\/div>\n        <div class=\"fld\"><label for=\"f-subject\">Sujet<\/label><input id=\"f-subject\" name=\"subject\" type=\"text\"><\/div>\n        <div class=\"fld\"><label for=\"f-msg\">Message<\/label><textarea id=\"f-msg\" name=\"message\" required><\/textarea><\/div>\n        <div><button class=\"btn btn-green\" type=\"submit\">Envoyer le message<\/button><\/div>\n        <p class=\"form-status\" id=\"form-status\" role=\"status\" aria-live=\"polite\"><\/p>\n      <\/form>\n    <\/div>\n    <div class=\"map rv\">\n      <iframe title=\"Carte montrant Harmless Studio, 245 boul. Des Laurentides, Laval\" loading=\"lazy\" referrerpolicy=\"no-referrer-when-downgrade\"\n        src=\"https:\/\/www.google.com\/maps?q=245+Des+Laurentides+Blvd,+Laval,+QC+H7G+2T7&amp;output=embed\"><\/iframe>\n    <\/div>\n  <\/div>\n<\/section>\n\n<\/main>\n\n<footer>\n  <div class=\"wrap\">\n    <div class=\"fgrid\">\n      <div><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/harmless-studio.com\/wp-content\/uploads\/harmless-logo.png\" width=\"110\" height=\"46\" alt=\"Harmless Studio\" loading=\"lazy\" style=\"height:46px;width:auto;margin-bottom:14px\"><p>Enregistrement, mixage et mastering \u00e0 Laval, \u00e0 quelques minutes de Montr\u00e9al.<\/p><\/div>\n      <div><h3>Adresse<\/h3><address>245 Des Laurentides Blvd.<br>Laval (QC), Canada H7G 2T7<\/address><\/div>\n      <div><h3>Heures d\u2019ouverture<\/h3><p>Lundi au dimanche<br>10 h \u00e0 minuit<\/p><\/div>\n      <div><h3>Contact<\/h3><ul><li><a href=\"tel:+15146325922\">+1 514 632 5922<\/a><\/li><li><a href=\"mailto:harmless.mtl@gmail.com\">harmless.mtl@gmail.com<\/a><\/li><li><a href=\"https:\/\/harmless-studio.com\/fr\/academy\/\">Harmless Academy<\/a><\/li><\/ul><\/div>\n    <\/div>\n    <div class=\"legal\"><span>&copy; 2026 Harmless Studio. Tous droits r\u00e9serv\u00e9s.<\/span><span>Laval, \u00e0 quelques minutes de Montr\u00e9al<\/span><\/div>\n  <\/div>\n<\/footer>\n\n<a id=\"hs-floating-booking-cta\" href=\"https:\/\/harmlessstudio.setmore.com\/\" data-hs-track=\"book-session\" aria-hidden=\"true\" tabindex=\"-1\">R\u00e9server une s\u00e9ance <svg class=\"ico\" aria-hidden=\"true\"><use href=\"#i-arrow\"\/><\/svg><\/a><\/div>\n\n<script>\n(function () {\n  'use strict';\n  document.documentElement.classList.add('js');\n  if (!\/^fr\/i.test(document.documentElement.lang || '')) { document.documentElement.setAttribute('lang', 'fr-CA'); }\n  var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n  \/* mobile menu *\/\n  var mb = document.getElementById('menu-btn'), nav = document.getElementById('nav');\n  function setMenu(o){ nav.classList.toggle('open', o); mb.setAttribute('aria-expanded', o ? 'true' : 'false'); }\n  mb.addEventListener('click', function(){ setMenu(!nav.classList.contains('open')); });\n  nav.addEventListener('click', function(e){ if (e.target.closest('a')) { setMenu(false); } });\n  document.addEventListener('keydown', function(e){ if (e.key === 'Escape') { setMenu(false); } });\n\n  \/* scroll reveal *\/\n  var rv = [].slice.call(document.querySelectorAll('.rv'));\n  if (reduce || !('IntersectionObserver' in window)) { rv.forEach(function(el){ el.classList.add('in'); }); }\n  else {\n    var io = new IntersectionObserver(function(es){ es.forEach(function(en){ if (en.isIntersecting) { en.target.classList.add('in'); io.unobserve(en.target); } }); }, { rootMargin: '0px 0px -8% 0px', threshold: 0.05 });\n    rv.forEach(function(el){ io.observe(el); });\n  }\n\n  \/* hero background drifts slightly with scroll *\/\n  var par = document.querySelector('[data-parallax]'), tick = false;\n  if (par && !reduce) {\n    window.addEventListener('scroll', function(){\n      if (tick) { return; } tick = true;\n      requestAnimationFrame(function(){ var y = Math.min(window.scrollY, 900); par.style.transform = 'translate3d(0,' + (y * 0.12).toFixed(1) + 'px,0)'; tick = false; });\n    }, { passive: true });\n  }\n\n  \/* sticky pill (v1.2.0): visible only after the hero, and hidden whenever another Book button, the contact section or the footer is in view *\/\n  var pill = document.getElementById('hs-floating-booking-cta'), hero = document.getElementById('top'), form = document.getElementById('contact-form');\n  var heroSeen = true, contactSeen = false, footSeen = false, bookSeen = {}, bookCount = 0;\n  function pillUpdate(){\n    var show = !heroSeen && !contactSeen && !footSeen && bookCount === 0;\n    pill.classList.toggle('is-visible', show);\n    pill.setAttribute('aria-hidden', show ? 'false' : 'true');\n    pill.tabIndex = show ? 0 : -1;\n  }\n  if ('IntersectionObserver' in window) {\n    new IntersectionObserver(function(es){ heroSeen = es[es.length - 1].isIntersecting; pillUpdate(); }, { threshold: 0, rootMargin: '-80px 0px 0px 0px' }).observe(hero);\n    var contactEl = document.getElementById('contact'), footEl = document.querySelector('#hs-home footer');\n    if (contactEl) { new IntersectionObserver(function(es){ contactSeen = es[es.length - 1].isIntersecting; pillUpdate(); }, { threshold: 0 }).observe(contactEl); }\n    if (footEl) { new IntersectionObserver(function(es){ footSeen = es[es.length - 1].isIntersecting; pillUpdate(); }, { threshold: 0 }).observe(footEl); }\n    \/\/ every other Book button: slightly generous margins so the pill steps aside just before a button arrives\n    var bookIO = new IntersectionObserver(function(es){\n      es.forEach(function(en){\n        var k = en.target.__hsBk, was = !!bookSeen[k];\n        if (en.isIntersecting && !was) { bookSeen[k] = 1; bookCount++; }\n        else if (!en.isIntersecting && was) { delete bookSeen[k]; bookCount--; }\n      });\n      pillUpdate();\n    }, { threshold: 0, rootMargin: '40px 0px 80px 0px' });\n    [].forEach.call(document.querySelectorAll('#hs-home a[data-hs-track^=\"book\"], #hs-home .hdr-book, #hs-home .hero .cta a.btn-green'), function(b, i){\n      if (b === pill) { return; }\n      b.__hsBk = i; bookIO.observe(b);\n    });\n  } else {\n    heroSeen = false; pillUpdate();\n  }\n\n  \/* work samples: fills each placeholder slot from its data attributes *\/\n  [].forEach.call(document.querySelectorAll('[data-sample]'), function(card){\n    var slot = card.querySelector('.sample-slot'), ab = card.querySelector('.ab');\n    var embed = card.getAttribute('data-embed-url'), audio = card.getAttribute('data-audio-src');\n    var before = card.getAttribute('data-before-src'), after = card.getAttribute('data-after-src');\n    var title = (card.querySelector('h3') || {}).textContent || 'Sample';\n    if (embed) {\n      var f = document.createElement('iframe'); f.src = embed; f.loading = 'lazy'; f.title = title; f.allow = 'autoplay';\n      slot.replaceChildren(f);\n    } else if (audio) {\n      var a = document.createElement('audio'); a.controls = true; a.preload = 'none'; a.src = audio; a.setAttribute('aria-label', title);\n      slot.replaceChildren(a);\n    }\n    if (before && after && ab) {\n      var player = document.createElement('audio'); player.controls = true; player.preload = 'none'; player.src = after; player.setAttribute('aria-label', title);\n      var bB = ab.querySelector('[data-ab=\"before\"]'), bA = ab.querySelector('[data-ab=\"after\"]');\n      bB.disabled = false; bA.disabled = false; bA.setAttribute('aria-pressed', 'true');\n      function sw(which, btn, other){\n        var t = player.currentTime, playing = !player.paused;\n        player.src = which; player.currentTime = t || 0;\n        btn.setAttribute('aria-pressed', 'true'); other.setAttribute('aria-pressed', 'false');\n        if (playing) { player.play(); }\n      }\n      bB.addEventListener('click', function(){ sw(before, bB, bA); });\n      bA.addEventListener('click', function(){ sw(after, bA, bB); });\n      slot.replaceChildren(player);\n    }\n  });\n\n  \/* harmless sessions: a video file is only requested when its card is tapped; starting one resets the others *\/\n  (function(){\n    var cards = [].slice.call(document.querySelectorAll('[data-vcard]'));\n    if (!cards.length) { return; }\n    function toBlobUrl(src){\n      if (src.indexOf('data:') !== 0) { return src; }\n      var i = src.indexOf(','), mime = src.slice(5, src.indexOf(';')), bin = atob(src.slice(i + 1)), n = bin.length, u = new Uint8Array(n);\n      for (var k = 0; k < n; k++) { u[k] = bin.charCodeAt(k); }\n      return URL.createObjectURL(new Blob([u], { type: mime }));\n    }\n    function reset(card){\n      var v = card.querySelector('video');\n      if (!v) { return; }\n      try { v.pause(); } catch (e) {}\n      v.removeAttribute('src'); try { v.load(); } catch (e) {}\n      if (card._url && card._url.indexOf('blob:') === 0) { URL.revokeObjectURL(card._url); }\n      card._url = null; v.remove();\n      card.querySelector('.vplay').hidden = false;\n    }\n    cards.forEach(function(card){\n      var btn = card.querySelector('.vplay'), box = card.querySelector('.vbox');\n      btn.addEventListener('click', function(){\n        cards.forEach(function(c){ if (c !== card) { reset(c); } });\n        var v = document.createElement('video');\n        v.controls = true; v.playsInline = true; v.setAttribute('playsinline', ''); v.preload = 'auto';\n        v.setAttribute('controlslist', 'nodownload noremoteplayback');\n        v.poster = card.getAttribute('data-poster') || '';\n        v.setAttribute('aria-label', btn.getAttribute('data-label') || '');\n        card._url = toBlobUrl(card.getAttribute('data-src'));\n        v.src = card._url;\n        box.appendChild(v); btn.hidden = true;\n        v.addEventListener('play', function(){ cards.forEach(function(c){ if (c !== card) { reset(c); } }); });\n        var p = v.play(); if (p && p.catch) { p.catch(function(){ \/* controls stay visible so the visitor can press play *\/ }); }\n        v.focus();\n      });\n    });\n  })();\n\n  \/* before \/ after players: audio is requested only on the first tap; both versions run in sync and the toggle swaps which one is audible *\/\n  (function(){\n    var cards = [].slice.call(document.querySelectorAll('[data-ab]'));\n    if (!cards.length) { return; }\n    function blobUrl(src){\n      if (src.indexOf('data:') !== 0) { return src; }\n      var i = src.indexOf(','), mime = src.slice(5, src.indexOf(';')), bin = atob(src.slice(i + 1)), n = bin.length, u = new Uint8Array(n);\n      for (var k = 0; k < n; k++) { u[k] = bin.charCodeAt(k); }\n      return URL.createObjectURL(new Blob([u], { type: mime }));\n    }\n    function fmt(t){ t = Math.max(0, Math.floor(t || 0)); return Math.floor(t \/ 60) + ':' + ('0' + (t % 60)).slice(-2); }\n    var players = cards.map(function(card){\n      var P = { card: card, side: 'after', a: null, ready: false, raf: 0 };\n      var play = card.querySelector('.abp'), seek = card.querySelector('input[type=range]'), cur = card.querySelector('.abcur'), tot = card.querySelector('.abtot');\n      var btns = [].slice.call(card.querySelectorAll('.abtog button')), lbl = card.querySelector('.ablbl');\n      var playLabel = play.getAttribute('data-play'), pauseLabel = play.getAttribute('data-pause');\n      function act(){ return P.a && P.a[P.side]; }\n      function oth(){ return P.a && P.a[P.side === 'after' ? 'before' : 'after']; }\n      function paint(){\n        var a = act(), d = (a && a.duration) || 0, t = a ? a.currentTime : 0;\n        cur.textContent = fmt(t);\n        if (d) { var f = Math.min(1, t \/ d); seek.value = Math.round(f * 1000); seek.style.setProperty('--p', (f * 100).toFixed(1) + '%'); tot.textContent = fmt(d); }\n      }\n      function loop(){\n        paint();\n        var a = act(), o = oth();\n        if (a && o && !a.paused && Math.abs(o.currentTime - a.currentTime) > 0.1) { o.currentTime = a.currentTime; }\n        P.raf = requestAnimationFrame(loop);\n      }\n      function setUi(on){\n        card.classList.toggle('is-playing', on); card.classList.toggle('is-on', on || card.classList.contains('is-on'));\n        play.setAttribute('aria-label', on ? pauseLabel : playLabel);\n        cancelAnimationFrame(P.raf); if (on) { loop(); } else { paint(); }\n      }\n      function setSide(side){\n        var a0 = act();\n        P.side = side; card.setAttribute('data-side', side);\n        btns.forEach(function(b){ b.setAttribute('aria-pressed', b.getAttribute('data-side') === side ? 'true' : 'false'); });\n        lbl.textContent = card.getAttribute(side === 'after' ? 'data-lbl-after' : 'data-lbl-before');\n        if (P.a) {\n          var t = a0 ? a0.currentTime : 0;\n          P.a.before.currentTime = t; P.a.after.currentTime = t;\n          P.a.before.muted = side !== 'before'; P.a.after.muted = side !== 'after';\n          paint();\n        }\n      }\n      function load(){\n        if (P.a) { return; }\n        var mk = function(src){ var e = new Audio(); e.preload = 'auto'; e.src = blobUrl(src); return e; };\n        P.a = { before: mk(card.getAttribute('data-before')), after: mk(card.getAttribute('data-after')) };\n        P.a.before.muted = P.side !== 'before'; P.a.after.muted = P.side !== 'after';\n        P.a.after.addEventListener('loadedmetadata', paint);\n        P.a.before.addEventListener('loadedmetadata', paint);\n        var ended = function(){ P.a.before.pause(); P.a.after.pause(); P.a.before.currentTime = 0; P.a.after.currentTime = 0; setUi(false); };\n        P.a.before.addEventListener('ended', ended); P.a.after.addEventListener('ended', ended);\n      }\n      P.pause = function(){ if (P.a) { P.a.before.pause(); P.a.after.pause(); } setUi(false); };\n      play.addEventListener('click', function(){\n        if (P.a && !act().paused) { P.pause(); return; }\n        players.forEach(function(o){ if (o !== P) { o.pause(); } });\n        load();\n        var t = act().currentTime;\n        P.a.before.currentTime = t; P.a.after.currentTime = t;\n        P.a.before.muted = P.side !== 'before'; P.a.after.muted = P.side !== 'after';\n        var pa = P.a.before.play(), pb = P.a.after.play();\n        [pa, pb].forEach(function(p){ if (p && p.catch) { p.catch(function(){ P.pause(); }); } });\n        setUi(true);\n      });\n      btns.forEach(function(b){ b.addEventListener('click', function(){ setSide(b.getAttribute('data-side')); }); });\n      seek.addEventListener('input', function(){\n        load();\n        var d = act().duration; if (!d) { return; }\n        var t = (seek.value \/ 1000) * d; P.a.before.currentTime = t; P.a.after.currentTime = t; paint();\n      });\n      setSide('after');\n      return P;\n    });\n  })();\n\n  \/* contact form: posts to WordPress (admin-ajax.php, action hs_contact_form, see hs-contact-handler.php) *\/\n  (function(){\n    var statusEl = document.getElementById('form-status');\n    var home = document.getElementById('hs-home');\n    var FR = \/^fr\/i.test((home && home.getAttribute('data-hs-lang')) || document.documentElement.lang || '');\n    var T = FR ? {\n      sending: 'Envoi en cours...',\n      ok: 'Merci! Votre message a bien \u00e9t\u00e9 envoy\u00e9. Nous vous r\u00e9pondrons par courriel.',\n      invalid: 'Veuillez entrer votre nom, une adresse courriel valide et votre message.',\n      rate: 'Vous avez envoy\u00e9 plusieurs messages r\u00e9cemment. Veuillez r\u00e9essayer plus tard ou nous \u00e9crire \u00e0 harmless.mtl@gmail.com.',\n      err: 'D\u00e9sol\u00e9, votre message n\u2019a pas pu \u00eatre envoy\u00e9. Veuillez r\u00e9essayer ou nous \u00e9crire \u00e0 harmless.mtl@gmail.com.'\n    } : {\n      sending: 'Sending...',\n      ok: 'Thank you! Your message has been sent. We will reply by email.',\n      invalid: 'Please enter your name, a valid email address and your message.',\n      rate: 'You have sent several messages recently. Please try again later or email us at harmless.mtl@gmail.com.',\n      err: 'Sorry, your message could not be sent. Please try again or email us at harmless.mtl@gmail.com.'\n    };\n    var btn = form.querySelector('button[type=submit]'), busy = false;\n    var fields = ['f-name', 'f-email', 'f-msg'].map(function(id){ return document.getElementById(id); });\n    function say(msg, isErr){\n      statusEl.textContent = msg;\n      statusEl.classList.toggle('is-error', !!isErr);\n      statusEl.setAttribute('role', isErr ? 'alert' : 'status');\n    }\n    function endpoint(){\n      var url = form.getAttribute('action') || '';\n      try {                                   \/\/ stay on the same host (www or not) so the request is never cross-origin\n        var u = new URL(url, location.href);\n        if (\/(^|\\.)harmless-studio\\.com$\/i.test(location.hostname)) { u.hostname = location.hostname; }\n        return u.toString();\n      } catch (e) { return url; }\n    }\n    form.addEventListener('submit', function(e){\n      e.preventDefault();\n      if (busy) { return; }\n      var bad = fields.filter(function(f){\n        var v = (f.value || '').trim();\n        var okv = f.type === 'email' ? \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/.test(v) : v.length > 0;\n        f.setAttribute('aria-invalid', okv ? 'false' : 'true');\n        return !okv;\n      });\n      if (bad.length) { say(T.invalid, true); bad[0].focus(); return; }\n      var fd = new FormData(form);\n      fd.set('action', 'hs_contact_form');\n      fd.set('lang', FR ? 'fr' : 'en');\n      fd.set('page', location.href);\n      busy = true; btn.disabled = true; form.setAttribute('aria-busy', 'true'); say(T.sending, false);\n      fetch(endpoint(), { method: 'POST', body: fd, credentials: 'same-origin' })\n        .then(function(r){ return r.json().then(function(j){ return { ok: r.ok, j: j }; }, function(){ return { ok: false, j: null }; }); })\n        .then(function(res){\n          if (res.ok && res.j && res.j.success) { form.reset(); say(T.ok, false); }\n          else if (res.j && res.j.data && res.j.data.code === 'rate_limited') { say(T.rate, true); }\n          else { say(T.err, true); }\n        })\n        .catch(function(){ say(T.err, true); })\n        .then(function(){ busy = false; btn.disabled = false; form.removeAttribute('aria-busy'); });\n    });\n  })();\n})();\n<\/script>\n\n<!-- ===== Setmore booking pop-up (unchanged apart from: language read from #hs-home, PROD host guard) ===== -->\n<!-- Harmless Studio: Setmore booking pop-up (drop-in snippet). See INSTALL.md.\n     Turns links to harmlessstudio.setmore.com into an on-page pop-up and counts the\n     existing Google Ads \"Book Now\" conversion once per click.\n     If this script does not run, every Book link works exactly as before. -->\n<style id=\"hs-sm-style\">\n#hs-sm-root{position:fixed;inset:0;z-index:2147483000;display:flex;visibility:hidden;pointer-events:none;align-items:center;justify-content:center;\n  background:rgba(0,0,0,.78);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);\n  font-family:inherit;color:#fff;opacity:0;transition:opacity .2s ease}\n#hs-sm-root.hs-sm-open{visibility:visible;pointer-events:auto}\n#hs-sm-root.hs-sm-show{opacity:1}\n#hs-sm-root *{box-sizing:border-box}\n#hs-sm-root .hs-sm-panel{position:relative;display:flex;flex-direction:column;background:#0b0b0b;\n  width:min(960px,calc(100vw - 48px));height:calc(100vh - 48px);height:calc(var(--hs-sm-vh,1vh) * 100 - 48px);\n  border:1px solid rgba(255,255,255,.14);border-radius:14px;overflow:hidden;\n  box-shadow:0 20px 60px rgba(0,0,0,.6);transform:translateY(12px);transition:transform .2s ease}\n#hs-sm-root.hs-sm-show .hs-sm-panel{transform:none}\n#hs-sm-root .hs-sm-bar{position:relative;z-index:5;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;\n  height:54px;padding:0 8px 0 18px;background:#0b0b0b;border-bottom:1px solid rgba(255,255,255,.12)}\n#hs-sm-root .hs-sm-title{font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:#fff}\n#hs-sm-root .hs-sm-close{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:center;\n  width:44px;height:44px;border-radius:50%;cursor:pointer;color:#fff;font-size:30px;line-height:1;\n  font-family:Arial,Helvetica,sans-serif;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,.12)}\n#hs-sm-root .hs-sm-close:hover,#hs-sm-root .hs-sm-close:focus-visible{background:rgba(255,255,255,.16);outline:none}\n#hs-sm-root .hs-sm-close:focus-visible{box-shadow:0 0 0 2px #fff}\n#hs-sm-root .hs-sm-body{position:relative;flex:1 1 auto;min-height:0;background:#0b0b0b}\n#hs-sm-root iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff;opacity:0;transition:opacity .25s ease}\n#hs-sm-root.hs-sm-loaded iframe{opacity:1}\n#hs-sm-root .hs-sm-loading{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;\n  justify-content:center;gap:16px;background:#0b0b0b;color:#cfcfcf;font-size:14px;letter-spacing:.5px;transition:opacity .25s ease}\n#hs-sm-root.hs-sm-loaded .hs-sm-loading{opacity:0;pointer-events:none}\n#hs-sm-root .hs-sm-spin{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.2);\n  border-top-color:#fff;animation:hs-sm-rot .8s linear infinite}\n@keyframes hs-sm-rot{to{transform:rotate(360deg)}}\n#hs-sm-root .hs-sm-fallback{display:none;flex-direction:column;align-items:center;gap:14px;text-align:center;padding:0 24px}\n#hs-sm-root.hs-sm-slow:not(.hs-sm-loaded) .hs-sm-fallback{display:flex}\n#hs-sm-root.hs-sm-slow:not(.hs-sm-loaded) .hs-sm-spin,#hs-sm-root.hs-sm-slow:not(.hs-sm-loaded) .hs-sm-msg{display:none}\n#hs-sm-root .hs-sm-fallback a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 28px;\n  border-radius:28px;background:#fff;color:#000;text-decoration:none;font-weight:700;font-size:13px;letter-spacing:1.5px;\n  text-transform:uppercase}\n#hs-sm-root .hs-sm-fallback p{margin:0;color:#cfcfcf;font-size:14px;line-height:1.5}\n@media (max-width:640px){\n  #hs-sm-root{background:#0b0b0b;align-items:flex-start}\n  #hs-sm-root .hs-sm-panel{width:100%;height:100%;border:0;border-radius:0;box-shadow:none;transform:none}\n  #hs-sm-root .hs-sm-bar{height:calc(56px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);padding-right:calc(8px + env(safe-area-inset-right,0px))}\n  #hs-sm-root .hs-sm-close{width:48px;height:48px}\n}\n@supports (height:100dvh){@media (max-width:640px){#hs-sm-root{height:100dvh;bottom:auto}}}\nhtml.hs-sm-lock,html.hs-sm-lock body{overflow:hidden !important}\nbody.hs-sm-lock{position:fixed !important;left:0;right:0;width:100%}\n@media (prefers-reduced-motion:reduce){#hs-sm-root,#hs-sm-root .hs-sm-panel,#hs-sm-root iframe{transition:none}#hs-sm-root .hs-sm-spin{animation-duration:2s}}\n<\/style>\n<script id=\"hs-sm-script\">\n(function () {\n  'use strict';\n  if (window.__hsSetmorePopup) { return; }          \/\/ never install twice\n  window.__hsSetmorePopup = true;\n\n  var HOST = 'harmlessstudio.setmore.com';\n  var ADS_SEND_TO = 'AW-608191338\/uwqMCNuZzMwcEOqGgaIC';   \/\/ Ads action \"TechSol - Book Now home page 97625\"\n  var SLOW_MS = 6000;\n  var HOME = document.getElementById('hs-home');\n  var FR = \/^fr\/i.test((HOME && HOME.getAttribute('data-hs-lang')) || document.documentElement.lang || '');\n  \/\/ Tracking only fires on the real site (WordPress loads the tags site-wide). Not on file:\/\/, localhost or other staging hosts.\n  var PROD = \/^(www\\.)?harmless-studio\\.com$\/i.test(location.hostname);\n  var T = FR\n    ? { title: 'R\u00e9server une s\u00e9ance', close: 'Fermer', loading: 'Chargement de la r\u00e9servation...',\n        slow: 'La page de r\u00e9servation est lente \u00e0 charger.', open: 'Ouvrir dans un nouvel onglet' }\n    : { title: 'Book a session', close: 'Close', loading: 'Loading booking...',\n        slow: 'The booking page is taking a while to load.', open: 'Open in new tab' };\n\n  \/\/ ---- preconnect (runs at load) ----\n  try {\n    ['https:\/\/' + HOST, 'https:\/\/setmore.com'].forEach(function (h) {\n      var l = document.createElement('link');\n      l.rel = 'preconnect'; l.href = h; l.crossOrigin = 'anonymous';\n      document.head.appendChild(l);\n    });\n  } catch (e) {}\n\n  var root = null, frame = null, frameUrl = '', frameLoaded = false, warmStarted = false, timer = null, lastFocus = null, savedY = 0, lastConvTs = -1, isOpen = false;\n\n  function setVh() { document.documentElement.style.setProperty('--hs-sm-vh', (window.innerHeight * 0.01) + 'px'); }\n\n  function build() {\n    root = document.createElement('div');\n    root.id = 'hs-sm-root';\n    root.setAttribute('role', 'dialog');\n    root.setAttribute('aria-modal', 'true');\n    root.setAttribute('aria-label', T.title);\n    root.innerHTML =\n      '<div class=\"hs-sm-panel\">' +\n        '<div class=\"hs-sm-bar\"><span class=\"hs-sm-title\"><\/span>' +\n          '<button type=\"button\" class=\"hs-sm-close\" aria-label=\"\"><\/button><\/div>' +\n        '<div class=\"hs-sm-body\">' +\n          '<div class=\"hs-sm-loading\">' +\n            '<div class=\"hs-sm-spin\"><\/div><div class=\"hs-sm-msg\"><\/div>' +\n            '<div class=\"hs-sm-fallback\"><p><\/p><a target=\"_blank\" rel=\"noopener\" data-hs-nopopup=\"1\"><\/a><\/div>' +\n          '<\/div>' +\n        '<\/div>' +\n      '<\/div>';\n    root.querySelector('.hs-sm-title').textContent = T.title;\n    var x = root.querySelector('.hs-sm-close');\n    x.setAttribute('aria-label', T.close);\n    x.textContent = '\\u00D7';                                   \/\/ multiplication sign, the X\n    root.querySelector('.hs-sm-msg').textContent = T.loading;\n    root.querySelector('.hs-sm-fallback p').textContent = T.slow;\n    root.querySelector('.hs-sm-fallback a').textContent = T.open;\n    x.addEventListener('click', function (ev) { ev.preventDefault(); close(); });\n    root.addEventListener('click', function (ev) { if (ev.target === root) { close(); } });   \/\/ backdrop\n    document.body.appendChild(root);\n  }\n\n  function loaded() {\n    frameLoaded = true;\n    if (timer) { clearTimeout(timer); timer = null; }\n    if (root) { root.classList.add('hs-sm-loaded'); root.classList.remove('hs-sm-slow'); }\n  }\n\n  function buildUrl(a) {\n    var u = new URL(a.href);\n    if (location.search) {                         \/\/ keep utm_*, gclid, etc.\n      new URLSearchParams(location.search).forEach(function (v, k) { if (!u.searchParams.has(k)) { u.searchParams.set(k, v); } });\n    }\n    u.hash = '';\n    return u.toString();\n  }\n\n  \/\/ Creates (or reuses) the booking iframe inside the hidden pop-up so it is already loaded when the visitor clicks.\n  function ensureFrame(url) {\n    if (!root) { build(); }\n    if (frame && frameUrl === url) { return; }\n    if (frame && frame.parentNode) { frame.parentNode.removeChild(frame); }\n    frameLoaded = false;\n    root.classList.remove('hs-sm-loaded');\n    frame = document.createElement('iframe');\n    frame.title = T.title;\n    frame.setAttribute('allow', 'web-share; payment');\n    frame.setAttribute('referrerpolicy', 'strict-origin-when-cross-origin');\n    frame.addEventListener('load', loaded);\n    frameUrl = url;\n    frame.src = url;\n    root.querySelector('.hs-sm-body').appendChild(frame);\n    fit();\n  }\n\n\n  \/\/ On short phone screens Setmore's time slots sit below the visible area. Shrink the booking page a little so the\n  \/\/ calendar AND the time slots are both in view without scrolling (never below 80%, never on larger screens).\n  function fit() {\n    try {\n      if (!frame || !root) { return; }\n      var body = root.querySelector('.hs-sm-body');\n      var h = (body && body.clientHeight) || (window.innerHeight - 56);\n      var s = 1;\n      if (window.innerWidth <= 640) { s = Math.max(0.8, Math.min(1, h \/ 780)); }\n      if (s >= 0.995) {\n        frame.style.width = ''; frame.style.height = ''; frame.style.transform = ''; frame.style.transformOrigin = '';\n      } else {\n        frame.style.width = (100 \/ s) + '%'; frame.style.height = (100 \/ s) + '%';\n        frame.style.transform = 'scale(' + s + ')'; frame.style.transformOrigin = '0 0';\n      }\n    } catch (e) {}\n  }\n\n  function open(url) {\n    if (!root) { build(); }\n    setVh();\n    root.classList.remove('hs-sm-slow', 'hs-sm-show');\n    root.querySelector('.hs-sm-fallback a').setAttribute('href', url);\n    ensureFrame(url);\n    if (frameLoaded) { root.classList.add('hs-sm-loaded'); } else { root.classList.remove('hs-sm-loaded'); }\n    lastFocus = document.activeElement;\n    savedY = window.pageYOffset || document.documentElement.scrollTop || 0;\n    document.body.style.top = (-savedY) + 'px';\n    document.documentElement.classList.add('hs-sm-lock');\n    document.body.classList.add('hs-sm-lock');\n    root.classList.add('hs-sm-open');\n    isOpen = true;\n    fit();\n    requestAnimationFrame(function () { if (root) { root.classList.add('hs-sm-show'); } });\n    if (!frameLoaded) timer = setTimeout(function () { if (root && !root.classList.contains('hs-sm-loaded')) { root.classList.add('hs-sm-slow'); } }, SLOW_MS);\n    try { root.querySelector('.hs-sm-close').focus({ preventScroll: true }); } catch (e) {}\n  }\n\n  function close() {\n    if (!isOpen) { return; }\n    isOpen = false;\n    if (timer) { clearTimeout(timer); timer = null; }\n    root.classList.remove('hs-sm-open', 'hs-sm-show', 'hs-sm-slow');\n    var oldUrl = frameUrl;                                   \/\/ drop the used booking page, load a fresh one in the background\n    if (frame && frame.parentNode) { frame.parentNode.removeChild(frame); }\n    frame = null; frameUrl = ''; frameLoaded = false; root.classList.remove('hs-sm-loaded');\n    if (oldUrl) { setTimeout(function () { try { if (!isOpen) { ensureFrame(oldUrl); } } catch (e) {} }, 600); }\n    document.documentElement.classList.remove('hs-sm-lock');\n    document.body.classList.remove('hs-sm-lock');\n    document.body.style.top = '';\n    try { window.scrollTo({ top: savedY, left: 0, behavior: 'instant' }); } catch (e) { window.scrollTo(0, savedY); }\n    try { if (lastFocus && lastFocus.focus) { lastFocus.focus({ preventScroll: true }); } } catch (e) {}\n  }\n\n  \/\/ ---- tracking ----\n  function track(a, url, ev) {\n    if (!PROD) { return false; }\n    var counted = false, label = (a.id === 'hs-floating-booking-cta') ? 'floating_pill' : 'page_button';\n    \/\/ 1) Google Ads \"Book Now\" conversion, once per click\n    if (typeof window.gtag === 'function') {\n      try {\n        if (ev.timeStamp !== lastConvTs) {         \/\/ belt and braces: never twice for the same click event\n          lastConvTs = ev.timeStamp;\n          window.gtag('event', 'conversion', { send_to: ADS_SEND_TO });\n        }\n        counted = true;\n      } catch (e) {}\n    }\n    \/\/ 2) dataLayer + GA4 events for the pop-up\n    try {\n      window.dataLayer = window.dataLayer || [];\n      window.dataLayer.push({ event: 'setmore_popup_open', book_cta: label, book_url: url });\n      if (typeof window.gtag === 'function') {\n        window.gtag('event', 'setmore_popup_open', { event_category: 'booking', event_label: label, transport_type: 'beacon' });\n      }\n    } catch (e) {}\n    \/\/ 2b) Meta pixel: standard \"Schedule\" event plus a custom BookNowClick (browser pixel, fires once per click)\n    try {\n      if (typeof window.fbq === 'function') {\n        window.fbq('track', 'Schedule', { content_name: 'Book a session', content_category: label });\n        window.fbq('trackCustom', 'BookNowClick', { book_cta: label });\n      }\n    } catch (e) {}\n    \/\/ 3) keep the floating pill's existing book_session_click events (its own listener never sees the click now)\n    if (label === 'floating_pill') {\n      try {\n        window.dataLayer.push({ event: 'book_session_click', book_cta: 'floating_pill', book_url: a.href });\n        if (typeof window.gtag === 'function') {\n          window.gtag('event', 'book_session_click', { event_category: 'booking', event_label: 'floating_pill', transport_type: 'beacon' });\n        }\n      } catch (e) {}\n    }\n    return counted;\n  }\n\n  function onClick(ev) {\n    try {\n      if (ev.button !== 0 || ev.metaKey || ev.ctrlKey || ev.shiftKey || ev.altKey) { return; }   \/\/ let new-tab clicks behave normally\n      var t = ev.target;\n      if (t && t.nodeType === 3) { t = t.parentElement; }\n      var a = t && t.closest ? t.closest('a[href*=\"harmlessstudio.setmore.com\"]') : null;\n      if (!a) { return; }\n      if (root && root.contains(a)) {              \/\/ our own \"Open in new tab\" link:\n        ev.stopPropagation();                      \/\/ already counted when the pop-up opened, hide it from GTM\n        return;\n      }\n      if (a.hasAttribute('data-hs-nopopup') || isOpen) { return; }\n      var u = new URL(a.href);\n      if (u.hostname !== HOST || !\/^https?:$\/.test(u.protocol)) { return; }\n      var url = buildUrl(a);\n      open(url);                                   \/\/ if anything above throws, the link just works normally\n      ev.preventDefault();\n      var counted = track(a, url, ev);\n      \/\/ We counted the conversion ourselves, so hide this click from the site's GTM link-click trigger.\n      \/\/ If gtag was missing we do NOT stop it, so GTM can still count the conversion.\n      if (counted) { ev.stopPropagation(); }\n    } catch (err) {\n      try { if (root && isOpen) { root.classList.add('hs-sm-slow'); } } catch (e2) {}\n    }\n  }\n\n  \/\/ ---- warm-up: load the booking page in the hidden pop-up shortly after the page has loaded ----\n  function firstLink() { return document.querySelector('a[href*=\"harmlessstudio.setmore.com\"]'); }\n  function prewarm() {\n    try {\n      if (warmStarted || isOpen) { return; }\n      var c = navigator.connection || {};\n      if (c.saveData || \/(^|-)2g$\/.test(c.effectiveType || '')) { return; }   \/\/ respect data saver and very slow networks\n      var a = firstLink();\n      if (!a || new URL(a.href).hostname !== HOST) { return; }\n      warmStarted = true;\n      ensureFrame(buildUrl(a));\n    } catch (e) {}\n  }\n  function schedule() {\n    var go = function () { (window.requestIdleCallback || function (f) { setTimeout(f, 1); })(prewarm); };\n    setTimeout(go, 700);\n  }\n  if (document.readyState === 'complete') { schedule(); } else { window.addEventListener('load', schedule); }\n  ['scroll', 'pointerdown', 'keydown'].forEach(function (n) {   \/\/ any sign the visitor is engaging: start now\n    window.addEventListener(n, prewarm, { passive: true, once: true });\n  });\n  ['pointerover', 'touchstart'].forEach(function (n) {      \/\/ a visitor reaching for a Book link: start right away\n    document.addEventListener(n, function (ev) {\n      try { var t = ev.target; var l = t && t.closest ? t.closest('a[href*=\"harmlessstudio.setmore.com\"]') : null; if (l) { if (!isOpen && !l.hasAttribute('data-hs-nopopup') && new URL(l.href).hostname === HOST && buildUrl(l) !== frameUrl) { warmStarted = true; ensureFrame(buildUrl(l)); } else { prewarm(); } } } catch (e) {}\n    }, { passive: true, capture: true });\n  });\n\n  \/\/ window + capture phase runs before GTM's document-level click listener\n  window.addEventListener('click', onClick, true);\n  document.addEventListener('keydown', function (ev) {\n    if (isOpen && (ev.key === 'Escape' || ev.key === 'Esc')) { ev.preventDefault(); close(); }\n  }, true);\n  window.addEventListener('resize', function () { if (isOpen) { setVh(); fit(); } });\n  window.addEventListener('message', function (ev) {         \/\/ Setmore says \"ready\" when its page has rendered\n    try { if (ev.origin === 'https:\/\/' + HOST && ev.data && ev.data.type === 'booking-page:ready') { loaded(); } } catch (e) {}\n  });\n})();\n<\/script>\n\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-534","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Harmless Studio | Enregistrement, mixage et mastering \u00e0 Laval, pr\u00e8s de Montr\u00e9al<\/title>\n<meta name=\"description\" content=\"Une chanson termin\u00e9e, pr\u00eate \u00e0 sortir, enregistr\u00e9e, mix\u00e9e et masteris\u00e9e \u00e0 notre studio de Laval, pr\u00e8s de Montr\u00e9al. 170 $, tout inclus. R\u00e9servez en ligne.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/harmless-studio.com\/fr\/accueil\/\" \/>\n<meta property=\"og:locale\" content=\"fr_CA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Harmless Studio | Enregistrement, mixage et mastering \u00e0 Laval, pr\u00e8s de Montr\u00e9al\" \/>\n<meta property=\"og:description\" content=\"Une chanson termin\u00e9e, pr\u00eate \u00e0 sortir, enregistr\u00e9e, mix\u00e9e et masteris\u00e9e \u00e0 notre studio de Laval, pr\u00e8s de Montr\u00e9al. 170 $, tout inclus. R\u00e9servez en ligne.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/harmless-studio.com\/fr\/accueil\/\" \/>\n<meta property=\"og:site_name\" content=\"Harmless Studio\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/harmless.studios\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-16T00:13:39+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimation du temps de lecture\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/harmless-studio.com\/accueil\/\",\"url\":\"https:\/\/harmless-studio.com\/accueil\/\",\"name\":\"Harmless Studio | Enregistrement, mixage et mastering \u00e0 Laval, pr\u00e8s de Montr\u00e9al\",\"isPartOf\":{\"@id\":\"https:\/\/harmless-studio.com\/#website\"},\"datePublished\":\"2026-10-15T23:43:38+00:00\",\"dateModified\":\"2026-10-16T00:13:39+00:00\",\"description\":\"Une chanson termin\u00e9e, pr\u00eate \u00e0 sortir, enregistr\u00e9e, mix\u00e9e et masteris\u00e9e \u00e0 notre studio de Laval, pr\u00e8s de Montr\u00e9al. 170 $, tout inclus. R\u00e9servez en ligne.\",\"breadcrumb\":{\"@id\":\"https:\/\/harmless-studio.com\/accueil\/#breadcrumb\"},\"inLanguage\":\"fr-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/harmless-studio.com\/accueil\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/harmless-studio.com\/accueil\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/harmless-studio.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Accueil\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/harmless-studio.com\/#website\",\"url\":\"https:\/\/harmless-studio.com\/\",\"name\":\"Harmless Studio\",\"description\":\"A recording studio called Harmless.\",\"publisher\":{\"@id\":\"https:\/\/harmless-studio.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/harmless-studio.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-CA\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/harmless-studio.com\/#organization\",\"name\":\"Harmless Studio\",\"url\":\"https:\/\/harmless-studio.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\/\/harmless-studio.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/harmless-studio.com\/wp-content\/uploads\/harmless-logo-white.png\",\"contentUrl\":\"https:\/\/harmless-studio.com\/wp-content\/uploads\/harmless-logo-white.png\",\"width\":475,\"height\":200,\"caption\":\"Harmless Studio\"},\"image\":{\"@id\":\"https:\/\/harmless-studio.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/harmless.studios\",\"https:\/\/www.instagram.com\/harmless.studio\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Harmless Studio | Enregistrement, mixage et mastering \u00e0 Laval, pr\u00e8s de Montr\u00e9al","description":"Une chanson termin\u00e9e, pr\u00eate \u00e0 sortir, enregistr\u00e9e, mix\u00e9e et masteris\u00e9e \u00e0 notre studio de Laval, pr\u00e8s de Montr\u00e9al. 170 $, tout inclus. R\u00e9servez en ligne.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/harmless-studio.com\/fr\/accueil\/","og_locale":"fr_CA","og_type":"article","og_title":"Harmless Studio | Enregistrement, mixage et mastering \u00e0 Laval, pr\u00e8s de Montr\u00e9al","og_description":"Une chanson termin\u00e9e, pr\u00eate \u00e0 sortir, enregistr\u00e9e, mix\u00e9e et masteris\u00e9e \u00e0 notre studio de Laval, pr\u00e8s de Montr\u00e9al. 170 $, tout inclus. R\u00e9servez en ligne.","og_url":"https:\/\/harmless-studio.com\/fr\/accueil\/","og_site_name":"Harmless Studio","article_publisher":"https:\/\/www.facebook.com\/harmless.studios","article_modified_time":"2026-10-16T00:13:39+00:00","twitter_card":"summary_large_image","twitter_misc":{"Estimation du temps de lecture":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/harmless-studio.com\/accueil\/","url":"https:\/\/harmless-studio.com\/accueil\/","name":"Harmless Studio | Enregistrement, mixage et mastering \u00e0 Laval, pr\u00e8s de Montr\u00e9al","isPartOf":{"@id":"https:\/\/harmless-studio.com\/#website"},"datePublished":"2026-10-15T23:43:38+00:00","dateModified":"2026-10-16T00:13:39+00:00","description":"Une chanson termin\u00e9e, pr\u00eate \u00e0 sortir, enregistr\u00e9e, mix\u00e9e et masteris\u00e9e \u00e0 notre studio de Laval, pr\u00e8s de Montr\u00e9al. 170 $, tout inclus. R\u00e9servez en ligne.","breadcrumb":{"@id":"https:\/\/harmless-studio.com\/accueil\/#breadcrumb"},"inLanguage":"fr-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/harmless-studio.com\/accueil\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/harmless-studio.com\/accueil\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/harmless-studio.com\/"},{"@type":"ListItem","position":2,"name":"Accueil"}]},{"@type":"WebSite","@id":"https:\/\/harmless-studio.com\/#website","url":"https:\/\/harmless-studio.com\/","name":"Harmless Studio","description":"A recording studio called Harmless.","publisher":{"@id":"https:\/\/harmless-studio.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/harmless-studio.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-CA"},{"@type":"Organization","@id":"https:\/\/harmless-studio.com\/#organization","name":"Harmless Studio","url":"https:\/\/harmless-studio.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/harmless-studio.com\/#\/schema\/logo\/image\/","url":"https:\/\/harmless-studio.com\/wp-content\/uploads\/harmless-logo-white.png","contentUrl":"https:\/\/harmless-studio.com\/wp-content\/uploads\/harmless-logo-white.png","width":475,"height":200,"caption":"Harmless Studio"},"image":{"@id":"https:\/\/harmless-studio.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/harmless.studios","https:\/\/www.instagram.com\/harmless.studio\/"]}]}},"_links":{"self":[{"href":"https:\/\/harmless-studio.com\/fr\/wp-json\/wp\/v2\/pages\/534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/harmless-studio.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/harmless-studio.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/harmless-studio.com\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/harmless-studio.com\/fr\/wp-json\/wp\/v2\/comments?post=534"}],"version-history":[{"count":1,"href":"https:\/\/harmless-studio.com\/fr\/wp-json\/wp\/v2\/pages\/534\/revisions"}],"predecessor-version":[{"id":535,"href":"https:\/\/harmless-studio.com\/fr\/wp-json\/wp\/v2\/pages\/534\/revisions\/535"}],"wp:attachment":[{"href":"https:\/\/harmless-studio.com\/fr\/wp-json\/wp\/v2\/media?parent=534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}