{"id":569,"date":"2026-01-17T04:02:22","date_gmt":"2026-01-17T04:02:22","guid":{"rendered":"https:\/\/accord-piano-montreal.com\/?page_id=569"},"modified":"2026-03-09T06:40:47","modified_gmt":"2026-03-09T06:40:47","slug":"piano-tuner-in-montreal-piano-tuning-repair","status":"publish","type":"page","link":"https:\/\/accord-piano-montreal.com\/en\/","title":{"rendered":"Piano Tuner in Montreal \u2013 Piano Tuning &#038; Repair"},"content":{"rendered":"\n\n\t<!-- Optimisation du chargement des polices Google -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\/>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin\/>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;900&#038;display=swap\" rel=\"stylesheet\"\/>\n    <style>\n        \/* ========================================================= *\/\n        \/* S\u00c9CURIT\u00c9 ANTI-FOUC & ANIMATIONS DU BADGE GOOGLE           *\/\n        \/* ========================================================= *\/\n        .google-logo-safe { width: 20px !important; height: 20px !important; min-width: 20px !important; display: block !important; }\n        .star-safe { width: 16px !important; height: 16px !important; min-width: 16px !important; display: block !important; color: #cbd5e1; }\n        .badge-safe {\n            display: inline-flex !important; align-items: center !important; justify-content: center !important; width: max-content !important;\n            margin-left: auto !important; margin-right: auto !important;\n            box-shadow: 0 8px 25px rgba(0,0,0,0.06); animation: badge-flash 4s infinite ease-in-out !important;\n            -webkit-backface-visibility: hidden; backface-visibility: hidden; transform: translateZ(0); will-change: transform, box-shadow;\n        }\n        @media (min-width: 768px) {\n            .google-logo-safe { width: 24px !important; height: 24px !important; min-width: 24px !important; }\n            .star-safe { width: 20px !important; height: 20px !important; min-width: 20px !important; }\n        }\n        .star-anim-1 { animation: star-roll 4s infinite ease-in-out !important; animation-delay: 0.0s !important; }\n        .star-anim-2 { animation: star-roll 4s infinite ease-in-out !important; animation-delay: 0.15s !important; }\n        .star-anim-3 { animation: star-roll 4s infinite ease-in-out !important; animation-delay: 0.3s !important; }\n        .star-anim-4 { animation: star-roll 4s infinite ease-in-out !important; animation-delay: 0.45s !important; }\n        .star-anim-5 { animation: star-roll 4s infinite ease-in-out !important; animation-delay: 0.6s !important; }\n        @keyframes star-roll {\n            0%, 5% { color: #cbd5e1; transform: scale(1); } \n            15% { color: #FBBC05; transform: scale(1.3); }  \n            25%, 70% { color: #FBBC05; transform: scale(1); } \n            80%, 100% { color: #cbd5e1; transform: scale(1); } \n        }\n        @keyframes badge-flash {\n            0%, 55% { box-shadow: 0 8px 25px rgba(0,0,0,0.06); background-color: #ffffff; transform: scale(1); }\n            60% { box-shadow: 0 0 35px rgba(251, 188, 5, 0.7); background-color: #fffdf5; transform: scale(1.05); } \n            70%, 100% { box-shadow: 0 8px 25px rgba(0,0,0,0.06); background-color: #ffffff; transform: scale(1); }\n        }\n        \/* ========================================================= *\/\n        \/* LA MAGIE DES CARTES \"D\u00c9VOIL\u00c9ES\" & RESPONSIVE MOBILE       *\/\n        \/* Optimisation SEO\/Vitesse : content-visibility pour scroll *\/\n        \/* ========================================================= *\/\n        .card-magic-wrapper {\n            position: relative;\n            overflow: hidden;\n            border-radius: 1.5rem;\n            cursor: pointer;\n            user-select: none; \n            -webkit-user-select: none;\n            transition: all 0.4s ease;\n            content-visibility: auto; \/* Optimisation de rendu WordPress *\/\n            contain-intrinsic-size: 250px;\n        }\n        \/* Gestion de l'espace du titre *\/\n        .card-header-safe { margin-bottom: 0; transition: margin-bottom 0.4s ease; }\n        .is-expanded .card-header-safe { margin-bottom: 1.5rem; }\n        @media (min-width: 768px) {\n            .card-header-safe { margin-bottom: 1.5rem !important; }\n        }\n        \/* \u00c9tat compress\u00e9 (Version Mobile : Hauteur 0) *\/\n        .magic-content-collapsed, .magic-content-collapsed-vip {\n            max-height: 0;\n            opacity: 0;\n            overflow: hidden;\n            transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;\n            -webkit-mask-image: none;\n            mask-image: none;\n        }\n        \/* \u00c9tat compress\u00e9 (Version Tablette\/PC : Aper\u00e7u de 200px) *\/\n        @media (min-width: 768px) {\n            .magic-content-collapsed, .magic-content-collapsed-vip {\n                max-height: 200px;\n                opacity: 1;\n                transition: max-height 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n                -webkit-mask-image: linear-gradient(to bottom, black 35%, transparent 100%);\n                mask-image: linear-gradient(to bottom, black 35%, transparent 100%);\n            }\n        }\n        \/* \u00c9tat ouvert (Partout) *\/\n        .magic-content-expanded {\n            max-height: 1500px;\n            opacity: 1;\n            transition: max-height 0.8s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.5s ease;\n            -webkit-mask-image: none;\n            mask-image: none;\n            cursor: default;\n        }\n        \/* ========================================================= *\/\n        \/* PLUIE DE POUSSI\u00c8RE D'\u00c9TOILES SCINTILLANTE (VIP UNIQUEMENT)*\/\n        \/* ========================================================= *\/\n        .stardust-container { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 5; }\n        .dust { position: absolute; background: #ffffff; border-radius: 50%; opacity: 0; pointer-events: none; }\n        .card-seq-gold:hover .dust, .card-seq-gold.is-expanded .dust { animation-name: star-rain-gold !important; background: #fef08a; }\n        .d-1 { top: 5%; left: 15%; width: 4px; height: 4px; } .d-2 { top: -5%; left: 35%; width: 6px; height: 6px; }\n        .d-3 { top: 10%; left: 55%; width: 3px; height: 3px; } .d-4 { top: -10%; left: 75%; width: 5px; height: 5px; }\n        .d-5 { top: 15%; left: 90%; width: 4px; height: 4px; } .d-6 { top: 30%; left: 10%; width: 5px; height: 5px; }\n        .d-7 { top: 25%; left: 45%; width: 4px; height: 4px; } .d-8 { top: 40%; left: 65%; width: 6px; height: 6px; }\n        .d-9 { top: 20%; left: 80%; width: 3px; height: 3px; } .d-10 { top: 35%; left: 25%; width: 5px; height: 5px; }\n        @keyframes star-rain-gold {\n            0% { transform: translateY(-30px) scale(0); opacity: 0; box-shadow: 0 0 0 rgba(255,255,255,0); }\n            20% { transform: translateY(20px) scale(1.2); opacity: 1; box-shadow: 0 0 20px 4px rgba(251, 191, 36, 1); }\n            80% { transform: translateY(120px) scale(0.8); opacity: 0.8; box-shadow: 0 0 15px 3px rgba(251, 191, 36, 0.5); }\n            100% { transform: translateY(180px) scale(0); opacity: 0; }\n        }\n        \/* ========================================================= *\/\n        \/* STYLES DES CARTES ET ANIMATIONS                           *\/\n        \/* ========================================================= *\/\n        \/* CARTES BLEUES STANDARDS (Professionnel et subtil) *\/\n        .card-seq-blue {\n            background-color: #ffffff; \n            border: 2px solid rgba(59, 130, 246, 0.3);\n            box-shadow: 0 4px 15px rgba(59, 130, 246, 0.05);\n            transition: transform 0.3s ease, border-color 0.4s ease, box-shadow 0.4s ease, background-color 0.3s ease;\n        }\n        \/* Respiration bleue subtile pour indiquer le clic *\/\n        @keyframes blue-idle-breathe {\n            0%, 100% { border-color: rgba(59, 130, 246, 0.3); box-shadow: 0 4px 15px rgba(59, 130, 246, 0.05); }\n            50% { border-color: rgba(59, 130, 246, 0.6); box-shadow: 0 4px 20px rgba(59, 130, 246, 0.15); }\n        }\n        .card-seq-blue:not(.is-expanded) {\n            animation: blue-idle-breathe 4s infinite ease-in-out;\n        }\n        \/* \u00c9clat intense au clic\/survol *\/\n        .card-magic-wrapper.card-seq-blue:hover, \n        .card-magic-wrapper.card-seq-blue.is-expanded {\n            animation: none;\n            border-color: #3b82f6;\n            box-shadow: 0 0 35px rgba(59, 130, 246, 0.4), inset 0 0 15px rgba(59, 130, 246, 0.1);\n            transform: scale(1.02);\n            z-index: 10;\n            background-color: #f8fafc;\n        }\n        \/* CARTE VIP OR *\/\n        .card-seq-gold {\n            border: 2px solid rgba(251, 191, 36, 0.4);\n            box-shadow: 0 0 15px rgba(251, 191, 36, 0.15), inset 0 0 10px rgba(251, 191, 36, 0.05);\n            transition: transform 0.3s ease, border-color 0.4s ease, box-shadow 0.4s ease;\n        }\n        .card-seq-2 { animation: flash-card-2 12s infinite; }\n        @keyframes flash-card-2 {\n            0%, 30% { border-color: rgba(251, 191, 36, 0.4); box-shadow: 0 0 15px rgba(251, 191, 36, 0.15), inset 0 0 10px rgba(251, 191, 36, 0.05); transform: scale(1); }\n            35%, 40% { border-color: #fde047; box-shadow: 0 0 50px rgba(251, 191, 36, 0.9), inset 0 0 30px rgba(251, 191, 36, 0.5); transform: scale(1.015); }\n            45%, 100% { border-color: rgba(251, 191, 36, 0.4); box-shadow: 0 0 15px rgba(251, 191, 36, 0.15), inset 0 0 10px rgba(251, 191, 36, 0.05); transform: scale(1); }\n        }\n        .card-magic-wrapper.card-seq-gold:hover, .card-magic-wrapper.card-seq-gold.is-expanded {\n            animation: none !important;\n            border-color: #fbbf24 !important;\n            box-shadow: 0 0 50px rgba(251, 191, 36, 0.7), inset 0 0 30px rgba(251, 191, 36, 0.4) !important;\n            transform: scale(1.02);\n            z-index: 10;\n        }\n        \/* ========================================================= *\/\n        \/* BOUTONS D'OUVERTURE (+\/-) ANIM\u00c9S                          *\/\n        \/* ========================================================= *\/\n        .neon-plus-btn {\n            width: 40px; height: 40px; border-radius: 50%; display: flex; justify-content: center; align-items: center;\n            border: 2px solid rgba(59, 130, 246, 0.5); color: #3b82f6; background-color: rgba(59, 130, 246, 0.05);\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); flex-shrink: 0;\n            animation: btn-breathe-blue 2.5s infinite alternate ease-in-out;\n        }\n        @media (min-width: 768px) { .neon-plus-btn { width: 48px; height: 48px; } }\n        @keyframes btn-breathe-blue {\n            0%, 100% { transform: scale(1); box-shadow: 0 0 10px rgba(59, 130, 246, 0.2); }\n            50% { transform: scale(1.08); box-shadow: 0 0 20px rgba(59, 130, 246, 0.5), inset 0 0 8px rgba(59, 130, 246, 0.1); }\n        }\n        .card-magic-wrapper:hover .neon-plus-btn, .card-magic-wrapper.is-expanded .neon-plus-btn {\n            background-color: #3b82f6; color: #ffffff; border-color: #60a5fa; animation-play-state: paused; transform: scale(1.05);\n        }\n        .neon-plus-btn-vip {\n            width: 40px; height: 40px; border-radius: 50%; display: flex; justify-content: center; align-items: center;\n            border: 2px solid rgba(251, 191, 36, 0.6); color: #facc15; background-color: rgba(251, 191, 36, 0.05);\n            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); flex-shrink: 0;\n            animation: btn-breathe-vip 2.5s infinite alternate ease-in-out;\n        }\n        @media (min-width: 768px) { .neon-plus-btn-vip { width: 48px; height: 48px; } }\n        @keyframes btn-breathe-vip {\n            0%, 100% { transform: scale(1); box-shadow: 0 0 10px rgba(251, 191, 36, 0.2); }\n            50% { transform: scale(1.08); box-shadow: 0 0 20px rgba(251, 191, 36, 0.5), inset 0 0 8px rgba(251, 191, 36, 0.1); }\n        }\n        .card-magic-wrapper:hover .neon-plus-btn-vip, .card-magic-wrapper.is-expanded .neon-plus-btn-vip {\n            background-color: #facc15; color: #0f172a; border-color: #fde047; animation-play-state: paused; transform: scale(1.05);\n        }\n        .expand-indicator svg { width: 18px; height: 18px; transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); }\n        @media (min-width: 768px) { .expand-indicator svg { width: 22px; height: 22px; } }\n        .is-expanded .expand-indicator svg { transform: rotate(45deg) scale(1.1); }\n        \/* ========================================================= *\/\n        \/* TYPOGRAPHIE ET D\u00c9COS                                      *\/\n        \/* ========================================================= *\/\n        .fouc-card-safe {\n            border-radius: 2rem; padding: 24px; box-sizing: border-box; display: flex; flex-direction: column;\n        }\n        @media (min-width: 768px) { .fouc-card-safe { padding: 40px; } }\n        .card-title-safe {\n            font-size: 22px !important; line-height: 1.15 !important; font-weight: 900 !important; margin-bottom: 0 !important;\n        }\n        @media (min-width: 768px) { .card-title-safe { font-size: 32px !important; } }\n        .card-sparkle { position: absolute; background: #ffffff; border-radius: 50%; box-shadow: 0 0 10px 3px rgba(251, 191, 36, 0.9); z-index: 20; pointer-events: none; }\n        .cs-1 { top: -2px; left: 50%; width: 4px; height: 4px; animation: cs-pulse-x 2s infinite alternate; }\n        .cs-2 { bottom: -2px; left: 50%; width: 5px; height: 5px; animation: cs-pulse-x 2s infinite alternate 0.7s; }\n        .cs-3 { top: 50%; left: -2px; width: 3px; height: 3px; animation: cs-pulse-y 2s infinite alternate 1.3s; }\n        .cs-4 { top: 50%; right: -2px; width: 4px; height: 4px; animation: cs-pulse-y 2s infinite alternate 0.4s; }\n        @keyframes cs-pulse-x { 0% { transform: scale(0.8) translateX(-50%); opacity: 0.5; box-shadow: 0 0 5px 1px rgba(251, 191, 36, 0.5); } 100% { transform: scale(1.5) translateX(-50%); opacity: 1; box-shadow: 0 0 15px 4px rgba(251, 191, 36, 1); } }\n        @keyframes cs-pulse-y { 0% { transform: scale(0.8) translateY(-50%); opacity: 0.5; box-shadow: 0 0 5px 1px rgba(251, 191, 36, 0.5); } 100% { transform: scale(1.5) translateY(-50%); opacity: 1; box-shadow: 0 0 15px 4px rgba(251, 191, 36, 1); } }\n        .text-sparkle { position: absolute; width: 14px; height: 14px; color: #e11d48; filter: drop-shadow(0 0 5px rgba(225, 29, 72, 0.8)); animation: text-twinkle 2.5s infinite ease-in-out; pointer-events: none; z-index: 10; }\n        @keyframes text-twinkle { 0%, 100% { opacity: 0; transform: scale(0.5) rotate(-15deg); } 50% { opacity: 1; transform: scale(1.4) rotate(15deg); } }\n        .force-lh-title { line-height: 1.15 !important; }\n        .force-lh-text { line-height: 1.6 !important; }\n        .shimmer-text-premium {\n            background: linear-gradient(110deg, #0f172a 10%, #1e3a8a 30%, #ffffff 50%, #1e3a8a 70%, #0f172a 90%);\n            background-size: 200% auto; color: transparent; -webkit-background-clip: text; background-clip: text; animation: text-shine-sweep 5s linear infinite;\n        }\n        @keyframes text-shine-sweep { 0% { background-position: 200% center; } 100% { background-position: -200% center; } }\n        .highlight-prix-premium { position: relative; display: inline-block; color: #2563eb; animation: prix-pulse 3s infinite alternate ease-in-out; }\n        .highlight-prix-premium::after {\n            content: ''; position: absolute; bottom: -2px; left: 0; width: 100%; height: 3px;\n            background: linear-gradient(90deg, transparent, #e11d48, transparent); border-radius: 2px; animation: underline-glow 3s infinite alternate ease-in-out;\n        }\n        @keyframes prix-pulse { 0% { transform: scale(1); text-shadow: 0 0 10px rgba(37, 99, 235, 0.1); } 100% { transform: scale(1.02); text-shadow: 0 0 20px rgba(37, 99, 235, 0.4); } }\n        @keyframes underline-glow { 0% { opacity: 0.3; transform: scaleX(0.8); box-shadow: 0 0 5px rgba(225, 29, 72, 0.2); } 100% { opacity: 1; transform: scaleX(1.1); box-shadow: 0 0 12px rgba(225, 29, 72, 0.6); } }\n        \/* ========================================================= *\/\n        \/* CSS POUR LA MODALE PREMIUM BEAVER BUILDER                 *\/\n        \/* ========================================================= *\/\n        .modal-scroll::-webkit-scrollbar { width: 6px; }\n        .modal-scroll::-webkit-scrollbar-track { background: #f1f5f9; border-radius: 8px; }\n        .modal-scroll::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 8px; }\n        .bb-premium-wrapper {\n            background-color: #ffffff; border: 2px solid #3b82f6; box-shadow: 0 0 15px rgba(59, 130, 246, 0.2), inset 0 0 5px rgba(59, 130, 246, 0.05); border-radius: 1.5rem; padding: 1.5rem;\n        }\n        @media (min-width: 768px) { .bb-premium-wrapper { padding: 2rem; } }\n        .beaver-builder-form-area .fl-form-field { margin-bottom: 1.5rem !important; }\n        .beaver-builder-form-area label { font-weight: 700 !important; color: #334155 !important; margin-bottom: 0.5rem !important; display: block !important; font-size: 0.875rem !important; }\n        .beaver-builder-form-area input[type=\"text\"], .beaver-builder-form-area input[type=\"email\"], .beaver-builder-form-area input[type=\"tel\"],\n        .beaver-builder-form-area input[type=\"number\"], .beaver-builder-form-area textarea {\n            background-color: #ffffff !important; border: 2px solid #3b82f6 !important; box-shadow: 0 0 15px rgba(59, 130, 246, 0.5), inset 0 0 5px rgba(59, 130, 246, 0.15) !important;\n            color: #1e3a8a !important; border-radius: 1rem !important; padding: 0.875rem 1.25rem !important; font-weight: 500 !important; transition: all 0.3s ease-in-out !important; width: 100% !important; box-sizing: border-box !important;\n        }\n        .beaver-builder-form-area input:focus, .beaver-builder-form-area textarea:focus { outline: none !important; border-color: #60a5fa !important; box-shadow: 0 0 25px rgba(59, 130, 246, 0.8), inset 0 0 10px rgba(59, 130, 246, 0.3) !important; background-color: #f8fafc !important; }\n        .beaver-builder-form-area input.is-filled, .beaver-builder-form-area textarea.is-filled { border-color: #22c55e !important; box-shadow: 0 0 20px rgba(34, 197, 94, 0.6), inset 0 0 8px rgba(34, 197, 94, 0.25) !important; background-color: #ffffff !important; }\n        .beaver-builder-form-area .fl-form-error input, .beaver-builder-form-area .fl-form-error textarea { border-color: #ef4444 !important; box-shadow: 0 0 20px rgba(239, 68, 68, 0.6), inset 0 0 8px rgba(239, 68, 68, 0.25) !important; animation: shake 0.4s ease-in-out; background-color: #fffaf9 !important; }\n        @keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 50% { transform: translateX(5px); } 75% { transform: translateX(-5px); } }\n        .beaver-builder-form-area .fl-button-wrap button, .beaver-builder-form-area .fl-button-wrap input[type=\"submit\"], .beaver-builder-form-area .fl-button {\n            background: linear-gradient(to right, #1e3a8a, #2563eb) !important; color: #ffffff !important; padding: 1.1rem 2rem !important; border-radius: 1rem !important; font-weight: 900 !important; text-transform: uppercase !important; letter-spacing: 0.1em !important; border: none !important; box-shadow: 0 8px 20px rgba(37, 99, 235, 0.25) !important; transition: all 0.3s ease !important; width: 100% !important; display: flex !important; justify-content: center !important; align-items: center !important; cursor: pointer !important; margin-top: 1.5rem !important; font-size: 14px !important;\n        }\n        .beaver-builder-form-area .fl-button-wrap button:hover, .beaver-builder-form-area .fl-button-wrap input[type=\"submit\"]:hover, .beaver-builder-form-area .fl-button:hover { box-shadow: 0 12px 25px rgba(37, 99, 235, 0.45) !important; transform: translateY(-2px) !important; }\n        .beaver-builder-form-area .custom-neon-success { background-color: #ffffff !important; border: 3px solid #22c55e !important; box-shadow: 0 0 30px rgba(34, 197, 94, 0.5), inset 0 0 15px rgba(34, 197, 94, 0.15) !important; padding: 2.5rem 1.5rem !important; border-radius: 1.5rem !important; text-align: center !important; margin-top: 1rem !important; animation: neon-pulse-green 2s infinite alternate ease-in-out !important; }\n        @keyframes neon-pulse-green { 0% { box-shadow: 0 0 15px rgba(34, 197, 94, 0.4), inset 0 0 5px rgba(34, 197, 94, 0.1); } 100% { box-shadow: 0 0 35px rgba(34, 197, 94, 0.7), inset 0 0 15px rgba(34, 197, 94, 0.2); } }\n        .beaver-builder-form-area .fl-form-recaptcha, .beaver-builder-form-area .g-recaptcha { display: flex !important; justify-content: center !important; overflow: hidden !important; margin: 1.5rem 0 !important; transform: scale(0.95); transform-origin: center; }\n    <\/style>\n        <!-- ===================================== -->\n        <!-- EN-T\u00caTE \u00c9LARGI : PUNCHLINE + TITRE    -->\n        <!-- ===================================== -->\n            <!-- Badge Avis Google -->\n                <!-- Attribut aria-hidden pour le SEO\/Accessibilit\u00e9 -->\n                4.8\n            <!-- La Punchline Agrandie -->\n                <h2>\n                        Tuning Excellence\n                    <br \/>\n                        at the right price.\n                <\/h2>\n            <!-- ENCADR\u00c9 SERVICES & EXPERTISE -->\n                <h3>\n                    Services &#038; Expertise\n                <\/h3>\n                \n                    Professional-level precision,\n                    right in your home.\n                \n        <!-- ===================================== -->\n        <!-- LA GRILLE DES CARTES MAGIQUES         -->\n        <!-- ===================================== -->\n            <!-- CARTE 1 : ACCORD ET R\u00c9PARATION -->\n                        <h3>Tuning &#038;<br \/>Repair<\/h3>\n                        <p>Piano tuning, repair, and maintenance services, with precision derived from the concert stage, recording studios, and television production.<\/p>\n                        <p>These environments demand flawless pitch, stability, and tonal balance. Every intervention aims for an instrument that is perfectly in tune, pleasant to play, and durable over time, including recognized expertise in player pianos.<\/p>\n                            <a href=\"https:\/\/accord-piano-montreal.com\/en\/tuning\/\">\n                                Tuning \u2192\n                            <\/a>\n                            <a href=\"https:\/\/accord-piano-montreal.com\/en\/repair\/\">\n                                Repair \u2192\n                            <\/a>\n                            <button type=\"button\">\n                                Book an appointment\n                            <\/button>\n            <!-- CARTE 2 : VIP (OR) -->\n                <!-- D\u00e9cos de fond -->\n                <!-- Pluie d'\u00e9toiles scintillantes OR -->\n                            <h3>\n                                Pre-Purchase<br \/>Consultation\n                            <\/h3>\n                        <p>Before buying, selling, repairing, moving, or accepting a free piano, ensure you understand what it truly involves.<\/p>\n                                <h4>A piano, even when free, can be costly:<\/h4>\n                                <ul>\n                                    <li>\u2756 Moving<\/li>\n                                    <li>\u2756 Repairs<\/li>\n                                    <li>\u2756 Multiple tunings to stabilize it<\/li>\n                                    <li>\u2756 Investment higher than its value<\/li>\n                                <\/ul>\n                                <p>Getting an evaluation before acting prevents unnecessary expenses. The evaluation is performed by an experienced piano tuner, with expertise in repair and mechanical analysis.<\/p>\n                                <h4>I help you to:<\/h4>\n                                <ul>\n                                    <li>\u2713 Know the actual condition of the piano<\/li>\n                                    <li>\u2713 Estimate the expected costs<\/li>\n                                    <li>\u2713 Determine its market value<\/li>\n                                    <li>\u2713 Know if the asking price is fair<\/li>\n                                    <li>\u2713 Decide if a free piano is worth it<\/li>\n                                <\/ul>\n                                <h4>Goal<\/h4>\n                                <p>A clear decision, with no bad surprises.<\/p>\n                                <button type=\"button\">\n                                    Write for advice\n                                <\/button>\n            <!-- CARTE 3 : POURQUOI PATRICK -->\n                        <h3>Why choose<br \/>Patrick Brennan?<\/h3>\n                        <p>Patrick Brennan assists individuals, institutions, and music professionals with piano tuning and maintenance in Montreal and its surroundings.<\/p>\n                        <p>Alongside home service, he has gained solid experience as a <strong>concert tuner<\/strong> and in <strong>recording studios<\/strong>, environments that demand absolute precision.<\/p>\n                            <p>Whether it is a concert, studio, or residential piano, the goal is always the same: an instrument that is perfectly in tune, pleasant to play, and durable.<\/p>\n                            <a href=\"https:\/\/accord-piano-montreal.com\/en\/get-to-knowpatrick-brennan\/\">\n                                Learn more about Patrick \u2192\n                            <\/a>\n                            <button type=\"button\">\n                                Contact me\n                            <\/button>\n            <!-- CARTE 4 : SERVICE \u00c0 DOMICILE -->\n                        <h3>In-Home<br \/>Service<\/h3>\n                        <p>Top-quality service provided right in the comfort of your home.<\/p>\n                        <p>I cover the entire territory of the greater metropolitan area: <strong>Montreal, Laval, the North Shore, and the South Shore.<\/strong><\/p>\n                        <p>Easy to reach, punctual, and transparent, with no unnecessary work.<\/p>\n                            <a href=\"https:\/\/accord-piano-montreal.com\/en\/service-areas\/\">\n                                Detailed service area \u2192\n                            <\/a>\n                            <button type=\"button\">\n                                Book an appointment\n                            <\/button>\n<!-- ========================================================= -->\n<!-- MODALE DU FORMULAIRE -->\n<!-- ========================================================= -->\n            <h3 id=\"modal-title\">\n                Contact\n            <\/h3>\n            <button type=\"button\" aria-label=\"Close\">\n                Close\n            <\/button>\n                <h4>\n                    Patrick Brennan<br \/>\n                    Piano Tuner\n                <\/h4>\n                    <!-- SHORTCODE WORDPRESS BEAVER BUILDER MIS \u00c0 JOUR -->\n                    <div class=\"fl-builder-content fl-builder-content-1369 fl-builder-template fl-builder-module-template fl-builder-global-templates-locked\" data-post-id=\"1369\"><div class=\"fl-module fl-module-contact-form fl-node-x6u5esqn47cw\" data-node=\"x6u5esqn47cw\">\n\t<div class=\"fl-module-content fl-node-content\">\n\t\t<form class=\"fl-contact-form\" >\t<input type=\"hidden\" id=\"fl-contact-form-nonce\" name=\"fl-contact-form-nonce\" value=\"eb89ae9ab0\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/pages\/569\" \/>\t<input type=\"hidden\" name=\"fl-layout-id\" value=\"569\" \/>\n\t\t<div class=\"fl-input-group fl-name\">\n\t\t<label for=\"fl-name\" >Your name<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"name-error\">Please enter your name.<\/span>\n\t\t<input type=\"text\" id=\"fl-name\" name=\"fl-name\" aria-describedby=\"name-error\" value=\"\" placeholder=\"Your name\" \/>\n\t<\/div>\n\t\t\t<div class=\"fl-input-group fl-subject\">\n\t\t<label for=\"fl-subject\" >Subject<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"subject-error\">Please enter a subject.<\/span>\n\t\t<input type=\"text\" id=\"fl-subject\" aria-describedby=\"subject-error\" name=\"fl-subject\" value=\"\" placeholder=\"Subject\" \/>\n\t<\/div>\n\t\t\t<div class=\"fl-input-group fl-email\">\n\t\t<label for=\"fl-email\" >Your email<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"email-error\">Please enter a valid email.<\/span>\n\t\t<input type=\"email\" id=\"fl-email\" aria-describedby=\"email-error\" name=\"fl-email\" value=\"\" placeholder=\"Your email\" \/>\n\t<\/div>\n\t\t\t<div class=\"fl-input-group fl-phone\">\n\t\t<label for=\"fl-phone\">Your phone<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"phone-error\">Please enter a valid phone number.<\/span>\n\t\t<input type=\"tel\" id=\"fl-phone\" aria-describedby=\"phone-error\" name=\"fl-phone\" value=\"\" placeholder=\"Your phone\" \/>\n\t<\/div>\n\t\t<div class=\"fl-input-group fl-message\">\n\t\t<label for=\"fl-message\" >Your message<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"message-error\">Please enter a message.<\/span>\n\t\t<textarea id=\"fl-message\" name=\"fl-message\" aria-describedby=\"message-error\" placeholder=\"Your message\"><\/textarea>\n\t<\/div>\n\t\n\t\t<div class=\"fl-input-group fl-recaptcha\">\n\t\t<span class=\"fl-contact-error\">Please check the captcha to verify you are not a robot.<\/span>\n\t\t<div id=\"x6u5esqn47cw-fl-grecaptcha\" class=\"fl-grecaptcha\" data-sitekey=\"6Lc47EksAAAAAEuRXMy_abGZobeJ9sCrsJFt6KAs\" data-validate=\"normal\" data-theme=\"light\"><\/div>\n\t<\/div>\n\t\t<div class=\"fl-button-wrap fl-button-width-auto fl-button-left\">\n\t\t\t<a href=\"#\" target=\"_self\" class=\"fl-button\">\n\t\t\t\t\t\t\t<span class=\"fl-button-text\">Send<\/span>\n\t\t\t\t\t<\/a>\n<\/div>\n\t\n\t<span class=\"fl-send-error\" style=\"display:none;\">Message failed. Please try again.<\/span>\n<\/form>\n\t<span class=\"fl-success-msg\" style=\"display:none;\"><p>Thanks for your message! Patrick We\u2019ll be in touch soon.<\/p><\/span>\n\t<\/div>\n<\/div>\n<\/div>\n<!-- ========================================================= -->\n<!-- SCRIPTS OPTIMIS\u00c9S WP (Isol\u00e9s, S\u00e9curis\u00e9s, Sans jQuery requis) -->\n<!-- ========================================================= -->\n\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n<meta charset=\"UTF-8\"\/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\n<title>Effet N\u00e9on Google<\/title>\n<style>\n  \/* --- LE CODE CSS \u00c0 COPIER POUR BEAVER BUILDER --- *\/\n  \/* Utilisation d'un ID unique pour garantir que \u00e7a ne casse pas le reste du site *\/\n  #trustindex-google-neon {\n    position: relative;\n    padding: 30px;\n    border-radius: 12px;\n    background-color: transparent; \/* Fond totalement transparent, ne colore pas la rang\u00e9e *\/\n    width: 100%;\n    max-width: 800px;\n    margin: 0 auto;\n    \/* Bordures opaques aux 4 couleurs de Google (Sans effet n\u00e9on) *\/\n    border-top: 5px solid #EA4335;    \/* Haut: Rouge Google *\/\n    border-right: 5px solid #4285F4;  \/* Droite: Bleu Google *\/\n    border-bottom: 5px solid #34A853; \/* Bas: Vert Google *\/\n    border-left: 5px solid #FBBC05;   \/* Gauche: Jaune Google *\/\n    transition: transform 0.3s ease-in-out;\n  }\n  \/* Petit effet de soul\u00e8vement au survol (optionnel, sans lumi\u00e8re) *\/\n  #trustindex-google-neon:hover {\n    transform: translateY(-4px);\n  }\n<\/style>\n<\/head>\n<body>\n  <!-- Le conteneur avec l'ID unique (isole le style du reste du site) -->\n    <!-- Votre script Trustindex -->\n<\/body>\n<\/html>\n\t<!-- \n    SECTION : ABOUT \/ PRESENTATION & CONTACT\n    - Very obvious Premium Red \"Close\" Button\n    - Native BB form via ID 1369 (Sending and validation managed by Beaver Builder)\n    - Neon Green effect when typing preserved\n    - Invisible modal without `display:none` to ensure reCAPTCHA and BB initialization!\n    - Neon Green success modal with close on scroll\n-->\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;700;900&#038;display=swap\" rel=\"stylesheet\"\/>\n<!-- NOTE: The reCAPTCHA script was removed here, as Beaver Builder loads it automatically with your module's configuration -->\n    <style>\n        \/* ========================================================= *\/\n        \/* WORDPRESS \/ BEAVER BUILDER ANTI-CONFLICT SECURITY         *\/\n        \/* ========================================================= *\/\n        .wp-title-override {\n            font-size: 2.1rem !important;\n            line-height: 1.15 !important;\n            font-weight: 900 !important;\n            color: #1e3a8a !important;\n        }\n        @media (min-width: 768px) {\n            .wp-title-override { font-size: 2.5rem !important; }\n        }\n        @media (min-width: 1024px) {\n            .wp-title-override { font-size: 2.75rem !important; }\n        }\n        \/* ========================================================= *\/\n        \/* \"CLICK MAGNET\" EFFECT (CONTINUOUS SHINE ON CONTACT BUTTONS)*\/\n        \/* ========================================================= *\/\n        .btn-magnet {\n            position: relative;\n            overflow: hidden;\n            transition: all 0.3s ease;\n        }\n        .btn-magnet::after {\n            content: '';\n            position: absolute;\n            top: 0;\n            left: -100%;\n            width: 50%;\n            height: 100%;\n            background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.4) 50%, rgba(255,255,255,0) 100%);\n            transform: skewX(-20deg);\n            animation: shine-effect 3s infinite;\n            pointer-events: none; \/* VERY IMPORTANT: Lets the click pass through the light effect *\/\n        }\n        @keyframes shine-effect {\n            0% { left: -100%; }\n            20% { left: 200%; }\n            100% { left: 200%; }\n        }\n        \/* Discreet Scrollbar Modal *\/\n        .modal-scroll::-webkit-scrollbar { width: 6px; }\n        .modal-scroll::-webkit-scrollbar-track { background: #f1f5f9; border-radius: 8px; }\n        .modal-scroll::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 8px; }\n        \/* ========================================================= *\/\n        \/* NEON EFFECTS FOR BUTTON CONTAINER                         *\/\n        \/* ========================================================= *\/\n        \/* Neon Blue buttons container *\/\n        .neon-blue-box {\n            border: 2px solid #3b82f6;\n            background-color: #ffffff;\n            animation: neon-pulse 2.5s infinite alternate ease-in-out;\n        }\n        @keyframes neon-pulse {\n            0% {\n                box-shadow: 0 0 10px rgba(59, 130, 246, 0.3), inset 0 0 5px rgba(59, 130, 246, 0.1);\n                border-color: #3b82f6;\n            }\n            100% {\n                box-shadow: 0 0 25px rgba(59, 130, 246, 0.6), inset 0 0 10px rgba(59, 130, 246, 0.2);\n                border-color: #60a5fa;\n            }\n        }\n        \/* Premium Wrapper for Beaver Builder form *\/\n        .bb-premium-wrapper {\n            background-color: #ffffff;\n            border: 2px solid #3b82f6;\n            box-shadow: 0 0 15px rgba(59, 130, 246, 0.2), inset 0 0 5px rgba(59, 130, 246, 0.05);\n            border-radius: 1.5rem;\n            padding: 1.5rem;\n        }\n        @media (min-width: 768px) {\n            .bb-premium-wrapper { padding: 2rem; }\n        }\n        \/* ========================================================= *\/\n        \/* CSS REDEFINITION : FORCE NEON STYLE ON BEAVER BUILDER     *\/\n        \/* Limited to the .beaver-builder-form-area class for 0 conflict *\/\n        \/* ========================================================= *\/\n        \/* Hide useless BB base styles if present *\/\n        .beaver-builder-form-area .fl-form-field {\n            margin-bottom: 1.5rem !important;\n        }\n        .beaver-builder-form-area label {\n            font-weight: 700 !important;\n            color: #334155 !important;\n            margin-bottom: 0.5rem !important;\n            display: block !important;\n            font-size: 0.875rem !important;\n        }\n        \/* Default BB fields (Intense Blue) *\/\n        .beaver-builder-form-area input[type=\"text\"],\n        .beaver-builder-form-area input[type=\"email\"],\n        .beaver-builder-form-area input[type=\"tel\"],\n        .beaver-builder-form-area input[type=\"number\"],\n        .beaver-builder-form-area textarea {\n            background-color: #ffffff !important;\n            border: 2px solid #3b82f6 !important;\n            box-shadow: 0 0 15px rgba(59, 130, 246, 0.5), inset 0 0 5px rgba(59, 130, 246, 0.15) !important;\n            color: #1e3a8a !important;\n            border-radius: 1rem !important;\n            padding: 0.875rem 1.25rem !important;\n            font-weight: 500 !important;\n            transition: all 0.3s ease-in-out !important;\n            width: 100% !important;\n            box-sizing: border-box !important;\n        }\n        \/* Focus on BB fields (Lighter Blue) *\/\n        .beaver-builder-form-area input:focus,\n        .beaver-builder-form-area textarea:focus {\n            outline: none !important;\n            border-color: #60a5fa !important;\n            box-shadow: 0 0 25px rgba(59, 130, 246, 0.8), inset 0 0 10px rgba(59, 130, 246, 0.3) !important;\n            background-color: #f8fafc !important;\n        }\n        \/* FILLED STATE : Instant typing (Neon Green - added by JS) *\/\n        .beaver-builder-form-area input.is-filled,\n        .beaver-builder-form-area textarea.is-filled {\n            border-color: #22c55e !important;\n            box-shadow: 0 0 20px rgba(34, 197, 94, 0.6), inset 0 0 8px rgba(34, 197, 94, 0.25) !important;\n            background-color: #ffffff !important;\n        }\n        \/* NATIVE BB ERROR STATE : Neon Red with Shake *\/\n        .beaver-builder-form-area .fl-form-error input,\n        .beaver-builder-form-area .fl-form-error textarea {\n            border-color: #ef4444 !important;\n            box-shadow: 0 0 20px rgba(239, 68, 68, 0.6), inset 0 0 8px rgba(239, 68, 68, 0.25) !important;\n            animation: shake 0.4s ease-in-out;\n            background-color: #fffaf9 !important;\n        }\n        @keyframes shake {\n            0%, 100% { transform: translateX(0); }\n            25% { transform: translateX(-5px); }\n            50% { transform: translateX(5px); }\n            75% { transform: translateX(-5px); }\n        }\n        \/* BB SUBMIT BUTTON (Premium Style - No light effect to ensure native click) *\/\n        .beaver-builder-form-area .fl-button-wrap button,\n        .beaver-builder-form-area .fl-button-wrap input[type=\"submit\"],\n        .beaver-builder-form-area .fl-button {\n            background: linear-gradient(to right, #1e3a8a, #2563eb) !important;\n            color: #ffffff !important;\n            padding: 1.1rem 2rem !important;\n            border-radius: 1rem !important;\n            font-weight: 900 !important;\n            text-transform: uppercase !important;\n            letter-spacing: 0.1em !important;\n            border: none !important;\n            box-shadow: 0 8px 20px rgba(37, 99, 235, 0.25) !important;\n            transition: all 0.3s ease !important;\n            width: 100% !important;\n            display: flex !important;\n            justify-content: center !important;\n            align-items: center !important;\n            cursor: pointer !important;\n            margin-top: 1.5rem !important;\n            font-size: 14px !important;\n        }\n        .beaver-builder-form-area .fl-button-wrap button:hover,\n        .beaver-builder-form-area .fl-button-wrap input[type=\"submit\"]:hover,\n        .beaver-builder-form-area .fl-button:hover {\n            box-shadow: 0 12px 25px rgba(37, 99, 235, 0.45) !important;\n            transform: translateY(-2px) !important;\n        }\n        \/* Custom Success Message (Animated Neon Green) *\/\n        .beaver-builder-form-area .custom-neon-success {\n            background-color: #ffffff !important;\n            border: 3px solid #22c55e !important;\n            box-shadow: 0 0 30px rgba(34, 197, 94, 0.5), inset 0 0 15px rgba(34, 197, 94, 0.15) !important;\n            padding: 2.5rem 1.5rem !important;\n            border-radius: 1.5rem !important;\n            text-align: center !important;\n            margin-top: 1rem !important;\n            animation: neon-pulse-green 2s infinite alternate ease-in-out !important;\n        }\n        @keyframes neon-pulse-green {\n            0% { box-shadow: 0 0 15px rgba(34, 197, 94, 0.4), inset 0 0 5px rgba(34, 197, 94, 0.1); }\n            100% { box-shadow: 0 0 35px rgba(34, 197, 94, 0.7), inset 0 0 15px rgba(34, 197, 94, 0.2); }\n        }\n        \/* Native Beaver Builder reCAPTCHA display security on mobile *\/\n        .beaver-builder-form-area .fl-form-recaptcha,\n        .beaver-builder-form-area .g-recaptcha {\n            display: flex !important;\n            justify-content: center !important;\n            overflow: hidden !important;\n            margin: 1.5rem 0 !important;\n            transform: scale(0.95);\n            transform-origin: center;\n        }\n    <\/style>\n        <!-- Main Container -->\n                <!-- LEFT COLUMN: THE PHOTO -->\n                        <img decoding=\"async\" src=\"https:\/\/accord-piano-montreal.com\/wp-content\/uploads\/2026\/02\/IMG_5735-scaled.jpeg\" \n                             alt=\"Patrick Brennan tuning a piano\"\/>\n                <!-- RIGHT COLUMN: THE TEXT -->\n                    <h2>\n                        A reliable, honest, and experienced piano tuner\n                    <\/h2>\n                    <!-- Trustindex Badge -->\n                                Exceptional Customer Service\n                                Certified by: Trustindex\n                    \n                        Looking for a good, competent, and trustworthy piano tuner?\n                    \n                    \n                        For over 25 years, Patrick Brennan, piano technician and tuner, has been assisting pianists, individuals, institutions, and music professionals with a simple approach:\n                    \n                        \n                            \ud83d\udc49 Making the right diagnosis and doing only what is necessary.\n                        \n                    \n                        Every piano is different. The goal is always the same: an instrument that is in tune, pleasant to play, and durable over time.\n                    \n            <!-- ========================================== -->\n            <!-- BOTTOM SECTION : CALL TO ACTION (3 BUTTONS)-->\n            <!-- ========================================== -->\n                <h3>\n                    Fast response \u2022 In-home service\n                <\/h3>\n                <!-- The 3 CLICK MAGNET buttons -->\n                    <!-- CALL Button -->\n                    <a href=\"tel:+15149694849\">\n                        Call\n                    <\/a>\n                    <!-- TEXT Button -->\n                    <a href=\"sms:+15149694849\">\n                        Text\n                    <\/a>\n                    <!-- EMAIL Button (Opens Modal) -->\n                    <button type=\"button\" onclick=\"openEmailModal(event)\">\n                        Email\n                    <\/button>\n<!-- ========================================================= -->\n<!-- FORM MODAL (Opens when clicking on \"Email\")               -->\n<!-- ========================================================= -->\n<!-- MAJOR FIX: We replace `hidden` with `invisible opacity-0 pointer-events-none` \n     so Beaver Builder can initialize reCAPTCHA on page load -->\n    <!-- Dark background clickable to close -->\n    <!-- Main Modal Box -->\n        <!-- Swipe Indicator for Mobile (Small grey bar) -->\n        <!-- Modal Header with Red and Very Obvious CLOSE Button -->\n            <h3>\n                Contact\n            <\/h3>\n            <!-- CLOSE BUTTON (Red, Shadow, Very visible) - type=\"button\" to avoid submitting the form -->\n            <button type=\"button\" onclick=\"closeEmailModal()\">\n                Close\n            <\/button>\n        <!-- Modal Body (Scrollable) -->\n                <!-- Title Included inside the form -->\n                <h4>\n                    Patrick Brennan<br \/>\n                    Piano Tuner\n                <\/h4>\n                <!-- ============================================================ -->\n                <!-- BEAVER BUILDER ZONE                                          -->\n                <!-- The real ID 1369 is injected here!                           -->\n                <!-- ============================================================ -->\n                    <!-- The unique shortcode for Beaver Builder -->\n                    <div class=\"fl-builder-content fl-builder-content-1369 fl-builder-template fl-builder-module-template fl-builder-global-templates-locked\" data-post-id=\"1369\"><div class=\"fl-module fl-module-contact-form fl-node-x6u5esqn47cw\" data-node=\"x6u5esqn47cw\">\n\t<div class=\"fl-module-content fl-node-content\">\n\t\t<form class=\"fl-contact-form\" >\t<input type=\"hidden\" id=\"fl-contact-form-nonce\" name=\"fl-contact-form-nonce\" value=\"eb89ae9ab0\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/pages\/569\" \/>\t<input type=\"hidden\" name=\"fl-layout-id\" value=\"569\" \/>\n\t\t<div class=\"fl-input-group fl-name\">\n\t\t<label for=\"fl-name\" >Your name<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"name-error\">Please enter your name.<\/span>\n\t\t<input type=\"text\" id=\"fl-name\" name=\"fl-name\" aria-describedby=\"name-error\" value=\"\" placeholder=\"Your name\" \/>\n\t<\/div>\n\t\t\t<div class=\"fl-input-group fl-subject\">\n\t\t<label for=\"fl-subject\" >Subject<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"subject-error\">Please enter a subject.<\/span>\n\t\t<input type=\"text\" id=\"fl-subject\" aria-describedby=\"subject-error\" name=\"fl-subject\" value=\"\" placeholder=\"Subject\" \/>\n\t<\/div>\n\t\t\t<div class=\"fl-input-group fl-email\">\n\t\t<label for=\"fl-email\" >Your email<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"email-error\">Please enter a valid email.<\/span>\n\t\t<input type=\"email\" id=\"fl-email\" aria-describedby=\"email-error\" name=\"fl-email\" value=\"\" placeholder=\"Your email\" \/>\n\t<\/div>\n\t\t\t<div class=\"fl-input-group fl-phone\">\n\t\t<label for=\"fl-phone\">Your phone<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"phone-error\">Please enter a valid phone number.<\/span>\n\t\t<input type=\"tel\" id=\"fl-phone\" aria-describedby=\"phone-error\" name=\"fl-phone\" value=\"\" placeholder=\"Your phone\" \/>\n\t<\/div>\n\t\t<div class=\"fl-input-group fl-message\">\n\t\t<label for=\"fl-message\" >Your message<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"message-error\">Please enter a message.<\/span>\n\t\t<textarea id=\"fl-message\" name=\"fl-message\" aria-describedby=\"message-error\" placeholder=\"Your message\"><\/textarea>\n\t<\/div>\n\t\n\t\t<div class=\"fl-input-group fl-recaptcha\">\n\t\t<span class=\"fl-contact-error\">Please check the captcha to verify you are not a robot.<\/span>\n\t\t<div id=\"x6u5esqn47cw-fl-grecaptcha\" class=\"fl-grecaptcha\" data-sitekey=\"6Lc47EksAAAAAEuRXMy_abGZobeJ9sCrsJFt6KAs\" data-validate=\"normal\" data-theme=\"light\"><\/div>\n\t<\/div>\n\t\t<div class=\"fl-button-wrap fl-button-width-auto fl-button-left\">\n\t\t\t<a href=\"#\" target=\"_self\" class=\"fl-button\">\n\t\t\t\t\t\t\t<span class=\"fl-button-text\">Send<\/span>\n\t\t\t\t\t<\/a>\n<\/div>\n\t\n\t<span class=\"fl-send-error\" style=\"display:none;\">Message failed. Please try again.<\/span>\n<\/form>\n\t<span class=\"fl-success-msg\" style=\"display:none;\"><p>Thanks for your message! Patrick We\u2019ll be in touch soon.<\/p><\/span>\n\t<\/div>\n<\/div>\n<\/div>\n<!-- ========================================================= -->\n<!-- JAVASCRIPT : Open logic, Swipe, and light NEON           -->\n<!-- ========================================================= -->\n\t<!-- \n    SECTION : 3 SERVICES (TUNING, REPAIR, PLAYER PIANO)\n    Premium Design: 100% clickable cards, blue button outline, visible A440.\n-->\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;700;900&#038;display=swap\" rel=\"stylesheet\"\/>\n<!-- Top margin (pt) heavily reduced to bring the section closer -->\n        <!-- Section Title (Larger on mobile as requested) -->\n            <h2>\n                Services\n            <\/h2>\n        <!-- 3-column grid -->\n            <!-- CARD 1: PIANO TUNING (Entire card is a link) -->\n            <a href=\"https:\/\/accord-piano-montreal.com\/en\/tuning\/\">\n                <!-- A440 Hz Watermark (Moved here and made more visible) -->\n                    A440\n                <h3>\n                    Piano Tuning\n                <\/h3>\n                \n                    A well-tuned piano offers stable pitch, richer sound, and more playing pleasure. Tuning for upright and grand pianos, for individuals, studios, performance halls, and concerts.\n                \n                <!-- Fake button inside the link -->\n                        Learn more about piano tuning\n            <\/a>\n            <!-- CARD 2: PIANO REPAIR (Entire card is a link) -->\n            <a href=\"https:\/\/accord-piano-montreal.com\/en\/repair\/\">\n                <h3>\n                    Piano Repair\n                <\/h3>\n                \n                    Piano repair and regulation: uneven keys, noisy action, or a less responsive piano? Before considering major repairs, an honest diagnosis often allows the problem to be corrected effectively.\n                \n                        View piano repair services\n            <\/a>\n            <!-- CARD 3: PLAYER PIANO (Entire card is a link) -->\n            <a href=\"https:\/\/accord-piano-montreal.com\/en\/piano-player\/\">\n                <h3>\n                    Player Piano\n                <\/h3>\n                \n                    Specialist in player pianos and playback systems, both vintage and modern. A precise field that requires experience, rigor, and a deep understanding of the mechanics.\n                \n                        Discover the player piano service\n            <\/a>\n\t<!-- \n    SECTION: APPROACH, PROCESS AND CALL TO ACTION\n    - 6 static approach points: Neon Green lighting column by column.\n    - Points stay green, then do 3 synchronized flashes at the end.\n    - Strict Sequential Animation (Blue -> Green) + Laser on the 4 steps preserved.\n    - Premium Contact Modal (Beaver Builder id=1369) attached to the Email button.\n-->\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;600;700;900&#038;display=swap\" rel=\"stylesheet\"\/>\n<style>\n    \/* === Golden Sparkles (For the Call to Action) === *\/\n    .card-sparkle {\n        position: absolute;\n        background: #ffffff;\n        border-radius: 50%;\n        box-shadow: 0 0 10px 3px rgba(251, 191, 36, 0.9);\n        z-index: 20;\n    }\n    .cs-1 { top: -2px; left: 50%; width: 4px; height: 4px; animation: cs-pulse-x 2s infinite alternate; }\n    .cs-2 { bottom: -2px; left: 50%; width: 5px; height: 5px; animation: cs-pulse-x 2s infinite alternate 0.7s; }\n    .cs-3 { top: 50%; left: -2px; width: 3px; height: 3px; animation: cs-pulse-y 2s infinite alternate 1.3s; }\n    .cs-4 { top: 50%; right: -2px; width: 4px; height: 4px; animation: cs-pulse-y 2s infinite alternate 0.4s; }\n    @keyframes cs-pulse-x {\n        0% { transform: scale(0.8) translateX(-50%); opacity: 0.5; box-shadow: 0 0 5px 1px rgba(251, 191, 36, 0.5); }\n        100% { transform: scale(1.5) translateX(-50%); opacity: 1; box-shadow: 0 0 15px 4px rgba(251, 191, 36, 1); }\n    }\n    @keyframes cs-pulse-y {\n        0% { transform: scale(0.8) translateY(-50%); opacity: 0.5; box-shadow: 0 0 5px 1px rgba(251, 191, 36, 0.5); }\n        100% { transform: scale(1.5) translateY(-50%); opacity: 1; box-shadow: 0 0 15px 4px rgba(251, 191, 36, 1); }\n    }\n    \/* ========================================================= *\/\n    \/* 6 POINTS ANIMATION: COLUMN BY COLUMN + 3 FLASHES          *\/\n    \/* Grid Order: 1, 3, 5 (Left) then 2, 4, 6 (Right)           *\/\n    \/* ========================================================= *\/\n    .chk-icon {\n        background-color: #3b82f6; \/* Intense Blue default *\/\n        color: #ffffff;\n        box-shadow: 0 0 10px rgba(59, 130, 246, 0.7);\n        transition: background-color 0.2s, box-shadow 0.2s;\n    }\n    .chk-icon-1 { animation: chk-seq-1 12s infinite; } \/* Col 1 - Pos 1 *\/\n    .chk-icon-3 { animation: chk-seq-3 12s infinite; } \/* Col 1 - Pos 2 *\/\n    .chk-icon-5 { animation: chk-seq-5 12s infinite; } \/* Col 1 - Pos 3 *\/\n    .chk-icon-2 { animation: chk-seq-2 12s infinite; } \/* Col 2 - Pos 1 *\/\n    .chk-icon-4 { animation: chk-seq-4 12s infinite; } \/* Col 2 - Pos 2 *\/\n    .chk-icon-6 { animation: chk-seq-6 12s infinite; } \/* Col 2 - Pos 3 *\/\n    \/* POINT 1 (On from 0% to 83%) *\/\n    @keyframes chk-seq-1 {\n        0%, 83% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); }\n        85% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        88% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 1 *\/\n        90% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        93% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 2 *\/\n        95% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        98% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 3 *\/\n        100% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n    }\n    \/* POINT 3 (On from 8% to 83%) *\/\n    @keyframes chk-seq-3 {\n        0%, 7% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        8%, 83% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); }\n        85% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        88% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 1 *\/\n        90% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        93% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 2 *\/\n        95% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        98% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 3 *\/\n        100% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n    }\n    \/* POINT 5 (On from 16% to 83%) *\/\n    @keyframes chk-seq-5 {\n        0%, 15% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        16%, 83% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); }\n        85% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        88% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 1 *\/\n        90% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        93% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 2 *\/\n        95% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        98% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 3 *\/\n        100% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n    }\n    \/* POINT 2 (On from 24% to 83%) *\/\n    @keyframes chk-seq-2 {\n        0%, 23% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        24%, 83% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); }\n        85% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        88% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 1 *\/\n        90% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        93% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 2 *\/\n        95% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        98% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 3 *\/\n        100% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n    }\n    \/* POINT 4 (On from 32% to 83%) *\/\n    @keyframes chk-seq-4 {\n        0%, 31% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        32%, 83% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); }\n        85% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        88% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 1 *\/\n        90% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        93% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 2 *\/\n        95% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        98% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 3 *\/\n        100% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n    }\n    \/* POINT 6 (On from 40% to 83%) *\/\n    @keyframes chk-seq-6 {\n        0%, 39% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        40%, 83% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); }\n        85% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        88% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 1 *\/\n        90% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        93% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 2 *\/\n        95% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n        98% { background-color: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.9); } \/* Flash 3 *\/\n        100% { background-color: #3b82f6; box-shadow: 0 0 10px rgba(59,130,246,0.7); }\n    }\n    \/* ========================================================= *\/\n    \/* STRICT SEQUENTIAL ANIMATION: THE 4 STEPS (PROCESS)        *\/\n    \/* Time base: 12 seconds. Each step shines for 3 seconds     *\/\n    \/* ========================================================= *\/\n    .step-box {\n        border: 2px solid #3b82f6;\n        background-color: #ffffff;\n        border-radius: 1.5rem;\n        padding: 1.5rem 1rem;\n        position: relative;\n        z-index: 10;\n        transition: all 0.4s ease;\n        box-shadow: 0 0 15px rgba(59, 130, 246, 0.4), inset 0 0 8px rgba(59, 130, 246, 0.1);\n        height: 100%;\n        animation: step-green 12s infinite;\n    }\n    .step-circle { \n        transition: all 0.4s ease; background-color: #ffffff; \n        animation: circle-green 12s infinite;\n    }\n    \/* Negative delays for synchronization *\/\n    .s-1 { animation-delay: 0s; }\n    .s-2 { animation-delay: -9s; } \/* 12 - 3 *\/\n    .s-3 { animation-delay: -6s; } \/* 12 - 6 *\/\n    .s-4 { animation-delay: -3s; } \/* 12 - 9 *\/\n    @keyframes step-green {\n        0%, 22% { border-color: #22c55e; box-shadow: 0 0 25px rgba(34, 197, 94, 0.8), inset 0 0 15px rgba(34, 197, 94, 0.3); transform: translateY(-6px); }\n        25%, 100% { border-color: #3b82f6; box-shadow: 0 0 15px rgba(59, 130, 246, 0.4), inset 0 0 8px rgba(59, 130, 246, 0.1); transform: translateY(0); }\n    }\n    @keyframes circle-green {\n        0%, 22% { border-color: #22c55e; color: #ffffff; background: #22c55e; box-shadow: 0 0 15px rgba(34,197,94,0.6); }\n        25%, 100% { border-color: #bfdbfe; color: #2563eb; background: #ffffff; box-shadow: none; }\n    }\n    \/* Pulsating Blue Laser Beam synchronized on 12s *\/\n    .laser-line-container {\n        position: absolute;\n        top: 52px; \/* Centered exactly behind the circles (24px padding + 28px half-circle) *\/\n        left: 12.5%;\n        width: 75%;\n        height: 6px;\n        background: rgba(59, 130, 246, 0.1);\n        z-index: 0;\n        border-radius: 3px;\n    }\n    .laser-beam {\n        position: absolute;\n        top: 0; left: 0; height: 100%;\n        background: #60a5fa; \/* Bright light blue *\/\n        box-shadow: 0 0 20px 6px rgba(59, 130, 246, 0.9), 0 0 40px 10px rgba(147, 197, 253, 0.6);\n        width: 0%;\n        animation: laser-shoot 12s infinite linear;\n        border-radius: 3px;\n    }\n    @keyframes laser-shoot {\n        0% { width: 0%; opacity: 0; left: 0; }\n        2% { opacity: 1; width: 0%; left: 0; }\n        25% { width: 33.33%; left: 0; opacity: 1; }\n        50% { width: 66.66%; left: 0; opacity: 1; }\n        75% { width: 100%; left: 0; opacity: 1; }\n        98% { width: 100%; left: 0; opacity: 1; }\n        100% { width: 100%; left: 0; opacity: 0; }\n    }\n    \/* === 3D Effect & Lifting of the final Call to Action === *\/\n    .pop-out-3d {\n        border-bottom-width: 4px !important;\n        border-bottom-color: rgba(205, 149, 12, 0.9) !important; \n        transition: all 0.4s ease;\n        animation: final-cta-lift 12s infinite;\n    }\n    .pop-out-3d:hover {\n        \/* If user hovers, force max lift and pause animation *\/\n        animation-play-state: paused !important;\n        transform: translateY(-20px) scale(1.02) !important;\n        box-shadow: 0 45px 70px -15px rgba(0, 0, 0, 0.6), 0 20px 30px -5px rgba(0, 0, 0, 0.4), 0 0 80px rgba(251, 191, 36, 0.8), inset 0 2px 6px rgba(255, 255, 255, 0.4) !important;\n        border-bottom-color: #fbbf24 !important;\n    }\n    @keyframes final-cta-lift {\n        0%, 73% { \/* Stays calm during the first 3 steps *\/\n            transform: translateY(-8px);\n            box-shadow: 0 25px 45px -10px rgba(0, 0, 0, 0.4), 0 10px 20px -5px rgba(0, 0, 0, 0.2), 0 0 35px rgba(251, 191, 36, 0.3), inset 0 2px 4px rgba(255, 255, 255, 0.2);\n            border-bottom-color: rgba(205, 149, 12, 0.9) !important;\n        }\n        75%, 98% { \/* Lifts precisely when the 4th step turns on (last 3 seconds) *\/\n            transform: translateY(-20px) scale(1.02);\n            box-shadow: 0 45px 70px -15px rgba(0, 0, 0, 0.6), 0 20px 30px -5px rgba(0, 0, 0, 0.4), 0 0 80px rgba(251, 191, 36, 0.9), inset 0 2px 6px rgba(255, 255, 255, 0.4);\n            border-bottom-color: #fbbf24 !important;\n        }\n        100% {\n            transform: translateY(-8px);\n            box-shadow: 0 25px 45px -10px rgba(0, 0, 0, 0.4), 0 10px 20px -5px rgba(0, 0, 0, 0.2), 0 0 35px rgba(251, 191, 36, 0.3), inset 0 2px 4px rgba(255, 255, 255, 0.2);\n            border-bottom-color: rgba(205, 149, 12, 0.9) !important;\n        }\n    }\n    \/* ========================================================= *\/\n    \/* CSS FOR MODAL AND BEAVER BUILDER FORM                     *\/\n    \/* ========================================================= *\/\n    .modal-scroll::-webkit-scrollbar { width: 6px; }\n    .modal-scroll::-webkit-scrollbar-track { background: #f1f5f9; border-radius: 8px; }\n    .modal-scroll::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 8px; }\n    .bb-premium-wrapper {\n        background-color: #ffffff; border: 2px solid #3b82f6;\n        box-shadow: 0 0 15px rgba(59, 130, 246, 0.2), inset 0 0 5px rgba(59, 130, 246, 0.05);\n        border-radius: 1.5rem; padding: 1.5rem;\n    }\n    @media (min-width: 768px) { .bb-premium-wrapper { padding: 2rem; } }\n    .beaver-builder-form-area .fl-form-field { margin-bottom: 1.5rem !important; }\n    .beaver-builder-form-area label {\n        font-weight: 700 !important; color: #334155 !important; margin-bottom: 0.5rem !important;\n        display: block !important; font-size: 0.875rem !important;\n    }\n    .beaver-builder-form-area input[type=\"text\"],\n    .beaver-builder-form-area input[type=\"email\"],\n    .beaver-builder-form-area input[type=\"tel\"],\n    .beaver-builder-form-area input[type=\"number\"],\n    .beaver-builder-form-area textarea {\n        background-color: #ffffff !important; border: 2px solid #3b82f6 !important;\n        box-shadow: 0 0 15px rgba(59, 130, 246, 0.5), inset 0 0 5px rgba(59, 130, 246, 0.15) !important;\n        color: #1e3a8a !important; border-radius: 1rem !important; padding: 0.875rem 1.25rem !important;\n        font-weight: 500 !important; transition: all 0.3s ease-in-out !important; width: 100% !important; box-sizing: border-box !important;\n    }\n    .beaver-builder-form-area input:focus, .beaver-builder-form-area textarea:focus {\n        outline: none !important; border-color: #60a5fa !important; box-shadow: 0 0 25px rgba(59, 130, 246, 0.8), inset 0 0 10px rgba(59, 130, 246, 0.3) !important; background-color: #f8fafc !important;\n    }\n    .beaver-builder-form-area input.is-filled, .beaver-builder-form-area textarea.is-filled {\n        border-color: #22c55e !important; box-shadow: 0 0 20px rgba(34, 197, 94, 0.6), inset 0 0 8px rgba(34, 197, 94, 0.25) !important; background-color: #ffffff !important;\n    }\n    .beaver-builder-form-area .fl-form-error input, .beaver-builder-form-area .fl-form-error textarea {\n        border-color: #ef4444 !important; box-shadow: 0 0 20px rgba(239, 68, 68, 0.6), inset 0 0 8px rgba(239, 68, 68, 0.25) !important; animation: shake 0.4s ease-in-out; background-color: #fffaf9 !important;\n    }\n    @keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 50% { transform: translateX(5px); } 75% { transform: translateX(-5px); } }\n    .beaver-builder-form-area .fl-button-wrap button, .beaver-builder-form-area .fl-button-wrap input[type=\"submit\"], .beaver-builder-form-area .fl-button {\n        background: linear-gradient(to right, #1e3a8a, #2563eb) !important; color: #ffffff !important; padding: 1.1rem 2rem !important; border-radius: 1rem !important; font-weight: 900 !important;\n        text-transform: uppercase !important; letter-spacing: 0.1em !important; border: none !important; box-shadow: 0 8px 20px rgba(37, 99, 235, 0.25) !important; transition: all 0.3s ease !important;\n        width: 100% !important; display: flex !important; justify-content: center !important; align-items: center !important; cursor: pointer !important; margin-top: 1.5rem !important; font-size: 14px !important;\n    }\n    .beaver-builder-form-area .fl-button-wrap button:hover, .beaver-builder-form-area .fl-button-wrap input[type=\"submit\"]:hover, .beaver-builder-form-area .fl-button:hover {\n        box-shadow: 0 12px 25px rgba(37, 99, 235, 0.45) !important; transform: translateY(-2px) !important;\n    }\n    .beaver-builder-form-area .custom-neon-success {\n        background-color: #ffffff !important; border: 3px solid #22c55e !important; box-shadow: 0 0 30px rgba(34, 197, 94, 0.5), inset 0 0 15px rgba(34, 197, 94, 0.15) !important;\n        padding: 2.5rem 1.5rem !important; border-radius: 1.5rem !important; text-align: center !important; margin-top: 1rem !important; animation: neon-pulse-green 2s infinite alternate ease-in-out !important;\n    }\n    @keyframes neon-pulse-green { 0% { box-shadow: 0 0 15px rgba(34, 197, 94, 0.4), inset 0 0 5px rgba(34, 197, 94, 0.1); } 100% { box-shadow: 0 0 35px rgba(34, 197, 94, 0.7), inset 0 0 15px rgba(34, 197, 94, 0.2); } }\n    .beaver-builder-form-area .fl-form-recaptcha, .beaver-builder-form-area .g-recaptcha {\n        display: flex !important; justify-content: center !important; overflow: hidden !important; margin: 1.5rem 0 !important; transform: scale(0.95); transform-origin: center;\n    }\n<\/style>\n        <!-- THE LARGE UNIFIED BLOCK -->\n            <!-- Background watermark (Subtle piano keys) -->\n            <!-- ========================================== -->\n            <!-- PART 1: THE PROFESSIONAL APPROACH          -->\n            <!-- ========================================== -->\n                <h2>\n                    A professional approach,<br \/> with no surprises\n                <\/h2>\n                    <!-- Point 1 (Column 1) -->\n                        <p>Over 25 years of experience<\/p>\n                    <!-- Point 2 (Column 2) -->\n                        <p>Recognized and established tuner in the industry<\/p>\n                    <!-- Point 3 (Column 1) -->\n                        <p>Clear and honest diagnosis<\/p>\n                    <!-- Point 4 (Column 2) -->\n                        <p>No unnecessary work<\/p>\n                    <!-- Point 5 (Column 1) -->\n                        <p>Approachable and human service<\/p>\n                    <!-- Point 6 (Column 2) -->\n                        <p>Easy call or text, quick response<\/p>\n                <!-- The Punchline -->\n                    \n                        We take the time to understand your piano before doing any work.\n                    \n            <!-- Separator -->\n            <!-- ========================================== -->\n            <!-- PART 2: THE PROCESS (READING ANIMATION)    -->\n            <!-- ========================================== -->\n                <h3>\n                    How does an appointment work?\n                <\/h3>\n                    <!-- Connecting line with the Laser ray (Visible on Desktop) -->\n                    <!-- Step 1 with animation class -->\n                        1\n                        <h4>Initial Contact<\/h4>\n                        <p>You call or text to schedule a visit.<\/p>\n                    <!-- Step 2 with animation class -->\n                        2\n                        <h4>Evaluation<\/h4>\n                        <p>We discuss the condition of your piano and your needs.<\/p>\n                    <!-- Step 3 with animation class -->\n                        3\n                        <h4>The Service<\/h4>\n                        <p>In-home appointment with transparency and care.<\/p>\n                    <!-- Step 4 with animation class -->\n                        4\n                        <h4>The Result<\/h4>\n                        <p>Your piano regains its full acoustic and mechanical potential.<\/p>\n            <!-- ========================================== -->\n            <!-- PART 3: CALL TO ACTION (ANIMATED LIFT)     -->\n            <!-- ========================================== -->\n                <!-- The 4 magic sparkles on the borders -->\n                <!-- Integrated A440 Hz watermark -->\n                    A440\n                <h3>Need a piano tuner?<\/h3>\n                <p>Call now or send a text for a fast response.<\/p>\n                <!-- The 3 action buttons -->\n                    <!-- Call Button -->\n                    <a href=\"tel:+15149694849\">\n                        Call\n                    <\/a>\n                    <!-- Text Button -->\n                    <a href=\"sms:+15149694849\">\n                        Text\n                    <\/a>\n                    <!-- MODIFIED EMAIL BUTTON (Opens the Premium Modal) -->\n                    <button type=\"button\" onclick=\"openEmailModal(event)\">\n                        Email\n                    <\/button>\n<!-- ========================================================= -->\n<!-- FORM MODAL (Opens when clicking on \"Email\")               -->\n<!-- ========================================================= -->\n            <h3>\n                Contact\n            <\/h3>\n            <button type=\"button\" onclick=\"closeEmailModal()\">\n                Close\n            <\/button>\n                <h4>\n                    Patrick Brennan<br \/>\n                    Piano Tuner\n                <\/h4>\n                    <div class=\"fl-builder-content fl-builder-content-1369 fl-builder-template fl-builder-module-template fl-builder-global-templates-locked\" data-post-id=\"1369\"><div class=\"fl-module fl-module-contact-form fl-node-x6u5esqn47cw\" data-node=\"x6u5esqn47cw\">\n\t<div class=\"fl-module-content fl-node-content\">\n\t\t<form class=\"fl-contact-form\" >\t<input type=\"hidden\" id=\"fl-contact-form-nonce\" name=\"fl-contact-form-nonce\" value=\"eb89ae9ab0\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/pages\/569\" \/>\t<input type=\"hidden\" name=\"fl-layout-id\" value=\"569\" \/>\n\t\t<div class=\"fl-input-group fl-name\">\n\t\t<label for=\"fl-name\" >Your name<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"name-error\">Please enter your name.<\/span>\n\t\t<input type=\"text\" id=\"fl-name\" name=\"fl-name\" aria-describedby=\"name-error\" value=\"\" placeholder=\"Your name\" \/>\n\t<\/div>\n\t\t\t<div class=\"fl-input-group fl-subject\">\n\t\t<label for=\"fl-subject\" >Subject<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"subject-error\">Please enter a subject.<\/span>\n\t\t<input type=\"text\" id=\"fl-subject\" aria-describedby=\"subject-error\" name=\"fl-subject\" value=\"\" placeholder=\"Subject\" \/>\n\t<\/div>\n\t\t\t<div class=\"fl-input-group fl-email\">\n\t\t<label for=\"fl-email\" >Your email<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"email-error\">Please enter a valid email.<\/span>\n\t\t<input type=\"email\" id=\"fl-email\" aria-describedby=\"email-error\" name=\"fl-email\" value=\"\" placeholder=\"Your email\" \/>\n\t<\/div>\n\t\t\t<div class=\"fl-input-group fl-phone\">\n\t\t<label for=\"fl-phone\">Your phone<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"phone-error\">Please enter a valid phone number.<\/span>\n\t\t<input type=\"tel\" id=\"fl-phone\" aria-describedby=\"phone-error\" name=\"fl-phone\" value=\"\" placeholder=\"Your phone\" \/>\n\t<\/div>\n\t\t<div class=\"fl-input-group fl-message\">\n\t\t<label for=\"fl-message\" >Your message<\/label>\n\t\t<span class=\"fl-contact-error\" id=\"message-error\">Please enter a message.<\/span>\n\t\t<textarea id=\"fl-message\" name=\"fl-message\" aria-describedby=\"message-error\" placeholder=\"Your message\"><\/textarea>\n\t<\/div>\n\t\n\t\t<div class=\"fl-input-group fl-recaptcha\">\n\t\t<span class=\"fl-contact-error\">Please check the captcha to verify you are not a robot.<\/span>\n\t\t<div id=\"x6u5esqn47cw-fl-grecaptcha\" class=\"fl-grecaptcha\" data-sitekey=\"6Lc47EksAAAAAEuRXMy_abGZobeJ9sCrsJFt6KAs\" data-validate=\"normal\" data-theme=\"light\"><\/div>\n\t<\/div>\n\t\t<div class=\"fl-button-wrap fl-button-width-auto fl-button-left\">\n\t\t\t<a href=\"#\" target=\"_self\" class=\"fl-button\">\n\t\t\t\t\t\t\t<span class=\"fl-button-text\">Send<\/span>\n\t\t\t\t\t<\/a>\n<\/div>\n\t\n\t<span class=\"fl-send-error\" style=\"display:none;\">Message failed. Please try again.<\/span>\n<\/form>\n\t<span class=\"fl-success-msg\" style=\"display:none;\"><p>Thanks for your message! Patrick We\u2019ll be in touch soon.<\/p><\/span>\n\t<\/div>\n<\/div>\n<\/div>\n<!-- ========================================================= -->\n<!-- JAVASCRIPT: Open logic, Swipe and Lightweight NEON        -->\n<!-- ========================================================= -->\n\n","protected":false},"excerpt":{"rendered":"<p>4.8 Tuning Excellence at the right price. Services &#038; Expertise Professional-level precision, right in your home. Tuning &#038;Repair Piano tuning, repair, and maintenance services, with precision derived from the concert stage, recording studios, and television production. These environments demand flawless pitch, stability, and tonal balance. Every intervention aims for an instrument that is perfectly in&hellip;<\/p>\n","protected":false},"author":1,"featured_media":917,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"advanced_seo_description":"Protect your piano with a Piano Life Saver humidity control system. Professional installation in Montreal by Patrick Brennan for long-term tuning stability.","jetpack_seo_html_title":"Piano Humidity Control Montreal | Piano Life Saver Installation","jetpack_seo_noindex":false,"footnotes":""},"class_list":["post-569","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/accord-piano-montreal.com\/en\/wp-json\/wp\/v2\/pages\/569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/accord-piano-montreal.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/accord-piano-montreal.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/accord-piano-montreal.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/accord-piano-montreal.com\/en\/wp-json\/wp\/v2\/comments?post=569"}],"version-history":[{"count":36,"href":"https:\/\/accord-piano-montreal.com\/en\/wp-json\/wp\/v2\/pages\/569\/revisions"}],"predecessor-version":[{"id":1389,"href":"https:\/\/accord-piano-montreal.com\/en\/wp-json\/wp\/v2\/pages\/569\/revisions\/1389"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/accord-piano-montreal.com\/en\/wp-json\/wp\/v2\/media\/917"}],"wp:attachment":[{"href":"https:\/\/accord-piano-montreal.com\/en\/wp-json\/wp\/v2\/media?parent=569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}