Outiref
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ostéopathe Tourcoing — Yacine Boughagha D.O. | RDV en ligne</title>
<meta name="description" content="Ostéopathe D.O. à Tourcoing — sport, Dry Needling, pédiatrie, grossesse. Prenez RDV en ligne 24h/24. Cabinet 29 av. de la Marne. Yacine Boughagha, IDE &amp; D.O.">
<link rel="canonical" href="https://www.osteopathe-yacineboughagha.fr/">
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">

<!-- Open Graph -->
<meta property="og:site_name" content="Yacine Boughagha — Ostéopathe Tourcoing">
<meta property="og:title"       content="Ostéopathe Tourcoing — Yacine Boughagha D.O.">
<meta property="og:description" content="Sport, Dry Needling, pédiatrie, grossesse à Tourcoing. Prenez RDV en ligne 24h/24 — Yacine Boughagha, D.O. &amp; Infirmier D.É.">
<meta property="og:image"       content="https://www.osteopathe-yacineboughagha.fr/assets/img/yacine-pro.webp">
<meta property="og:image:width"  content="480">
<meta property="og:image:height" content="600">
<meta property="og:image:alt"    content="Yacine Boughagha, ostéopathe D.O. et infirmier D.É. à Tourcoing">
<meta property="og:url"         content="https://www.osteopathe-yacineboughagha.fr/">
<meta property="og:type"        content="website">
<meta property="og:locale"      content="fr_FR">

<!-- Twitter Card -->
<meta name="twitter:card"        content="summary_large_image">
<meta name="twitter:site"        content="@osteopathe_tourcoing">
<meta name="twitter:title"       content="Ostéopathe Tourcoing — Yacine Boughagha D.O.">
<meta name="twitter:description" content="Sport, Dry Needling, pédiatrie, grossesse à Tourcoing. RDV en ligne 24h/24 — Yacine Boughagha, D.O. &amp; Infirmier D.É.">
<meta name="twitter:image"       content="https://www.osteopathe-yacineboughagha.fr/assets/img/yacine-pro.webp">
<meta name="twitter:image:alt"   content="Yacine Boughagha, ostéopathe D.O. à Tourcoing">
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/favicon-48x48.png" type="image/png" sizes="48x48">
<link rel="icon" href="/web-app-manifest-192x192.png" type="image/png" sizes="192x192">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<!-- Favicon Bing / Microsoft -->
<meta name="msapplication-TileImage" content="/web-app-manifest-192x192.png">
<meta name="msapplication-TileColor" content="#1a56db">
<meta name="msapplication-config" content="none">
<link rel="preload" as="image" href="assets/img/cabinet.webp" fetchpriority="high">

<!-- GTM chargé hors chemin critique via requestIdleCallback -->
<script>
(function(){
  function loadGTM(){
    var s=document.createElement('script');
    s.async=true;
    s.src='https://www.googletagmanager.com/gtag/js?id=AW-17941726715';
    document.head.appendChild(s);
    window.dataLayer=window.dataLayer||[];
    function gtag(){dataLayer.push(arguments);}
    window.gtag=gtag;
    gtag('js',new Date());
    gtag('config','AW-17941726715',{send_page_view:true});
  }
  if('requestIdleCallback' in window){
    requestIdleCallback(loadGTM,{timeout:4000});
  } else {
    window.addEventListener('load',function(){setTimeout(loadGTM,3000);},{once:true});
  }
})();
</script>

<script type="application/ld+json">{"@context":"https://schema.org","@type":"MedicalBusiness","additionalType":"http://www.productontology.org/id/Osteopathy","name":"Ostéopathe Tourcoing - Yacine Boughagha","url":"https://www.osteopathe-yacineboughagha.fr/","image":["https://www.osteopathe-yacineboughagha.fr/assets/img/yacine-pro.webp","https://www.osteopathe-yacineboughagha.fr/assets/img/cabinet.webp"],"description":"Ostéopathe D.O. et Infirmier D.É. à Tourcoing (59200). Sport, Dry Needling, pédiatrie, grossesse. Prise en charge médicalisée unique.","medicalSpecialty":"Osteopathic","telephone":"06 69 45 22 58","email":"contact@osteopathe-yacineboughagha.fr","priceRange":"50€-70€","address":{"@type":"PostalAddress","streetAddress":"29 Av. de la Marne","addressLocality":"Tourcoing","postalCode":"59200","addressRegion":"Hauts-de-France","addressCountry":"FR"},"geo":{"@type":"GeoCoordinates","latitude":50.7239,"longitude":3.1612},"aggregateRating":{"@type":"AggregateRating","ratingValue":"5","reviewCount":"20"},"openingHoursSpecification":[],"areaServed":[{"@type":"City","name":"Tourcoing"},{"@type":"City","name":"Wattrelos"},{"@type":"City","name":"Roubaix"},{"@type":"City","name":"Mouvaux"},{"@type":"City","name":"Roncq"},{"@type":"City","name":"Marcq-en-Barœul"},{"@type":"City","name":"Halluin"},{"@type":"City","name":"Bondues"},{"@type":"City","name":"Croix"},{"@type":"City","name":"Neuville-en-Ferrain"},{"@type":"City","name":"Lannoy"},{"@type":"City","name":"Villeneuve-d'Ascq"},{"@type":"City","name":"Lille"}],"sameAs":["https://share.google/eqOkkS1AkrMquI4Cl","https://www.instagram.com/yacineosteo","http://www.linkedin.com/in/yacine-boughagha-4355b3336"]}</script>

<script type="application/ld+json">{"@context":"https://schema.org","@type":"Person","name":"Yacine Boughagha","jobTitle":"Ostéopathe D.O. — Infirmier Diplômé d'État","url":"https://www.osteopathe-yacineboughagha.fr/","image":"https://www.osteopathe-yacineboughagha.fr/assets/img/yacine-pro.webp","description":"Ostéopathe D.O. et Infirmier D.É. à Tourcoing. Spécialisé sport, Dry Needling, pédiatrie. Coach sportif certifié.","telephone":"06 69 45 22 58","address":{"@type":"PostalAddress","streetAddress":"29 Av. de la Marne","addressLocality":"Tourcoing","postalCode":"59200","addressCountry":"FR"},"alumniOf":[{"@type":"EducationalOrganization","name":"COPB"},{"@type":"EducationalOrganization","name":"IFSI Tourcoing"}],"hasCredential":[{"@type":"EducationalOccupationalCredential","name":"Diplôme en Ostéopathie D.O.","dateCreated":"2023"},{"@type":"EducationalOccupationalCredential","name":"Infirmier Diplômé d'État (IDE)","dateCreated":"2018"}],"knowsLanguage":["fr","en","ar","es"]}</script>

<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"L'ostéopathie est-elle remboursée par la mutuelle ?","acceptedAnswer":{"@type":"Answer","text":"Oui, entre 30€ et 60€ selon votre contrat. Facture remise en fin de séance."}},{"@type":"Question","name":"Qu'est-ce que le Dry Needling ?","acceptedAnswer":{"@type":"Answer","text":"Technique de puncture sèche des points gâchettes myofasciaux. Efficace pour les sportifs et douleurs chroniques."}},{"@type":"Question","name":"En quoi le fait d'être infirmier change la consultation ?","acceptedAnswer":{"@type":"Answer","text":"Yacine Boughagha est IDE depuis 2018. Il évalue les antécédents médicaux avec rigueur clinique, gère les contre-indications, pratique le Dry Needling en asepsie optimale et prend en charge les patients sous traitement ou post-opératoires."}},{"@type":"Question","name":"L'ostéopathie est-elle adaptée aux nourrissons ?","acceptedAnswer":{"@type":"Answer","text":"Oui. Recommandée pour coliques, plagiocéphalie, torticolis. Techniques douces dès la naissance."}},{"@type":"Question","name":"Recevez-vous les patients de Wattrelos et Roubaix ?","acceptedAnswer":{"@type":"Answer","text":"Oui. Wattrelos (3 km), Roubaix (5 km), Mouvaux (4 km), Roncq (5 km), Marcq-en-Barœul (9 km). Tramway T arrêt Ma Campagne."}}]}</script>

<!-- Fonts non-bloquantes + anti-CLS -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700&family=DM+Sans:wght@300;400;500;600&display=optional">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700&family=DM+Sans:wght@300;400;500;600&display=optional" media="print" onload="this.media='all'">
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700&family=DM+Sans:wght@300;400;500;600&display=optional"></noscript>
<!-- Bootstrap Icons non-bloquant -->
<link rel="preload" as="style" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" media="print" onload="this.media='all'">
<noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"></noscript>
<!-- @font-face de secours taille-ajustée pour éviter le CLS pendant chargement -->
<style>
@font-face{font-family:'DM Sans Fallback';src:local('Arial');size-adjust:100%;ascent-override:94%;descent-override:24%;line-gap-override:0%}
@font-face{font-family:'Playfair Fallback';src:local('Georgia');size-adjust:96%;ascent-override:92%;descent-override:22%;line-gap-override:0%}
</style>

<style>
:root{
  --bl:#1a56db;--bl2:#1348c0;--bll:#e8f0fe;
  --nv:#0a1628;--tl:#0d9488;--tll:#e6f7f6;
  --cr:#f8f7f4;--wh:#fff;
  --g50:#f9fafb;--g100:#f3f4f6;--g200:#e5e7eb;--g400:#6b7280;--g600:#374151;--g800:#1f2937;
  --sh:0 2px 12px rgba(10,22,40,.07);--shl:0 8px 32px rgba(10,22,40,.12);
  --fh:'Playfair Display','Playfair Fallback',Georgia,serif;
  --fb:'DM Sans','DM Sans Fallback',system-ui,sans-serif;
  --r:12px;--rl:20px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{font-family:var(--fb);font-size:16px;line-height:1.65;color:var(--g800);background:var(--wh);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--fh);line-height:1.2;color:var(--nv)}
h1{font-size:clamp(1.9rem,4.5vw,3rem);font-weight:700}
h2{font-size:clamp(1.5rem,3vw,2.2rem);font-weight:700}
h3{font-size:1.1rem;font-weight:600}
p{color:var(--g600);line-height:1.7}
a{color:var(--bl);text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:1140px;margin:0 auto;padding:0 24px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* NAV */
#nav{position:fixed;top:0;left:0;right:0;z-index:999;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--g200);transition:box-shadow .3s}
#nav.scrolled{box-shadow:var(--sh)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:68px;gap:12px}
.nav-logo{display:flex;align-items:center;gap:10px;font-family:var(--fh);font-weight:700;color:var(--nv);font-size:.95rem;flex-shrink:0}
.nav-logo img{width:36px;height:36px;border-radius:50%;object-fit:cover}
.nav-links{display:flex;align-items:center;gap:20px;list-style:none}
.nav-links a{font-size:.82rem;font-weight:500;color:var(--g600);transition:color .2s;white-space:nowrap}
.nav-links a:hover{color:var(--bl)}
.nav-cta{background:var(--bl)!important;color:#fff!important;padding:8px 18px;border-radius:8px;font-weight:600!important}
.nav-cta:hover{background:var(--bl2)!important}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:10px;flex-direction:column;gap:5px;min-width:44px;min-height:44px;align-items:center;justify-content:center}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--nv);border-radius:2px;transition:.3s}
@media(max-width:960px){
  .nav-links{display:none;position:fixed;inset:68px 0 auto 0;background:#fff;flex-direction:column;align-items:flex-start;gap:0;border-bottom:1px solid var(--g200);box-shadow:var(--shl)}
  .nav-links.open{display:flex}
  .nav-links li{width:100%;border-bottom:1px solid var(--g100)}
  .nav-links a{display:block;padding:14px 20px;color:var(--g800)!important;font-size:1rem}
  .nav-toggle{display:flex}
}

/* HERO */
#hero{padding:108px 0 80px;background:linear-gradient(135deg,#eef2ff 0%,var(--cr) 55%,#e6f7f6 100%);position:relative;overflow:hidden}
#hero::after{content:'';position:absolute;top:-100px;right:-100px;width:480px;height:480px;background:radial-gradient(circle,rgba(26,86,219,.05) 0%,transparent 70%);pointer-events:none}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero-tag{display:inline-flex;align-items:center;gap:8px;background:rgba(26,86,219,.1);color:var(--bl);padding:5px 14px;border-radius:99px;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;margin-bottom:18px}
.hero-tag::before{content:'';width:6px;height:6px;background:var(--tl);border-radius:50%}
.hero-h1 em{font-style:normal;color:var(--bl)}
.hero-desc{font-size:1rem;max-width:500px;margin:14px 0 28px}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:36px}
.hero-stats{display:flex;gap:10px;flex-wrap:wrap;padding-top:20px;border-top:1px solid var(--g200)}
.hero-stat{background:var(--wh);border:1.5px solid var(--g200);border-radius:12px;padding:10px 14px;display:flex;align-items:center;gap:10px;flex:1;min-width:120px;transition:border-color .2s}
.hero-stat:hover{border-color:var(--bl)}
.hero-stat-ico{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0}
.hero-stat-ico.s-gold{background:#fef9c3;color:#b45309}
.hero-stat-ico.s-blue{background:var(--bll);color:var(--bl)}
.hero-stat-ico.s-teal{background:var(--tll);color:var(--tl)}
.hero-stat-ico.s-purple{background:#f3f0ff;color:#7c3aed}
.stat-num{font-family:var(--fh);font-size:1.15rem;font-weight:700;color:var(--nv);display:block;line-height:1.1}
.stat-lbl{font-size:.7rem;color:var(--g400);letter-spacing:.03em;display:block;margin-top:2px}
.hero-img-wrap{position:relative}
.hero-img-wrap img{width:100%;border-radius:var(--rl);box-shadow:var(--shl);aspect-ratio:4/5;object-fit:cover;height:auto}
.hero-dispo{position:absolute;bottom:24px;left:-20px;background:#fff;border-radius:var(--r);padding:14px 18px;box-shadow:var(--shl);display:flex;align-items:center;gap:12px;min-width:260px;min-height:64px}
.dispo-dot{width:8px;height:8px;background:#10b981;border-radius:50%;flex-shrink:0;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.dispo-text p{margin:0;font-size:.7rem;color:var(--g400)}
.dispo-text strong{font-size:.875rem;color:var(--nv)}
@media(max-width:900px){
  #hero{padding:88px 0 48px}
  .hero-grid{grid-template-columns:1fr;gap:20px}
  .hero-img-wrap{order:-1}
  .hero-img-wrap img{aspect-ratio:5/2;height:auto}
  .hero-dispo{position:static;left:auto;bottom:auto;margin-top:10px;border-radius:var(--r);min-width:0;width:100%;box-shadow:var(--sh)}
  .hero-stat{min-width:calc(50% - 5px);flex:none}
}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:10px;font-weight:600;font-size:.95rem;border:none;cursor:pointer;transition:all .2s;text-decoration:none;line-height:1.2}
.btn-p{background:var(--bl);color:#fff}.btn-p:hover{background:var(--bl2);transform:translateY(-2px);box-shadow:0 8px 24px rgba(26,86,219,.3)}
.btn-o{background:transparent;color:var(--nv);border:1.5px solid var(--g200)}.btn-o:hover{border-color:var(--bl);color:var(--bl)}
.btn-sm{padding:9px 18px;font-size:.875rem}.btn-lg{padding:14px 30px;font-size:1rem}.btn-w{width:100%;justify-content:center}

/* TRUST BAR */
#trust{background:var(--nv);padding:18px 0}
.trust-list{display:flex;justify-content:center;gap:36px;flex-wrap:wrap}
.trust-item{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.85);font-size:.82rem}
.trust-item i{color:var(--tl)}
.trust-item strong{color:#fff}

/* SECTIONS */
.sec{padding:80px 0}.sec-sm{padding:56px 0}
.sec-lbl{display:inline-block;background:var(--bll);color:var(--bl);font-size:.72rem;font-weight:600;padding:4px 12px;border-radius:99px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}
.sec-hd{text-align:center;margin-bottom:52px}.sec-hd h2{margin-bottom:10px}.sec-hd p{color:var(--g400);max-width:540px;margin:0 auto}
.bg-cr{background:var(--cr)}.bg-nv{background:var(--nv)}

/* À PROPOS */
.about-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:64px;align-items:center}
.about-img{position:relative}.about-img img{border-radius:var(--rl);box-shadow:var(--shl);width:100%;object-fit:cover;aspect-ratio:3/4}
.about-badge{position:absolute;top:20px;right:-14px;background:var(--bl);color:#fff;padding:10px 14px;border-radius:var(--r);text-align:center;font-size:.75rem;font-weight:600;box-shadow:var(--shl);line-height:1.4}
.about-badge strong{display:block;font-family:var(--fh);font-size:1.3rem}
.tags-row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 20px}
.tag{background:var(--g100);color:var(--g600);font-size:.75rem;font-weight:500;padding:4px 12px;border-radius:99px}
.tag-bl{background:var(--bll);color:var(--bl)}
.tag-tl{background:var(--tll);color:#0a6b62}
.chk{list-style:none}
.chk li{display:flex;align-items:flex-start;gap:10px;font-size:.9rem;color:var(--g600);padding:7px 0;border-bottom:1px solid var(--g100)}
.chk li:last-child{border:0}
.chk li i{color:var(--tl);flex-shrink:0;font-size:1rem;margin-top:2px}
.diplomas{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.dip{background:var(--g50);border-left:3px solid var(--bl);border-radius:var(--r);padding:12px 14px}
.dip .yr{font-size:.7rem;color:var(--bl);font-weight:600;font-family:monospace;letter-spacing:.04em}
.dip p{font-size:.85rem;font-weight:600;color:var(--g800);margin:2px 0 0;font-family:var(--fb)}
.dip small{font-size:.75rem;color:var(--g400)}
@media(max-width:900px){.about-grid{grid-template-columns:1fr;gap:28px}}

/* SPÉCIALITÉS — TABS */
.spec-tabs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:40px}
.spec-tab{padding:10px 22px;border-radius:99px;font-size:.875rem;font-weight:600;border:1.5px solid var(--g200);background:#fff;color:var(--g600);cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px;min-height:44px}
.spec-tab:hover{border-color:var(--bl);color:var(--bl)}
.spec-tab.active{background:var(--bl);color:#fff;border-color:var(--bl)}
.spec-panels{position:relative}
.spec-panel{display:none;animation:fadeIn .3s ease}
.spec-panel.active{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.spec-panel-text h3{font-size:1.3rem;margin-bottom:12px}
.spec-panel-text p{font-size:.9rem;line-height:1.75;margin-bottom:16px}
.spec-panel-text .chk{margin-top:4px}
.spec-panel-visual{background:var(--nv);border-radius:var(--rl);padding:28px;color:#fff}
.spec-panel-visual h4{color:#fff;font-size:.95rem;margin-bottom:16px;font-family:var(--fh)}
.spec-visual-list{list-style:none}
.spec-visual-list li{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:.82rem;color:rgba(255,255,255,.75)}
.spec-visual-list li:last-child{border:0}
.spec-visual-list li i{color:var(--tl);flex-shrink:0;margin-top:1px}
.spec-cta{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-size:.85rem;font-weight:600;color:#fff;background:rgba(255,255,255,.12);padding:9px 18px;border-radius:8px;transition:background .2s}
.spec-cta:hover{background:rgba(255,255,255,.2);color:#fff}
@media(max-width:900px){.spec-panel.active{grid-template-columns:1fr}}

/* APPROCHE UNIQUE */
.approche-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}
.approche-card{border-radius:var(--rl);padding:32px}
.approche-card-dark{background:var(--nv);color:#fff}
.approche-card-light{background:var(--bll);border:1px solid rgba(26,86,219,.15)}
.approche-ico{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:20px;flex-shrink:0}
.approche-ico-dark{background:rgba(255,255,255,.1)}
.approche-ico-tl{background:rgba(13,148,136,.2)}
.approche-ico-bl{background:rgba(26,86,219,.15)}
.sport-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.sport-item{display:flex;align-items:center;gap:10px;padding:9px 12px;background:rgba(255,255,255,.06);border-radius:9px}
.sport-item span{font-size:1.1rem;flex-shrink:0}
.sport-item h4{font-size:.8rem;color:#fff;margin-bottom:1px;font-family:var(--fb);font-weight:600}
.sport-item p{font-size:.72rem;color:rgba(255,255,255,.80);margin:0}
.ide-items{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.ide-item{display:flex;align-items:center;gap:10px;padding:9px 12px;background:rgba(26,86,219,.07);border-radius:9px;font-size:.82rem;color:var(--nv)}
.ide-item i{color:var(--bl);width:16px;flex-shrink:0}
.approche-atouts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.atout{border-radius:var(--rl);padding:22px}
.atout .atout-ico{font-size:1.5rem;margin-bottom:10px}
.atout h4{font-size:.875rem;color:var(--nv);margin-bottom:6px;font-family:var(--fb);font-weight:600}
.atout p{font-size:.78rem;color:var(--g600);line-height:1.6;margin:0}
@media(max-width:900px){.approche-grid{grid-template-columns:1fr}.approche-atouts{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.approche-atouts{grid-template-columns:1fr}.sport-grid{grid-template-columns:1fr}}

/* AVIS */
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:900px){.reviews-grid{grid-template-columns:1fr}}
.review-card{background:var(--g50);border:1px solid var(--g200);border-radius:var(--rl);padding:24px;display:flex;flex-direction:column}
.review-stars{color:#f59e0b;font-size:.9rem;letter-spacing:2px;line-height:1;display:flex;align-items:center}
.review-text{font-size:.875rem;color:var(--g600);line-height:1.6;font-style:italic;flex:1;margin-bottom:16px}
.review-author{display:flex;align-items:center;gap:10px}
.review-author img{width:36px;height:36px;border-radius:50%;object-fit:cover}
.review-author strong{font-size:.875rem;color:var(--nv);display:block}
.review-author small{color:var(--g400);font-size:.75rem}

/* RDV */
.appt-wrap{background:linear-gradient(135deg,var(--nv) 0%,#162b56 100%);border-radius:24px;padding:48px;display:grid;grid-template-columns:1fr 1.4fr;gap:48px;align-items:start}
.appt-info h2{color:#fff;margin-bottom:12px}.appt-info>p{color:rgba(255,255,255,.80);margin-bottom:24px}
.appt-ul{list-style:none}
.appt-ul li{display:flex;align-items:flex-start;gap:10px;color:rgba(255,255,255,.85);font-size:.875rem;margin-bottom:10px}
.appt-ul li i{color:var(--tl);flex-shrink:0;font-size:.9rem;margin-top:2px}
.appt-box{background:#fff;border-radius:16px;padding:32px}
.appt-box h3{font-size:1rem;margin-bottom:24px;color:var(--nv);font-family:var(--fb);font-weight:600}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ff{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.ff label{font-size:.72rem;font-weight:600;color:var(--g600);text-transform:uppercase;letter-spacing:.04em}
.ff input,.ff select,.ff textarea{padding:11px 14px;border:1.5px solid var(--g200);border-radius:8px;font-family:var(--fb);font-size:.9rem;color:var(--g800);background:var(--g50);transition:border-color .2s,box-shadow .2s;width:100%}
.ff input:focus,.ff select:focus,.ff textarea:focus{outline:none;border-color:var(--bl);box-shadow:0 0 0 3px rgba(26,86,219,.1);background:#fff}
.ff textarea{resize:vertical;min-height:80px}
.al{padding:12px 16px;border-radius:8px;font-size:.875rem;display:flex;align-items:center;gap:10px;margin-bottom:16px}
.al-s{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.al-d{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.al-w{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.al-i{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}
@media(max-width:900px){.appt-wrap{grid-template-columns:1fr;padding:24px 20px}.fg{grid-template-columns:1fr}}

/* TARIFS */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:900px){.pricing-grid{grid-template-columns:1fr}}
.pricing-card{background:var(--wh);border:1px solid var(--g200);border-radius:16px;padding:28px;height:100%;display:flex;flex-direction:column}
.pricing-card h3{font-size:.95rem;margin-bottom:20px;color:var(--nv);font-family:var(--fb);font-weight:600;display:flex;align-items:center;gap:8px}
.pricing-list{list-style:none;flex:1}
.pricing-list li{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--g100);font-size:.875rem;color:var(--g600)}
.pricing-list li:last-child{border:0}
.pricing-list li.feat{background:var(--bll);border-radius:8px;padding:10px 12px;border:1px solid rgba(26,86,219,.2);margin-bottom:4px;color:var(--bl);font-weight:600}
.pricing-list li strong{font-weight:700;color:var(--nv)}
.xp-list{list-style:none}
.xp-list li{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--g600);padding:7px 0;border-bottom:1px solid var(--g100)}
.xp-list li:last-child{border:0}.xp-list li i{color:var(--tl);flex-shrink:0}
.pay-item{display:flex;align-items:center;gap:12px;padding:11px;border-radius:10px;margin-bottom:10px}
.pay-ok{background:#f0fdf4;border:1px solid #bbf7d0}
.pay-ok i{color:#059669;font-size:1.2rem;flex-shrink:0}
.pay-ok strong{display:block;font-size:.85rem;color:#065f46}
.pay-ok small{font-size:.75rem;color:var(--g400)}
.pay-ko{background:#fef2f2;border:1px solid #fecaca}
.pay-ko i{color:#991b1b;font-size:1.2rem;flex-shrink:0}
.pay-ko strong{display:block;font-size:.85rem;color:#991b1b;text-decoration:line-through}
.pay-ko small{font-size:.75rem;color:#991b1b;font-weight:500}
.mutuelle{background:var(--bll);border-radius:10px;padding:14px;margin-top:16px}
.mutuelle h4{font-size:.85rem;color:var(--bl);margin-bottom:8px;font-weight:600;display:flex;align-items:center;gap:6px}
.mutuelle ul{list-style:none;font-size:.78rem;color:var(--g600)}
.mutuelle ul li{padding:2px 0}
.mutuelle ul li::before{content:'→ ';color:var(--bl)}

/* FAQ */
.faq-list{max-width:760px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--g200)}
.faq-item:first-child{border-top:1px solid var(--g200)}
.faq-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;background:none;border:none;text-align:left;font-family:var(--fh);font-size:.975rem;font-weight:600;color:var(--nv);cursor:pointer;transition:color .2s;min-height:44px}
.faq-btn:hover,.faq-btn[aria-expanded=true]{color:var(--bl)}
.faq-ico{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--g200);flex-shrink:0;position:relative;transition:all .2s;background:#fff}
.faq-ico::before,.faq-ico::after{content:'';position:absolute;background:var(--g600);border-radius:2px;top:50%;left:50%;transform:translate(-50%,-50%)}
.faq-ico::before{width:10px;height:1.5px}
.faq-ico::after{width:1.5px;height:10px;transition:transform .25s}
.faq-btn[aria-expanded=true] .faq-ico{background:var(--bl);border-color:var(--bl)}
.faq-btn[aria-expanded=true] .faq-ico::before,.faq-btn[aria-expanded=true] .faq-ico::after{background:#fff}
.faq-btn[aria-expanded=true] .faq-ico::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-ans>div{overflow:hidden;max-height:0;transition:max-height .3s ease}
.faq-ans>div>p{padding:0 0 20px;color:var(--g600);font-size:.9rem;line-height:1.75}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:1.1fr 1fr 1.2fr;gap:24px;align-items:stretch}
@media(max-width:1024px){.contact-grid{grid-template-columns:1fr;gap:20px}}
.cc{background:var(--wh);border:1px solid var(--g200);border-radius:16px;padding:28px;height:100%}
.cc h3{font-size:.95rem;margin-bottom:20px;color:var(--nv);font-family:var(--fb);font-weight:600;display:flex;align-items:center;gap:8px}
.info-row{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}
.info-ico{width:36px;height:36px;background:var(--bll);border-radius:9px;display:flex;align-items:center;justify-content:center;color:var(--bl);flex-shrink:0;font-size:.875rem}
.info-row p{margin:0;font-size:.875rem;color:var(--g600)}
.info-row strong{display:block;font-size:.875rem;color:var(--nv);margin-bottom:2px}
.hr-table{width:100%;border-collapse:collapse;font-size:.85rem}
.hr-table tr td{padding:6px 0;color:var(--g600);vertical-align:middle}
.hr-table tr td:first-child{font-weight:500;color:var(--g800);width:52%}
.hr-table tr.today td{color:var(--bl);font-weight:600}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.trsp{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.trsp-i{display:flex;align-items:center;gap:10px;font-size:.8rem;color:var(--g600)}
.pill{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:24px;border-radius:4px;font-size:.72rem;font-weight:700;flex-shrink:0;padding:0 6px}
.pm2{background:#e01a22;color:#fff}.ptm{background:#f5a623;color:#fff}.ppk{background:#d1fae5;color:#059669}
.cities{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.city-tag{background:var(--wh);border:1px solid var(--g200);color:var(--g600);font-size:.82rem;font-weight:500;padding:10px 14px;border-radius:99px;text-decoration:none;transition:all .2s;min-height:44px;display:inline-flex;align-items:center}
.city-tag:hover{border-color:var(--bl);color:var(--bl)}
.map-ph{border-radius:12px;overflow:hidden;height:260px;background:var(--g100);display:flex;align-items:center;justify-content:center;min-height:260px}

/* SEO VILLES */
.villes-sec{padding:48px 0;background:var(--cr)}
.villes-wrap{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:24px}
.ville-tag{background:var(--wh);border:1.5px solid var(--g200);color:var(--g800);padding:10px 18px;border-radius:99px;font-size:.875rem;font-weight:500;transition:all .2s;text-decoration:none;display:inline-flex;align-items:center;gap:6px;min-height:44px}
.ville-tag:hover{border-color:var(--bl);color:var(--bl);background:var(--bll)}
.ville-tag span{font-size:.75rem;color:var(--g400)}

/* FOOTER */
#footer{background:var(--nv);padding:44px 0 24px}
.footer-inner{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px;margin-bottom:32px}
@media(max-width:768px){.footer-inner{grid-template-columns:1fr;gap:24px}}
.footer-brand{font-family:var(--fh);font-size:1.05rem;color:#fff;font-weight:700;margin-bottom:8px}
.footer-desc{font-size:.8rem;color:rgba(255,255,255,.70);line-height:1.6}
.ft{font-size:.72rem;color:rgba(255,255,255,.60);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:10px}
.fl{list-style:none}
.fl li{margin-bottom:7px}
.fl a{font-size:.82rem;color:rgba(255,255,255,.80);transition:color .2s}
.fl a:hover{color:#fff}
.footer-cities-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.footer-city{font-size:.78rem;color:rgba(255,255,255,.65);text-decoration:none;transition:color .2s}
.footer-city::after{content:'·';margin-left:6px}
.footer-city:last-child::after{content:''}
.footer-city:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:.78rem;color:rgba(255,255,255,.60)}
.footer-bottom a{color:rgba(255,255,255,.65);transition:color .2s}.footer-bottom a:hover{color:#fff}

/* CTA MOBILE */
.mobile-cta{display:none;position:fixed;bottom:0;left:0;right:0;z-index:998;background:#fff;border-top:1px solid var(--g200);padding:10px 16px;gap:10px}
@media(max-width:768px){.mobile-cta{display:flex}}
.mobile-cta a{flex:1;text-align:center;padding:12px;border-radius:10px;font-weight:600;font-size:.875rem;text-decoration:none}
.cta-call{background:var(--g100);color:var(--nv);border:1.5px solid var(--g200)}
.cta-rdv{background:var(--bl);color:#fff}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── UTILITY CLASSES (remplacent les styles inline) ── */
/* About section */
.about-text-gap{margin-top:12px}
.about-chk-gap{margin-top:20px}
.socials-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.social-btn{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.9rem;text-decoration:none;transition:opacity .2s}
.social-btn:hover{opacity:.75}
/* Spec panel links */
.spec-link{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;color:var(--bl);background:var(--bll);padding:8px 14px;border-radius:99px;margin-bottom:12px;text-decoration:none;min-height:44px}
.spec-link:hover{background:var(--bl);color:#fff}
/* Spec visual list strong */
.svl-strong{color:#fff;display:block}
/* Approche section */
.approche-header{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.approche-header-light{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.approche-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.approche-label-dark{color:rgba(255,255,255,.75)}
.approche-label-bl{color:var(--bl)}
.approche-h3-dark{color:#fff;font-size:1.1rem;margin:2px 0 0;font-family:var(--fh)}
.approche-h3-light{color:var(--nv);font-size:1.1rem;margin:2px 0 0;font-family:var(--fh)}
.approche-p-dark{color:rgba(255,255,255,.82);font-size:.875rem;line-height:1.7;margin-bottom:20px}
.approche-p-light{font-size:.875rem;color:var(--g600);line-height:1.7;margin-bottom:16px}
.approche-ide-box{background:var(--tll);border-radius:var(--rl);padding:20px;border:1px solid rgba(13,148,136,.2)}
.approche-ide-h4{font-size:.875rem;color:#065f46;margin-bottom:10px;font-weight:600;display:flex;align-items:center;gap:8px}
.approche-ide-p{font-size:.82rem;color:#047857;margin-bottom:10px}
.approche-tags{display:flex;gap:8px;flex-wrap:wrap}
.approche-col-right{display:flex;flex-direction:column;gap:16px}
.approche-atouts-wrap{margin-top:20px}
/* Avis section */
.rv-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.rv-rating{font-size:.85rem;margin-top:4px}
.rv-see-all{font-size:.8rem;color:var(--bl);font-weight:600;display:inline-flex;align-items:center;gap:4px}
/* Stat num small */
.stat-num-sm{font-size:.95rem}
/* Dispo badge */
.dispo-btn{margin-left:auto;white-space:nowrap;flex-shrink:0}
/* Hero img wrap */
.hero-tel-btn{min-width:190px}
/* Contact & map */
.contact-map-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.contact-map-header h3{margin:0}
/* Grossesse circles */
.svl-dot{font-size:.5rem;margin-top:5px;color:rgba(255,255,255,.75)}
/* About badge */
.about-badge-txt strong{display:block;font-family:var(--fh);font-size:1.3rem}
/* Reviews link */
.rv-goo-link{font-size:.8rem;color:var(--bl);font-weight:600;display:inline-flex;align-items:center;gap:4px}
/* Atouts margin */
.atouts-mt{margin-top:20px}
/* CTA reviews center */
.rv-cta-wrap{text-align:center;max-width:700px;margin:0 auto}
/* Review card header — étoiles et logo alignés */
.rv-card-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:8px}
.rv-goo-ico{opacity:.35;display:block;flex-shrink:0;line-height:1}
/* Footer réseaux sociaux — boutons alignés */
.footer-socials{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;align-items:center}
.footer-social-btn{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.85rem;text-decoration:none;transition:opacity .2s;flex-shrink:0}
.footer-social-btn:hover{opacity:.75}
/* About réseaux sociaux */
.socials-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;align-items:center}
.social-btn{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.9rem;text-decoration:none;transition:opacity .2s;flex-shrink:0}
.social-btn:hover{opacity:.75}
</style>
</head>

<body>
<a href="#main-content" class="skip-link" title="Aller au contenu principal">Aller au contenu</a>

<!-- NAV -->
<nav id="nav" aria-label="Navigation principale">
  <div class="container nav-inner">
    <a href="/" class="nav-logo" title="Accueil — Yacine Boughagha, ostéopathe D.O. à Tourcoing" aria-label="Accueil — Yacine Boughagha">
      <img src="assets/img/logo-yb-80.webp" alt="Logo Yacine Boughagha, ostéopathe D.O. à Tourcoing" width="36" height="36">
      <span>Yacine Boughagha</span>
    </a>
    <ul class="nav-links" id="navLinks" role="list">
      <li><a href="#about" title="À propos de Yacine Boughagha, ostéopathe">À propos</a></li>
      <li><a href="#specialites" title="Spécialités ostéopathiques à Tourcoing">Spécialités</a></li>
      <li><a href="#approche" title="Approche sport et infirmier">Sport & Infirmier</a></li>
      <li><a href="#testimonials" title="Avis patients Google vérifiés">Avis</a></li>
      <li><a href="#pricing" title="Tarifs des consultations">Tarifs</a></li>
      <li><a href="#contact" title="Contact et accès au cabinet">Contact</a></li>
      <li><a href="#appointment" class="nav-cta" title="Prendre rendez-vous en ligne">Prendre RDV</a></li>
    </ul>
    <button class="nav-toggle" id="navToggle" aria-expanded="false" aria-controls="navLinks" aria-label="Menu">
      <span></span><span></span><span></span>
    </button>
  </div>
</nav>

<main id="main-content">

<!-- HERO -->
<section id="hero" aria-label="Présentation">
  <p class="sr-only">
    Yacine Boughagha, ostéopathe D.O. et Infirmier D.É. à Tourcoing (59200).
    Pédiatrie nourrisson, ostéopathie du sport, Dry Needling, grossesse — RDV en ligne 24h/24.
    Cabinet Boughagha, 29 avenue de la Marne, 59200 Tourcoing.
    Prenez RDV sans ordonnance. Patients accueillis de Wattrelos, Roubaix, Mouvaux, Roncq, Marcq-en-Barœul, Lille.
    Tarifs : 50€ à 70€. Remboursé mutuelle. RPPS 10105134364.
  </p>
  <div class="container">
    <div class="hero-grid">
      <div>
        <div class="hero-tag">Ostéopathe D.O. · Infirmier D.É. · Coach sportif</div>
        <h1 class="hero-h1">Ostéopathe à <em>Tourcoing</em><br><span style="font-size:.58em;font-family:var(--fb);font-weight:500;color:var(--g600)">Sport · Pédiatrie · Dry Needling · Prenez RDV en ligne</span></h1>
        <p class="hero-desc">Une expertise unique alliant <strong>ostéopathie D.O.</strong>, <strong>soins infirmiers</strong> et coaching sportif. Sport, Dry Needling, pédiatrie, grossesse — prise en charge médicalisée à Tourcoing. Yacine Boughagha, D.O. &amp; IDE.</p>
        <div class="hero-btns">
          <a href="#appointment" class="btn btn-p btn-lg" title="Prendre rendez-vous en ligne"><i class="bi bi-calendar-check"></i> Prendre rendez-vous</a>
          <a href="tel:+33669452258" title="Appeler le cabinet" class="btn btn-o btn-lg hero-tel-btn"><i class="bi bi-telephone" aria-hidden="true"></i> 06 69 45 22 58</a>
        </div>
        <div class="hero-stats" role="list" aria-label="Points clés du cabinet">
                    <div class="hero-stat" role="listitem">
            <div class="hero-stat-ico s-gold"><i class="bi bi-star-fill" aria-hidden="true"></i></div>
            <div>
              <span class="stat-num">5.0<small style="font-size:.6em;color:var(--g400)">/5</small></span>
              <span class="stat-lbl">20 avis Google</span>
            </div>
          </div>
                    <div class="hero-stat" role="listitem">
            <div class="hero-stat-ico s-blue"><i class="bi bi-currency-euro" aria-hidden="true"></i></div>
            <div><span class="stat-num">50–70€</span><span class="stat-lbl">par séance</span></div>
          </div>
          <div class="hero-stat" role="listitem">
            <div class="hero-stat-ico s-teal"><i class="bi bi-calendar-check" aria-hidden="true"></i></div>
            <div><span class="stat-num">24h/24</span><span class="stat-lbl">RDV en ligne</span></div>
          </div>
          <div class="hero-stat" role="listitem">
            <div class="hero-stat-ico s-purple"><i class="bi bi-award" aria-hidden="true"></i></div>
            <div><span class="stat-num stat-num-sm">D.O. · IDE</span><span class="stat-lbl">+ Coach sportif</span></div>
          </div>
        </div>
      </div>

      <div class="hero-img-wrap">
        <img src="assets/img/cabinet.webp"
             srcset="assets/img/cabinet-400.webp 400w,                     assets/img/cabinet-600.webp 600w,                     assets/img/cabinet.webp 800w"
             sizes="(max-width:480px) 100vw,                    (max-width:900px) 100vw,                    480px"
             alt="Cabinet d'ostéopathie Tourcoing — Yacine Boughagha, 29 avenue de la Marne, salle de soin"
             width="480" height="600" fetchpriority="high" decoding="sync">
        <div class="hero-dispo" aria-live="polite">
          <div class="dispo-dot" aria-hidden="true"></div>
          <div class="dispo-text">
            <p>Prochaine disponibilité</p>
            <strong>Demain à 08:00</strong>          </div>
          <a href="#appointment" class="btn btn-p btn-sm dispo-btn" aria-label="Prendre rendez-vous" title="Prendre rendez-vous en ligne">Réserver</a>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- TRUST BAR -->
<div id="trust">
  <div class="container">
    <div class="trust-list">
      <div class="trust-item"><i class="bi bi-shield-check"></i><span><strong>Ostéopathe D.O.</strong> COPB 2023</span></div>
      <div class="trust-item"><i class="bi bi-heart-pulse"></i><span><strong>Infirmier D.É.</strong> IFSI 2018</span></div>
      <div class="trust-item"><i class="bi bi-trophy"></i><span><strong>Coach sportif</strong> certifié</span></div>
      <div class="trust-item"><i class="bi bi-calendar3"></i><span><strong>Sans ordonnance</strong> · accès direct</span></div>
      <div class="trust-item"><i class="bi bi-clock"></i><span><strong>RDV en ligne</strong> 24h/24</span></div>
    </div>
  </div>
</div>

<!-- À PROPOS -->
<section id="about" class="sec" aria-label="À propos de Yacine Boughagha">
  <div class="container">
    <div class="about-grid">
      <div class="about-img">
        <img src="assets/img/yacine-pro.webp"
             srcset="assets/img/yacine-pro-200.webp 200w,                     assets/img/yacine-pro.webp 400w"
             sizes="(max-width:900px) 100vw, 400px"
             alt="Yacine Boughagha, ostéopathe D.O. et infirmier D.É. à Tourcoing"
             width="400" height="533" loading="lazy">
        <div class="about-badge"><strong>D.O.</strong><br>+ IDE</div>
      </div>
      <div>
        <span class="sec-lbl">À propos</span>
        <h2>Yacine Boughagha</h2>
        <div class="tags-row">
          <span class="tag tag-bl">Ostéopathe D.O.</span>
          <span class="tag tag-tl">Infirmier D.É.</span>
          <span class="tag">Coach sportif</span>
          <span class="tag">🇫🇷 🇬🇧 🇸🇦 🇪🇸</span>
        </div>
        <p>Ma vision de l’ostéopathie repose sur une prise en charge <strong>complète</strong>, qui tient compte à la fois de votre état de <strong>santé</strong>, de vos <strong>antécédents</strong> et de vos <strong>objectifs</strong>.</p>
		<p class="about-text-gap">Infirmier Diplômé d’État depuis 2018, j’intègre à ma pratique une rigueur clinique essentielle : prise en compte de vos traitements, respect des contre-indications, compréhension de vos examens médicaux, et suivi adapté notamment après une opération ou en cas de pathologie.</p>
        <p class="about-text-gap">J’accorde également une attention particulière à la <strong>sécurité</strong> des soins, notamment dans la pratique du <strong>Dry Needling</strong>, réalisée dans des conditions d’asepsie strictes.</p>
        <p class="about-text-gap">En parallèle, ma formation de coach sportif me permet de comprendre précisément les contraintes de votre activité. Que vous soyez sportif débutant ou confirmé, j’adapte chaque prise en charge à votre discipline, votre niveau et vos objectifs.</p>
		<ul class="chk about-chk-gap" role="list">
          <li><i class="bi bi-check-circle-fill"></i>Évaluation clinique rigoureuse — signaux d'alerte détectés, antécédents intégrés</li>
          <li><i class="bi bi-check-circle-fill"></i>Dry Needling ultra-sécurisé — asepsie et anatomie de niveau infirmier</li>
          <li><i class="bi bi-check-circle-fill"></i>Suivi post-opératoire et patients sous traitement médical</li>
          <li><i class="bi bi-check-circle-fill"></i>Expert sport : CrossFit, football, tennis, course à pied, cyclisme</li>
          <li><i class="bi bi-check-circle-fill"></i>Nourrissons, femmes enceintes — techniques douces et sécurisées</li>
        </ul>
        <div class="diplomas">
          <div class="dip"><span class="yr">2023</span><p>Ostéopathe D.O.</p><small>COPB</small></div>
          <div class="dip"><span class="yr">2018</span><p>Infirmier D.É.</p><small>IFSI Tourcoing</small></div>
          <div class="dip"><span class="yr">2024</span><p>Coach sportif</p><small>Certifié</small></div>
          <div class="dip"><span class="yr">2024</span><p>Cabinet libéral</p><small>Tourcoing</small></div>
        </div>
                <div class="socials-row">
                    <a href="https://www.instagram.com/yacineosteo" target="_blank" rel="noopener noreferrer"
             title="Yacineosteo — Yacine Boughagha"
             aria-label="Yacineosteo de Yacine Boughagha"
             style="width:38px;height:38px;background:#e1306c;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.9rem;text-decoration:none;opacity:1;transition:opacity .2s"
             onmouseover="this.style.opacity='.75'" onmouseout="this.style.opacity='1'">
            <i class="bi-instagram" aria-hidden="true"></i>
          </a>
                    <a href="http://www.linkedin.com/in/yacine-boughagha-4355b3336" target="_blank" rel="noopener noreferrer"
             title="linkedin — Yacine Boughagha"
             aria-label="linkedin de Yacine Boughagha"
             style="width:38px;height:38px;background:#0A66C2;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.9rem;text-decoration:none;opacity:1;transition:opacity .2s"
             onmouseover="this.style.opacity='.75'" onmouseout="this.style.opacity='1'">
            <i class="bi-linkedin" aria-hidden="true"></i>
          </a>
                  </div>
              </div>
    </div>
  </div>
</section>

<!-- SPÉCIALITÉS avec tabs -->
<section id="specialites" class="sec bg-cr" aria-label="Spécialités ostéopathiques">
  <div class="container">
    <div class="sec-hd">
      <span class="sec-lbl">Expertises</span>
      <h2>Spécialités à Tourcoing</h2>
      <p>Sélectionnez une spécialité pour découvrir le détail de la prise en charge</p>
    </div>

    <div class="spec-tabs" role="tablist" aria-label="Spécialités ostéopathiques">
      <button class="spec-tab active" role="tab" aria-selected="true"  aria-controls="tab-sport"   data-tab="sport">    🏃 Sport</button>
      <button class="spec-tab"        role="tab" aria-selected="false" aria-controls="tab-needling" data-tab="needling"> 🪡 Dry Needling</button>
      <button class="spec-tab"        role="tab" aria-selected="false" aria-controls="tab-pediatrie" data-tab="pediatrie">👶 Pédiatrie</button>
      <button class="spec-tab"        role="tab" aria-selected="false" aria-controls="tab-grossesse" data-tab="grossesse">🤰 Grossesse</button>
    </div>

    <div class="spec-panels">

      <!-- SPORT -->
      <div class="spec-panel active" id="tab-sport" role="tabpanel">
        <div class="spec-panel-text">
          <a href="/osteopathie-sport-tourcoing" class="spec-link" title="Ostéopathie du sport à Tourcoing">Page dédiée <i class="bi bi-arrow-right"></i></a>
          <h3>Ostéopathie du sport à Tourcoing</h3>
          <p>Yacine Boughagha est à la fois <strong>ostéopathe D.O. et coach sportif certifié</strong>. Il comprend les contraintes biomécaniques de chaque discipline et adapte chaque traitement à votre sport, votre niveau et votre objectif. Il accompagne les sportifs amateurs et compétiteurs pour la récupération, la prévention des blessures et l'optimisation de la performance.</p>
          <p>Sa formation d'infirmier lui permet également de gérer les blessures sportives complexes et les situations post-opératoires avec une rigueur médicale rare chez un ostéopathe.</p>
          <ul class="chk" role="list">
            <li><i class="bi bi-check-circle-fill"></i>Manipulations articulaires et techniques myofasciales</li>
            <li><i class="bi bi-check-circle-fill"></i>Dry Needling des points gâchettes musculaires</li>
            <li><i class="bi bi-check-circle-fill"></i>Analyse du geste sportif et conseils proprioceptifs</li>
            <li><i class="bi bi-check-circle-fill"></i>Récupération post-compétition accélérée</li>
            <li><i class="bi bi-check-circle-fill"></i>Prévention des blessures de surmenage</li>
          </ul>
        </div>
        <div class="spec-panel-visual">
          <h4>Sports pris en charge</h4>
          <ul class="spec-visual-list" role="list">
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">CrossFit & musculation</strong><span>Épaules, lombaires, poignets, genoux</span></div></li>
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">Football & sports collectifs</strong><span>Chevilles, ischio-jambiers, hanches</span></div></li>
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">Tennis & badminton</strong><span>Épicondylite, épaule, cervicales</span></div></li>
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">Course à pied & trail</strong><span>Syndrome de l'essuie-glace, périostite</span></div></li>
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">Cyclisme & triathlon</strong><span>Posture, lombaires, genoux</span></div></li>
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">Yoga & arts martiaux</strong><span>Mobilité, équilibre, posture</span></div></li>
          </ul>
          <a href="/osteopathie-sport-tourcoing" class="spec-cta" title="Ostéopathie du sport à Tourcoing">En savoir plus <i class="bi bi-arrow-right"></i></a>
        </div>
      </div>

      <!-- DRY NEEDLING -->
      <div class="spec-panel" id="tab-needling" role="tabpanel">
        <div class="spec-panel-text">
          <a href="/dry-needling-tourcoing" class="spec-link" title="Dry Needling à Tourcoing">Page dédiée <i class="bi bi-arrow-right"></i></a>
          <h3>Dry Needling & Neuromodulation à Tourcoing</h3>
          <p>Le <strong>Dry Needling</strong> est une technique de puncture sèche qui désactive les points gâchettes myofasciaux — zones de tension provoquant douleur et limitation fonctionnelle. De fines aiguilles sont insérées dans le muscle pour déclencher une réponse de relâchement (twitch response), réduisant immédiatement la douleur et restaurant la mobilité.</p>
          <p>Pratiqué par un <strong>infirmier D.É.</strong>, le Dry Needling est réalisé ici avec une asepsie de niveau soignant et une connaissance anatomique irréprochable — une garantie de sécurité que la plupart des cabinets n'offrent pas.</p>
          <ul class="chk" role="list">
            <li><i class="bi bi-check-circle-fill"></i>Contractures musculaires chroniques rebelles</li>
            <li><i class="bi bi-check-circle-fill"></i>Tendinites et syndromes de surentraînement</li>
            <li><i class="bi bi-check-circle-fill"></i>Cervicalgies et céphalées de tension</li>
            <li><i class="bi bi-check-circle-fill"></i>Lombalgies, épicondylite, fasciite plantaire</li>
            <li><i class="bi bi-check-circle-fill"></i>Neuromodulation pour douleurs chroniques complexes</li>
          </ul>
        </div>
        <div class="spec-panel-visual">
          <h4>Zones traitées</h4>
          <ul class="spec-visual-list" role="list">
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">Nuque & cervicales</strong><span>Sous-occipitaux, trapèzes — céphalées</span></div></li>
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">Épaule & bras</strong><span>Coiffe, biceps, épicondyliens</span></div></li>
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">Dos & lombaires</strong><span>Paravertébraux, carré des lombes</span></div></li>
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">Membres inférieurs</strong><span>Ischio-jambiers, quadriceps, mollet</span></div></li>
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">Pied & cheville</strong><span>Fasciite plantaire, péroniers</span></div></li>
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">Douleurs chroniques</strong><span>Fibromyalgie, syndromes myofasciaux</span></div></li>
          </ul>
          <a href="/dry-needling-tourcoing" class="spec-cta" title="Dry Needling à Tourcoing">En savoir plus <i class="bi bi-arrow-right"></i></a>
        </div>
      </div>

      <!-- PÉDIATRIE -->
      <div class="spec-panel" id="tab-pediatrie" role="tabpanel">
        <div class="spec-panel-text">
          <a href="/osteopathie-pediatrique-tourcoing" class="spec-link" title="Ostéopathie pédiatrique à Tourcoing">Page dédiée <i class="bi bi-arrow-right"></i></a>
          <h3>Ostéopathie pédiatrique à Tourcoing</h3>
          <p>La naissance soumet le nourrisson à d'importantes contraintes physiques. Ces tensions peuvent entraîner des déséquilibres que l'ostéopathie pédiatrique corrige efficacement, surtout en intervention précoce.</p>
          <p>Yacine Boughagha reçoit les nourrissons <strong>dès les premiers jours de vie</strong>. Les techniques utilisées sont exclusivement douces — pressions légères, mobilisations lentes, techniques crâniennes non invasives. Aucune manipulation brusque.</p>
          <p><strong>Bilan de naissance recommandé</strong> pour : accouchement avec ventouse ou forceps, naissance rapide ou longue, présentation en siège, grossesse multiple.</p>
          <ul class="chk" role="list">
            <li><i class="bi bi-check-circle-fill"></i>Coliques, pleurs inexpliqués, inconfort digestif</li>
            <li><i class="bi bi-check-circle-fill"></i>Plagiocéphalie (tête plate) — efficace avant 6 mois</li>
            <li><i class="bi bi-check-circle-fill"></i>Torticolis congénital, préférence de côté</li>
            <li><i class="bi bi-check-circle-fill"></i>Troubles du sommeil, difficultés à téter</li>
            <li><i class="bi bi-check-circle-fill"></i>Adolescents : scoliose, posture, douleurs de croissance</li>
          </ul>
        </div>
        <div class="spec-panel-visual">
          <h4>Quand consulter ?</h4>
          <ul class="spec-visual-list" role="list">
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">Bilan post-naissance</strong><span>Prévention systématique après tout accouchement</span></div></li>
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">0–3 mois</strong><span>Coliques, régurgitations, troubles du sommeil</span></div></li>
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">3–12 mois</strong><span>Plagiocéphalie, torticolis, otites répétées</span></div></li>
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">1–6 ans</strong><span>Troubles posturaux, otites chroniques, ORL répétés</span></div></li>
            <li><i class="bi bi-check2-circle"></i><div><strong class="svl-strong">Adolescents</strong><span>Scoliose fonctionnelle, douleurs de croissance</span></div></li>
          </ul>
          <a href="/osteopathie-pediatrique-tourcoing" class="spec-cta" title="Ostéopathie pédiatrique à Tourcoing">En savoir plus <i class="bi bi-arrow-right"></i></a>
        </div>
      </div>

      <!-- GROSSESSE -->
      <div class="spec-panel" id="tab-grossesse" role="tabpanel">
        <div class="spec-panel-text">
          <a href="/osteopathie-grossesse-tourcoing" class="spec-link" title="Ostéopathie grossesse et post-partum">Page dédiée <i class="bi bi-arrow-right"></i></a>
          <h3>Ostéopathie grossesse à Tourcoing</h3>
          <p>La grossesse entraîne des modifications posturales et hormonales importantes. Le centre de gravité se déplace, les ligaments se relâchent sous l'effet de la relaxine, et la croissance du bébé exerce des pressions croissantes sur le bassin et le rachis.</p>
          <p>L'ostéopathie soulage ces douleurs et accompagne le corps dans ses transformations. <strong>Techniques adaptées et sécurisées</strong>, compatibles avec toutes les étapes de la grossesse du 1er au 3e trimestre.</p>
          <ul class="chk" role="list">
            <li><i class="bi bi-check-circle-fill"></i>Lombalgies de grossesse et douleurs sacro-iliaques</li>
            <li><i class="bi bi-check-circle-fill"></i>Sciatique gravidique — très efficace</li>
            <li><i class="bi bi-check-circle-fill"></i>Douleur de la symphyse pubienne (SPD)</li>
            <li><i class="bi bi-check-circle-fill"></i>Préparation du bassin à l'accouchement (32–36 SA)</li>
            <li><i class="bi bi-check-circle-fill"></i>Post-partum : cicatrice césarienne, plancher pelvien</li>
          </ul>
        </div>
        <div class="spec-panel-visual">
          <h4>Programme recommandé</h4>
          <ul class="spec-visual-list" role="list">
            <li><i class="bi bi-circle-fill"></i><div><strong class="svl-strong">2e trimestre (14–26 SA)</strong><span>Prévention des douleurs, rééquilibrage postural</span></div></li>
            <li><i class="bi bi-circle-fill"></i><div><strong class="svl-strong">3e trimestre (32–36 SA)</strong><span>Préparation du bassin à l'accouchement</span></div></li>
            <li><i class="bi bi-circle-fill"></i><div><strong class="svl-strong">Post-partum (6–8 sem.)</strong><span>Récupération, cicatrices, plancher pelvien</span></div></li>
            <li><i class="bi bi-circle-fill"></i><div><strong class="svl-strong">À la demande</strong><span>Sciatique, lombaires, blocages à tout terme</span></div></li>
          </ul>
          <a href="/osteopathie-grossesse-tourcoing" class="spec-cta" title="Ostéopathie grossesse et post-partum">En savoir plus <i class="bi bi-arrow-right"></i></a>
        </div>
      </div>

    </div>
  </div>
</section>

<!-- APPROCHE UNIQUE : SPORT + INFIRMIER fusionnés -->
<section id="approche" class="sec" aria-label="Approche unique sport et infirmier">
  <div class="container">
    <div class="sec-hd">
      <span class="sec-lbl">Ce qui fait la différence</span>
      <h2>Une triple expertise unique à Tourcoing</h2>
      <p>Ostéopathe D.O. · Infirmier Diplômé d'État · Coach sportif — une combinaison rare qui change concrètement la qualité des soins</p>
    </div>

    <div class="approche-grid">
      <!-- Sport -->
      <div class="approche-card approche-card-dark">
        <div class="approche-header">
          <div class="approche-ico approche-ico-tl">🏃</div>
          <div>
            <span class="approche-label approche-label-dark">Coach sportif certifié</span>
            <h3 class="approche-h3-dark">Ostéopathe du sport</h3>
          </div>
        </div>
        <p class="approche-p-dark">Comprend les contraintes biomécaniques de votre sport et adapte chaque traitement à votre niveau et vos objectifs. Récupération, prévention, performance.</p>
        <div class="sport-grid">
                    <div class="sport-item"><span>🏋️</span><div><h4>CrossFit</h4><p>Épaules, lombaires</p></div></div>
                    <div class="sport-item"><span>⚽</span><div><h4>Football</h4><p>Chevilles, genoux</p></div></div>
                    <div class="sport-item"><span>🎾</span><div><h4>Tennis</h4><p>Épicondylite, épaule</p></div></div>
                    <div class="sport-item"><span>🏃</span><div><h4>Course</h4><p>Essuie-glace, périostite</p></div></div>
                    <div class="sport-item"><span>🚴</span><div><h4>Cyclisme</h4><p>Posture, lombaires</p></div></div>
                    <div class="sport-item"><span>🤸</span><div><h4>Yoga & AM</h4><p>Mobilité, équilibre</p></div></div>
                  </div>
      </div>

      <!-- Infirmier -->
      <div class="approche-col-right">
        <div class="approche-card approche-card-light">
          <div class="approche-header-light">
            <div class="approche-ico approche-ico-bl">🩺</div>
            <div>
              <span class="approche-label approche-label-bl">IDE — IFSI Tourcoing 2018</span>
              <h3 class="approche-h3-light">Infirmier Diplômé d'État</h3>
            </div>
          </div>
          <p class="approche-p-light">Formation clinique approfondie : lecture des bilans, pathologies, traitements médicamenteux, contre-indications. Une rigueur médicale que la plupart des ostéopathes n'ont pas.</p>
          <div class="ide-items">
                        <div class="ide-item"><i class="bi bi-eye"></i>Détection des signaux d'alerte cliniques</div>
                        <div class="ide-item"><i class="bi bi-shield-check"></i>Gestion des contre-indications médicales</div>
                        <div class="ide-item"><i class="bi bi-activity"></i>Dry Needling avec asepsie de niveau soignant</div>
                        <div class="ide-item"><i class="bi bi-capsule"></i>Patients sous AVK, NACO, anticoagulants</div>
                        <div class="ide-item"><i class="bi bi-bandaid"></i>Prise en charge post-opératoire</div>
                      </div>
        </div>

        <div class="approche-ide-box">
          <h4 class="approche-ide-h4"><i class="bi bi-buildings"></i>Coordination pluridisciplinaire</h4>
          <p class="approche-ide-p">Travaille en lien avec votre équipe médicale :</p>
          <div class="approche-tags">
                        <span style="background:#fff;color:#065f46;border:1px solid rgba(13,148,136,.3);font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:99px">Médecin traitant</span>
                        <span style="background:#fff;color:#065f46;border:1px solid rgba(13,148,136,.3);font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:99px">Chirurgien</span>
                        <span style="background:#fff;color:#065f46;border:1px solid rgba(13,148,136,.3);font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:99px">Kinésithérapeute</span>
                        <span style="background:#fff;color:#065f46;border:1px solid rgba(13,148,136,.3);font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:99px">Sage-femme</span>
                        <span style="background:#fff;color:#065f46;border:1px solid rgba(13,148,136,.3);font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:99px">Podologue</span>
                      </div>
        </div>
      </div>
    </div>

    <!-- 4 atouts -->
    <div class="approche-atouts">
            <div class="atout" style="background:#e8f0fe;border:1px solid #dbeafe">
        <div class="atout-ico">🎯</div>
        <h4>Diagnostic précis</h4>
        <p>Évaluation clinique globale — ostéopathique ET médicale — dès la première séance.</p>
      </div>
            <div class="atout" style="background:#e6f7f6;border:1px solid #ccfbf1">
        <div class="atout-ico">⚡</div>
        <h4>Dry Needling sécurisé</h4>
        <p>Asepsie de niveau infirmier, anatomie maîtrisée, contre-indications respectées.</p>
      </div>
            <div class="atout" style="background:#fef9c3;border:1px solid #fef9c3">
        <div class="atout-ico">🔄</div>
        <h4>Post-opératoire</h4>
        <p>Prise en charge après chirurgie orthopédique ou viscérale, adaptée à votre état médical réel.</p>
      </div>
            <div class="atout" style="background:#f3f0ff;border:1px solid #ede9fe">
        <div class="atout-ico">🤝</div>
        <h4>Vision globale</h4>
        <p>Sport, médical et mouvement : trois angles de lecture pour un traitement qui dure.</p>
      </div>
          </div>
  </div>
</section>

<!-- ZONES DESSERVIES -->
<div class="villes-sec" aria-label="Zones desservies">
  <div class="container">
    <div class="rv-cta-wrap">
      <span class="sec-lbl">Zones desservies</span>
      <h2 style="margin-bottom:12px">Ostéopathe à Tourcoing et dans la métropole lilloise</h2>
      <p>Cabinet idéalement situé au <strong>29 avenue de la Marne, 59200 Tourcoing</strong>. Tramway T arrêt Ma Campagne (2 min) · Métro ligne 2 arrêt Carliers (8 min) · Parking gratuit.</p>
      <p style="margin-top:10px"><strong>Ostéopathe sport Tourcoing</strong> — patients accueillis depuis toute la métropole :</p>
    </div>
        <div class="villes-wrap">
            <a href="/osteopathe-wattrelos" class="ville-tag" title="Ostéopathe Wattrelos — cabinet à Tourcoing">Wattrelos<span>3 km</span></a>
            <a href="/osteopathe-roubaix" class="ville-tag" title="Ostéopathe Roubaix — cabinet à Tourcoing">Roubaix<span>5 km</span></a>
            <a href="/osteopathe-mouvaux" class="ville-tag" title="Ostéopathe Mouvaux — cabinet à Tourcoing">Mouvaux<span>4 km</span></a>
            <a href="/osteopathe-roncq" class="ville-tag" title="Ostéopathe Roncq — cabinet à Tourcoing">Roncq<span>5 km</span></a>
            <a href="/osteopathe-marcq-en-baroeul" class="ville-tag" title="Ostéopathe Marcq-en-Barœul — cabinet à Tourcoing">Marcq-en-Barœul<span>9 km</span></a>
            <a href="/osteopathe-halluin" class="ville-tag" title="Ostéopathe Halluin — cabinet à Tourcoing">Halluin<span>7 km</span></a>
            <a href="/osteopathe-bondues" class="ville-tag" title="Ostéopathe Bondues — cabinet à Tourcoing">Bondues<span>6 km</span></a>
            <a href="/osteopathe-croix" class="ville-tag" title="Ostéopathe Croix — cabinet à Tourcoing">Croix<span>6 km</span></a>
            <a href="/osteopathe-neuville-en-ferrain" class="ville-tag" title="Ostéopathe Neuville-en-Ferrain — cabinet à Tourcoing">Neuville-en-Ferrain<span>6 km</span></a>
            <a href="/osteopathe-lannoy" class="ville-tag" title="Ostéopathe Lannoy — cabinet à Tourcoing">Lannoy<span>8 km</span></a>
            <a href="/osteopathe-villeneuve-dascq" class="ville-tag" title="Ostéopathe Villeneuve-d&#039;Ascq — cabinet à Tourcoing">Villeneuve-d&#039;Ascq<span>12 km</span></a>
            <a href="/osteopathe-lille" class="ville-tag" title="Ostéopathe Lille — cabinet à Tourcoing">Lille<span>15 km</span></a>
          </div>
  </div>
</div>

<!-- AVIS -->
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"MedicalBusiness","name":"Ostéopathe Tourcoing - Yacine Boughagha","aggregateRating":{"@type":"AggregateRating","ratingValue":"5.0","reviewCount":"20","bestRating":"5","worstRating":"1"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Charles Tsonga"},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Bonjour,\n\nJ’ai consulté Yacine il y’a moins d’une semaine et tout s’est super bien passé. J’y suis allé pour une douleur dorsale du côté droit et lui a pu également déceler une du côté gauche et franchement la séance s’est super bien passée. Au final je me suis retrouvé sans douleur jusqu’à lors que","datePublished":"2026-04-26"},{"@type":"Review","author":{"@type":"Person","name":"Nora EL"},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Ostéopathe très compétent et à l’écoute. Les explications sont claires, la prise en charge est douce et efficace. J’ai senti une nette amélioration dès la première séance. Je recommande à 100 %.","datePublished":"2026-04-26"},{"@type":"Review","author":{"@type":"Person","name":"S. De Abreu"},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Un grand merci à Yacine pour son professionnalisme. Ostéopathe passionné qui prend le temps d’expliquer. Mes douleurs qui perdurent depuis des années ont disparu. Cabinet magnifique dans un beau quartier. Table chauffante ce qui est un grand plus. Je recommande vivement ce professionnel","datePublished":"2026-04-26"},{"@type":"Review","author":{"@type":"Person","name":"Barbosa Alexia"},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Je recommande vivement Yacine pour son professionnalisme et la qualité de sa prise en charge. Il a su être pleinement à l’écoute et identifier immédiatement les actions nécessaires pour soulager mes douleurs au dos et à l’épaule, liées à mes entraînements de musculation.\nSes compétences et ses conna","datePublished":"2026-04-26"},{"@type":"Review","author":{"@type":"Person","name":"Lili Lili"},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Un grand merci Monsieur Yassine, j’ai eu une séance aujourd’hui urgent, très professionnel prends vraiment le temps pour calmer vous douleur débloquer le corps, J’arrive même pas tourner je suis sortie en forme je me sens bien beaucoup mieux.\nMerci Monsieur Yassine","datePublished":"2026-04-26"}]}
</script>

<section id="testimonials" class="sec" aria-label="Avis patients Google">
  <div class="container">
    <div class="sec-hd">
      <span class="sec-lbl">Témoignages vérifiés</span>
      <h2>Avis de mes patients</h2>
            <p>
        <span style="color:#f59e0b;letter-spacing:2px">★★★★★</span>
        <strong style="color:var(--nv)">5.0/5</strong>
        · 20 avis Google vérifiés ·
        <a href="https://share.google/eqOkkS1AkrMquI4Cl" target="_blank" rel="noopener"
           class="rv-goo-link" title="Voir tous les avis Google">
          Voir tous les avis <i class="bi bi-box-arrow-up-right"></i>
        </a>
      </p>
          </div>

    <!-- Carrousel avis -->
    <div class="rv-wrap">
      <div class="rv-track" id="rv-track" role="list">
                <div class="review-card" id="rv-card-0" role="listitem">
          <div class="rv-card-hd">
            <div class="review-stars" aria-label="Note : 5 étoiles sur 5">★★★★★</div>
            <img src="https://www.google.com/favicon.ico" alt="Google" width="14" height="14" class="rv-goo-ico">
          </div>
          <p class="review-text">"Bonjour,

J’ai consulté Yacine il y’a moins d’une semaine et tout s’est super bien passé. J’y suis allé pour une douleur dorsale du côté droit et lui a pu également déceler une du côté gauche et franchement la séance s’e…"</p>
          <div class="review-author">
                          <img src="https://lh3.googleusercontent.com/a/ACg8ocIAHECY53seKusM7GMVYHsjX7kowUs-Y770LaNdFAChNVWTqw=s128-c0x00000000-cc-rp-mo" alt="Photo de Charles Tsonga" width="36" height="36" loading="lazy" onerror="this.style.display='none'">
                        <div>
              <strong>Charles Tsonga</strong>
              <small>il y a 2 mois</small>
            </div>
          </div>
        </div>
                <div class="review-card" id="rv-card-1" role="listitem">
          <div class="rv-card-hd">
            <div class="review-stars" aria-label="Note : 5 étoiles sur 5">★★★★★</div>
            <img src="https://www.google.com/favicon.ico" alt="Google" width="14" height="14" class="rv-goo-ico">
          </div>
          <p class="review-text">"Ostéopathe très compétent et à l’écoute. Les explications sont claires, la prise en charge est douce et efficace. J’ai senti une nette amélioration dès la première séance. Je recommande à 100 %."</p>
          <div class="review-author">
                          <img src="https://lh3.googleusercontent.com/a/ACg8ocKw6vRXg-tNqHhfROWnKsKExMlLwn6ABq-fJHqUsHgHrBGamQ=s128-c0x00000000-cc-rp-mo" alt="Photo de Nora EL" width="36" height="36" loading="lazy" onerror="this.style.display='none'">
                        <div>
              <strong>Nora EL</strong>
              <small>il y a 4 mois</small>
            </div>
          </div>
        </div>
                <div class="review-card" id="rv-card-2" role="listitem">
          <div class="rv-card-hd">
            <div class="review-stars" aria-label="Note : 5 étoiles sur 5">★★★★★</div>
            <img src="https://www.google.com/favicon.ico" alt="Google" width="14" height="14" class="rv-goo-ico">
          </div>
          <p class="review-text">"Un grand merci à Yacine pour son professionnalisme. Ostéopathe passionné qui prend le temps d’expliquer. Mes douleurs qui perdurent depuis des années ont disparu. Cabinet magnifique dans un beau quartier. Table chauffant…"</p>
          <div class="review-author">
                          <img src="https://lh3.googleusercontent.com/a/ACg8ocKnihR__-ekUmqM2eMXM9G4EhSmy7PJgIR9eZ0dI3_KSlv-rg=s128-c0x00000000-cc-rp-mo" alt="Photo de S. De Abreu" width="36" height="36" loading="lazy" onerror="this.style.display='none'">
                        <div>
              <strong>S. De Abreu</strong>
              <small>il y a 3 mois</small>
            </div>
          </div>
        </div>
                <div class="review-card" id="rv-card-3" role="listitem">
          <div class="rv-card-hd">
            <div class="review-stars" aria-label="Note : 5 étoiles sur 5">★★★★★</div>
            <img src="https://www.google.com/favicon.ico" alt="Google" width="14" height="14" class="rv-goo-ico">
          </div>
          <p class="review-text">"Je recommande vivement Yacine pour son professionnalisme et la qualité de sa prise en charge. Il a su être pleinement à l’écoute et identifier immédiatement les actions nécessaires pour soulager mes douleurs au dos et à …"</p>
          <div class="review-author">
                          <img src="https://lh3.googleusercontent.com/a/ACg8ocLCD8SVLb6MbvoPpaeZHZx0Qh2X2nNPZ5wqfTaf5245ncwnyq4=s128-c0x00000000-cc-rp-mo" alt="Photo de Barbosa Alexia" width="36" height="36" loading="lazy" onerror="this.style.display='none'">
                        <div>
              <strong>Barbosa Alexia</strong>
              <small>il y a 2 mois</small>
            </div>
          </div>
        </div>
                <div class="review-card" id="rv-card-4" role="listitem">
          <div class="rv-card-hd">
            <div class="review-stars" aria-label="Note : 5 étoiles sur 5">★★★★★</div>
            <img src="https://www.google.com/favicon.ico" alt="Google" width="14" height="14" class="rv-goo-ico">
          </div>
          <p class="review-text">"Un grand merci Monsieur Yassine, j’ai eu une séance aujourd’hui urgent, très professionnel prends vraiment le temps pour calmer vous douleur débloquer le corps, J’arrive même pas tourner je suis sortie en forme je me sen…"</p>
          <div class="review-author">
                          <img src="https://lh3.googleusercontent.com/a/ACg8ocLeJJ8PflBzWg4QYRD3U2gKtYepaOm4yhfmE2XcsjjE9djr-Q=s128-c0x00000000-cc-rp-mo" alt="Photo de Lili Lili" width="36" height="36" loading="lazy" onerror="this.style.display='none'">
                        <div>
              <strong>Lili Lili</strong>
              <small>il y a 4 mois</small>
            </div>
          </div>
        </div>
              </div>

      <!-- Dots -->
      <div class="rv-dots" id="rv-dots" role="tablist" aria-label="Navigation des avis">
                <button class="rv-dot active"
                id="rvd-0"
                onclick="rvGoTo(0)"
                role="tab"
                aria-selected="true"
                aria-label="Avis 1 sur 5">
        </button>
                <button class="rv-dot"
                id="rvd-1"
                onclick="rvGoTo(1)"
                role="tab"
                aria-selected="false"
                aria-label="Avis 2 sur 5">
        </button>
                <button class="rv-dot"
                id="rvd-2"
                onclick="rvGoTo(2)"
                role="tab"
                aria-selected="false"
                aria-label="Avis 3 sur 5">
        </button>
                <button class="rv-dot"
                id="rvd-3"
                onclick="rvGoTo(3)"
                role="tab"
                aria-selected="false"
                aria-label="Avis 4 sur 5">
        </button>
                <button class="rv-dot"
                id="rvd-4"
                onclick="rvGoTo(4)"
                role="tab"
                aria-selected="false"
                aria-label="Avis 5 sur 5">
        </button>
              </div>
    </div>

  </div>
</section>

<style>
/* ── Carrousel avis ── */
.rv-wrap{position:relative}
.rv-track{
  display:flex;
  gap:16px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding-bottom:4px;
}
.rv-track::-webkit-scrollbar{display:none}
.review-card{
  flex:0 0 calc((100% - 64px) / 5);
  scroll-snap-align:start;
  scroll-margin-left:0;
}
.rv-dots{display:none;justify-content:center;gap:8px;margin-top:20px}
.rv-dot{width:8px;height:8px;border-radius:4px;border:none;cursor:pointer;transition:all .3s;background:var(--g200);padding:0;min-width:8px;min-height:8px}
.rv-dot.active{width:20px;background:var(--bl)}
@media(max-width:1024px){
  .review-card{flex:0 0 80vw}
  .rv-dots{display:flex}
}
@media(max-width:640px){
  .review-card{flex:0 0 90vw}
  .rv-track{gap:12px}
}
</style>
<script>
(function(){
  var track = document.getElementById('rv-track');
  if(!track) return;
  var cards = track.querySelectorAll('.review-card');
  var dots  = document.querySelectorAll('.rv-dot');
  var n     = cards.length;
  var cur   = 0;
  var timer;
  var cardW = 0; // mis à jour par ResizeObserver sans forced layout

  // ResizeObserver : reçoit les dimensions passivement, sans lire le layout
  if('ResizeObserver' in window && cards[0]){
    var ro = new ResizeObserver(function(entries){
      for(var i=0;i<entries.length;i++){
        // contentBoxSize si disponible, sinon contentRect
        if(entries[i].contentBoxSize){
          var s = entries[i].contentBoxSize[0]||entries[i].contentBoxSize;
          cardW = (s.inlineSize||entries[i].contentRect.width) + 12;
        } else {
          cardW = entries[i].contentRect.width + 12;
        }
        break;
      }
    });
    ro.observe(cards[0]);
  }

  window.rvGoTo = function(i){
    if(i < 0) i = n - 1;
    if(i >= n) i = 0;
    cur = i;
    // Pas de lecture DOM — cardW est déjà connu via ResizeObserver
    var left = cardW > 0 ? cardW * i : 0;
    track.scrollTo({left: left, behavior:'smooth'});
    dots.forEach(function(d, j){
      d.classList.toggle('active', j === i);
      d.setAttribute('aria-selected', j === i ? 'true' : 'false');
    });
  };

  // IntersectionObserver — sync dots avec scroll natif, sans lire le layout
  if('IntersectionObserver' in window){
    var io = new IntersectionObserver(function(entries){
      entries.forEach(function(e){
        if(e.intersectionRatio >= 0.6){
          var idx = Array.prototype.indexOf.call(cards, e.target);
          if(idx !== -1 && idx !== cur){
            cur = idx;
            dots.forEach(function(d, j){
              d.classList.toggle('active', j === idx);
              d.setAttribute('aria-selected', j === idx ? 'true' : 'false');
            });
          }
        }
      });
    },{root: track, threshold: 0.6});
    cards.forEach(function(c){ io.observe(c); });
  }

  // Auto-scroll mobile only
  function startTimer(){ timer = setInterval(function(){ rvGoTo(cur + 1); }, 4500); }
  function stopTimer(){ clearInterval(timer); }

  if(window.innerWidth <= 1024){
    startTimer();
    track.addEventListener('touchstart', stopTimer, {passive:true});
    track.addEventListener('touchend', function(){ setTimeout(startTimer, 3000); }, {passive:true});
  }
})();
</script>



<!-- RDV -->
<section id="appointment" class="sec bg-cr" aria-label="Prise de rendez-vous">
  <div class="container">
    <div class="appt-wrap">
      <div class="appt-info">
        <h2>Prendre rendez-vous</h2>
        <p>Sans ordonnance · Premier créneau souvent disponible le jour même</p>
                <ul class="appt-ul" role="list">
          <li><i class="bi bi-geo-alt"></i>29 Av. de la Marne, 59200 Tourcoing</li>
          <li>
            <i class="bi bi-clock" aria-hidden="true"></i>
            <span style="font-weight:600;color:#10b981">Ouvert maintenant · ferme à 20:00</span>
            <br>
            <span style="font-size:.82em;color:rgba(255,255,255,.6);margin-left:1.4em">Lundi – Dimanche · 08:00 – 20:00</span>
          </li>
          <li><i class="bi bi-currency-euro"></i>50€–70€ · Remboursable mutuelle</li>
          <li><i class="bi bi-telephone"></i><a href="tel:+33669452258" title="Appeler le cabinet" style="color:inherit">06 69 45 22 58</a></li>
          <li><i class="bi bi-train-front"></i>Tramway T · Arrêt Ma Campagne (2 min)</li>
          <li><i class="bi bi-p-circle"></i>Parking gratuit à proximité</li>
        </ul>
      </div>
      <div class="appt-box">
                <h3>Nouvelle consultation</h3>
        <form method="post" id="rdvForm" novalidate>
          <div class="fg">
            <div class="ff"><label for="nom">Nom *</label><input type="text" id="nom" name="nom" required autocomplete="family-name" placeholder="Dupont"></div>
            <div class="ff"><label for="prenom">Prénom *</label><input type="text" id="prenom" name="prenom" required autocomplete="given-name" placeholder="Jean"></div>
            <div class="ff"><label for="email">Email *</label><input type="email" id="email" name="email" required autocomplete="email" placeholder="jean@email.fr"></div>
            <div class="ff"><label for="phone">Téléphone *</label><input type="tel" id="phone" name="phone" required autocomplete="tel" placeholder="06…"></div>
          </div>
          <div class="ff">
            <label for="raison_rdv">Motif de consultation *</label>
            <select id="raison_rdv" name="raison_rdv" required>
              <option value="" disabled selected>Sélectionnez le motif…</option>
              <option>Première consultation d'ostéopathie</option>
              <option>Consultation de suivi</option>
              <option value="Sport">Sportif (suivi / blessure)</option>
              <option value="Pédiatrie">Pédiatrie (nourrisson / enfant)</option>
              <option value="Grossesse">Femme enceinte / post-partum</option>
              <option value="Dry Needling">Dry Needling / Neuromodulation</option>
              <option value="Urgence">Urgence / Douleur aiguë</option>
            </select>
          </div>
          <div class="fg">
            <div class="ff"><label for="calendrier_pro">Date *</label><input type="text" id="calendrier_pro" name="date_rdv" value="2026-04-27" readonly style="cursor:pointer" required></div>
            <div class="ff">
              <label for="time_rdv_select">Heure *</label>
              <select id="time_rdv_select" name="time_rdv" required>
                <option value="08:00">08:00</option><option value="08:45">08:45</option><option value="09:30">09:30</option><option value="10:15">10:15</option><option value="11:00">11:00</option><option value="11:45">11:45</option><option value="12:30">12:30</option><option value="13:15">13:15</option><option value="14:00">14:00</option><option value="14:45">14:45</option><option value="15:30">15:30</option><option value="16:15">16:15</option><option value="17:00">17:00</option><option value="17:45">17:45</option><option value="18:30">18:30</option><option value="19:15">19:15</option>              </select>
            </div>
          </div>
          <button type="submit" name="book_appointment" id="rdvSubmit" class="btn btn-p btn-w btn-lg"><i class="bi bi-check2-circle"></i> Confirmer la réservation</button>
        </form>
      </div>
    </div>
  </div>
</section>

<!-- TARIFS -->
<section id="pricing" class="sec" aria-label="Tarifs">
  <div class="container">
    <div class="sec-hd">
      <span class="sec-lbl">Tarifs</span>
      <h2>Tarifs & Expertises</h2>
      <p>Prise en charge par la quasi-totalité des mutuelles complémentaires</p>
    </div>
    <div class="pricing-grid">
      <div class="pricing-card">
        <h3><i class="bi bi-tag"></i>Tarifs des prestations</h3>
                <ul class="pricing-list" role="list"><li class=""><span>Consultation d&#039;ostéopathie</span><strong>70 €</strong></li><li class=""><span>Suivi d&#039;ostéopathie</span><strong>50 €</strong></li><li class=""><span>Massage récupération</span><strong>50 €</strong></li><li class="feat"><span>Forfait (10 séances)</span><strong>400 €</strong></li></ul>
                <p class="pricing-note"><em>Paiement en une fois à la première séance.</em></p>
      </div>
      <div class="pricing-card">
        <h3><i class="bi bi-mortarboard"></i>Expertises & Actes</h3>
        <ul class="xp-list" role="list">
                    <li><i class="bi bi-check-circle-fill"></i>Ostéopathie du sport</li>
                    <li><i class="bi bi-check-circle-fill"></i>Dry Needling & Neuromodulation</li>
                    <li><i class="bi bi-check-circle-fill"></i>Ostéopathie pédiatrique</li>
                    <li><i class="bi bi-check-circle-fill"></i>Ostéopathie grossesse & post-partum</li>
                    <li><i class="bi bi-check-circle-fill"></i>Ostéopathie structurelle & myofasciale</li>
                    <li><i class="bi bi-check-circle-fill"></i>Suivi post-opératoire</li>
                    <li><i class="bi bi-check-circle-fill"></i>Massage thérapeutique</li>
                    <li><i class="bi bi-check-circle-fill"></i>Nutrition du sportif</li>
                  </ul>
      </div>
      <div class="pricing-card">
        <h3><i class="bi bi-wallet2" aria-hidden="true"></i>Paiement & Mutuelle</h3>
                <div class="pay-item pay-ok"
             aria-label="Espèces uniquement accepté — Merci de prévoir l&#039;appoint si possible.">
          <i class="bi bi-cash-stack" aria-hidden="true"></i>
          <div>
            <strong>Espèces uniquement</strong>
            <small>Merci de prévoir l&#039;appoint si possible.</small>
          </div>
        </div>
                        <div class="pay-item pay-ko"
             aria-label="Cartes Bancaires non accepté : Pas de terminal">
          <i class="bi bi-x-circle" aria-hidden="true"></i>
          <div>
            <strong>Cartes Bancaires</strong>
            <small>Non accepté — Pas de terminal</small>
          </div>
        </div>
                <div class="pay-item pay-ko"
             aria-label="Chèques bancaires non accepté : Non acceptés">
          <i class="bi bi-x-circle" aria-hidden="true"></i>
          <div>
            <strong>Chèques bancaires</strong>
            <small>Non accepté — Non acceptés</small>
          </div>
        </div>
                        <div class="mutuelle">
          <h4><i class="bi bi-file-earmark-medical" aria-hidden="true"></i>Remboursement mutuelle</h4>
          <ul>
            <li>Quasi-totalité des mutuelles complémentaires</li>
            <li>Facture remise en fin de séance</li>
            <li>Envoi simplifié via votre application mutuelle</li>
          </ul>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- FAQ -->
<section id="faq" class="sec bg-cr" aria-label="Questions fréquentes">
  <div class="container">
    <div class="sec-hd">
      <span class="sec-lbl">FAQ</span>
      <h2>Questions fréquentes</h2>
      <p>Tout savoir avant votre première consultation</p>
    </div>
    <div class="faq-list">
            <div class="faq-item">
        <h3><button class="faq-btn" aria-expanded="false">L&#039;ostéopathie est-elle remboursée par la mutuelle ?<span class="faq-ico" aria-hidden="true"></span></button></h3>
        <div class="faq-ans"><div><p>Oui, entre 30€ et 60€ selon votre contrat. La quasi-totalité des mutuelles remboursent les séances. Une facture vous est remise en fin de séance pour envoi via votre application mutuelle.</p></div></div>
      </div>
            <div class="faq-item">
        <h3><button class="faq-btn" aria-expanded="false">Combien coûte une séance d&#039;ostéopathie à Tourcoing ?<span class="faq-ico" aria-hidden="true"></span></button></h3>
        <div class="faq-ans"><div><p>Le tarif varie entre 50€ et 70€ selon la prestation (consultation standard, séance sport, Dry Needling). Paiement par chèque, virement ou espèces.</p></div></div>
      </div>
            <div class="faq-item">
        <h3><button class="faq-btn" aria-expanded="false">Puis-je consulter sans ordonnance ?<span class="faq-ico" aria-hidden="true"></span></button></h3>
        <div class="faq-ans"><div><p>Oui, l&#039;ostéopathie est accessible en accès direct, sans ordonnance médicale. Vous pouvez prendre rendez-vous directement en ligne, 24h/24.</p></div></div>
      </div>
            <div class="faq-item">
        <h3><button class="faq-btn" aria-expanded="false">En quoi le fait d&#039;être infirmier change la consultation ?<span class="faq-ico" aria-hidden="true"></span></button></h3>
        <div class="faq-ans"><div><p>Yacine Boughagha est Infirmier Diplômé d&#039;État (IDE) depuis 2018. Il évalue vos antécédents médicaux avec rigueur clinique, détecte les contre-indications, pratique le Dry Needling en conditions d&#039;asepsie optimales, et prend en charge les patients sous traitement médical ou en post-opératoire. C&#039;est une garantie de sécurité et de qualité que la plupart des cabinets n&#039;offrent pas.</p></div></div>
      </div>
            <div class="faq-item">
        <h3><button class="faq-btn" aria-expanded="false">Qu&#039;est-ce que le Dry Needling ?<span class="faq-ico" aria-hidden="true"></span></button></h3>
        <div class="faq-ans"><div><p>Technique de puncture sèche des points gâchettes myofasciaux. De fines aiguilles relâchent les tensions musculaires profondes. Très efficace pour les sportifs, les contractures rebelles et les douleurs chroniques. Pratiqué avec asepsie de niveau infirmier.</p></div></div>
      </div>
            <div class="faq-item">
        <h3><button class="faq-btn" aria-expanded="false">L&#039;ostéopathie est-elle adaptée aux nourrissons et aux femmes enceintes ?<span class="faq-ico" aria-hidden="true"></span></button></h3>
        <div class="faq-ans"><div><p>Oui dans les deux cas. L&#039;ostéopathie pédiatrique est douce, recommandée pour coliques, plagiocéphalie et torticolis. Pendant la grossesse, elle soulage lombaires, sciatiques et douleurs de bassin avec des techniques sécurisées.</p></div></div>
      </div>
            <div class="faq-item">
        <h3><button class="faq-btn" aria-expanded="false">Recevez-vous les patients de Wattrelos, Roubaix et Mouvaux ?<span class="faq-ico" aria-hidden="true"></span></button></h3>
        <div class="faq-ans"><div><p>Oui. Le cabinet est accessible depuis Wattrelos (3 km), Roubaix (5 km), Mouvaux (4 km), Roncq (5 km), Marcq-en-Barœul (9 km) et toute la métropole lilloise. Tramway T arrêt Ma Campagne ou métro ligne 2 arrêt Carliers.</p></div></div>
      </div>
            <div class="faq-item">
        <h3><button class="faq-btn" aria-expanded="false">Proposez-vous des rendez-vous d&#039;urgence ?<span class="faq-ico" aria-hidden="true"></span></button></h3>
        <div class="faq-ans"><div><p>Oui. Des créneaux sont réservés pour les douleurs aiguës (lumbago, torticolis, blocage articulaire). Consultez les disponibilités en temps réel ou appelez le cabinet.</p></div></div>
      </div>
          </div>
  </div>
</section>

<!-- CONTACT -->
<section id="contact" class="sec" aria-label="Contact et accès">
  <div class="container">
    <div class="sec-hd">
      <span class="sec-lbl">Contact</span>
      <h2>Contact & Accès</h2>
    </div>
    <div class="contact-grid">

      <div class="cc">
        <h3><i class="bi bi-info-circle"></i>Infos & Horaires</h3>
        <div class="info-row">
          <div class="info-ico"><i class="bi bi-geo-alt"></i></div>
          <div><strong>Adresse</strong><p><a href="https://www.google.com/maps/search/?api=1&query=29+Av.+de+la+Marne+Tourcoing+59200" title="Voir sur Google Maps" target="_blank" rel="noopener" style="color:inherit">29 Av. de la Marne<br>59200 Tourcoing</a></p></div>
        </div>
        <div class="info-row">
          <div class="info-ico"><i class="bi bi-telephone"></i></div>
          <div><strong>Téléphone</strong><p><a href="tel:+33669452258" title="Appeler le cabinet" style="color:var(--bl);font-weight:600">06 69 45 22 58</a></p></div>
        </div>
        <div class="info-row">
          <div class="info-ico"><i class="bi bi-envelope"></i></div>
          <div><strong>Email</strong><p><a href="mailto:contact@osteopathe-yacineboughagha.fr" title="Envoyer un email au cabinet" class="icon-bl">contact@osteopathe-yacineboughagha.fr</a></p></div>
        </div>
        <div class="trsp">
          <div class="trsp-i"><span class="pill pm2">M2</span>Métro — Arrêt Carliers (8 min à pied)</div>
          <div class="trsp-i"><span class="pill ptm">T</span>Tramway — Arrêt Ma Campagne (2 min à pied)</div>
          <div class="trsp-i"><span class="pill ppk"><i class="bi bi-p-circle-fill"></i></span>Parking gratuit à proximité</div>
        </div>
        <p class="hr-label">Horaires d'ouverture</p>
        <meta itemprop="openingHours" content="Mo 08:00-20:00, Tu 08:00-20:00, We 08:00-20:00, Th 08:00-20:00, Fr 08:00-20:00, Sa 08:00-20:00, Su 08:00-20:00">

        <!-- Badge statut temps réel -->
        <!-- Badge statut temps réel -->
        <div style="display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:99px;font-size:.8rem;font-weight:600;margin-bottom:12px;background:#ecfdf5;color:#065f46;border:1px solid #bbf7d0"
             role="status" aria-live="polite" aria-label="Statut du cabinet : Ouvert maintenant · ferme à 20:00">
          <span style="width:7px;height:7px;border-radius:50%;flex-shrink:0;background:#10b981;animation:pulse 2s infinite" aria-hidden="true"></span>
          Ouvert maintenant · ferme à 20:00        </div>

        
        <table class="hr-table">
                    <tr class="">
            <td class="hr-td-day">
                            Lundi            </td>
            <td>
                              <span style="">
                  08:00 – 20:00                </span>
                          </td>
          </tr>
                    <tr class="">
            <td class="hr-td-day">
                            Mardi            </td>
            <td>
                              <span style="">
                  08:00 – 20:00                </span>
                          </td>
          </tr>
                    <tr class="">
            <td class="hr-td-day">
                            Mercredi            </td>
            <td>
                              <span style="">
                  08:00 – 20:00                </span>
                          </td>
          </tr>
                    <tr class="">
            <td class="hr-td-day">
                            Jeudi            </td>
            <td>
                              <span style="">
                  08:00 – 20:00                </span>
                          </td>
          </tr>
                    <tr class="">
            <td class="hr-td-day">
                            Vendredi            </td>
            <td>
                              <span style="">
                  08:00 – 20:00                </span>
                          </td>
          </tr>
                    <tr class="">
            <td class="hr-td-day">
                            Samedi            </td>
            <td>
                              <span style="">
                  08:00 – 20:00                </span>
                          </td>
          </tr>
                    <tr class="today">
            <td class="hr-td-day">
                              <span style="width:5px;height:5px;border-radius:50%;background:#10b981;flex-shrink:0;display:inline-block"></span>
                            Dimanche            </td>
            <td>
                              <span style="font-weight:700">
                  08:00 – 20:00                </span>
                          </td>
          </tr>
                  </table>

                <p class="hr-cities-label">Communes desservies</p>
        <div class="cities">
                    <a href="/" class="city-tag" title="Ostéopathe Tourcoing">Tourcoing</a>
                    <a href="/osteopathe-wattrelos" class="city-tag" title="Ostéopathe Wattrelos">Wattrelos</a>
                    <a href="/osteopathe-roubaix" class="city-tag" title="Ostéopathe Roubaix">Roubaix</a>
                    <a href="/osteopathe-mouvaux" class="city-tag" title="Ostéopathe Mouvaux">Mouvaux</a>
                    <a href="/osteopathe-roncq" class="city-tag" title="Ostéopathe Roncq">Roncq</a>
                    <a href="/osteopathe-marcq-en-baroeul" class="city-tag" title="Ostéopathe Marcq">Marcq</a>
                    <a href="/osteopathe-halluin" class="city-tag" title="Ostéopathe Halluin">Halluin</a>
                    <a href="/osteopathe-bondues" class="city-tag" title="Ostéopathe Bondues">Bondues</a>
                    <a href="/osteopathe-croix" class="city-tag" title="Ostéopathe Croix">Croix</a>
                    <a href="/osteopathe-lannoy" class="city-tag" title="Ostéopathe Lannoy">Lannoy</a>
                    <a href="/osteopathe-villeneuve-dascq" class="city-tag" title="Ostéopathe Villeneuve-d&#039;Ascq">Villeneuve-d&#039;Ascq</a>
                    <a href="/osteopathe-lille" class="city-tag" title="Ostéopathe Lille">Lille</a>
                  </div>
      </div>

      <div class="cc">
        <h3><i class="bi bi-envelope"></i>M'envoyer un message</h3>
                <form action="" method="post" id="contactForm">
          <input type="hidden" name="recaptcha_token" id="recaptcha_token">
          <div class="fg">
            <div class="ff"><label for="c_nom">Nom</label><input type="text" id="c_nom" name="nom" autocomplete="family-name" placeholder="Dupont" required></div>
            <div class="ff"><label for="c_prenom">Prénom</label><input type="text" id="c_prenom" name="prenom" autocomplete="given-name" placeholder="Jean" required></div>
          </div>
          <div class="ff"><label for="c_email">Email</label><input type="email" id="c_email" name="email" autocomplete="email" placeholder="jean@email.fr" required></div>
          <div class="ff"><label for="c_phone">Téléphone</label><input type="tel" id="c_phone" name="phone" autocomplete="tel" placeholder="06…"></div>
          <div class="ff"><label for="c_msg">Message</label><textarea id="c_msg" name="message" rows="5" placeholder="Votre message…" required></textarea></div>
          <button type="submit" id="submitBtnMsg" class="btn btn-p btn-w"><i class="bi bi-send"></i> Envoyer le message</button>
        </form>
      </div>

      <div class="cc">
        <div class="contact-map-header">
          <h3 class="map-h3"><i class="bi bi-geo-alt-fill"></i> Localisation</h3>
          <a href="https://www.google.com/maps/search/?api=1&query=Ostéopathe&query_place_id=ChIJC4uxEQApw0cRp4p2jPAqlkw" title="Voir sur Google Maps" target="_blank" rel="noopener" class="btn btn-o btn-sm"><i class="bi bi-box-arrow-up-right"></i> Maps</a>
        </div>
        <div class="map-ph" id="map-placeholder"><span class="map-ph-txt">Chargement de la carte…</span></div>
        <a href="https://www.google.com/maps/dir/?api=1&destination=29+Av.+de+la+Marne+Tourcoing+59200&destination_place_id=ChIJC4uxEQApw0cRp4p2jPAqlkw" title="Voir sur Google Maps" target="_blank" rel="noopener" class="btn btn-o btn-w" style="margin-top:14px">
          <i class="bi bi-signpost-split"></i> Calculer mon itinéraire
        </a>
      </div>
    </div>
  </div>
</section>

</main>

<!-- FOOTER -->
<footer id="footer" role="contentinfo">
  <div class="container">
    <div class="footer-inner">
      <div>
        <div class="footer-brand">Yacine Boughagha</div>
        <p class="footer-desc">Ostéopathe D.O. &amp; Infirmier D.É.<br>29 Av. de la Marne, 59200 Tourcoing<br>RPPS 10105134364</p>
                <div class="footer-socials">
                    <a href="https://www.instagram.com/yacineosteo"
             target="_blank"
             rel="noopener noreferrer"
             title="Yacineosteo — Yacine Boughagha"
             aria-label="Yacineosteo de Yacine Boughagha"
             class="footer-social-btn"
             style="background:#e1306c">
            <i class="bi-instagram" aria-hidden="true"></i>
          </a>
                    <a href="http://www.linkedin.com/in/yacine-boughagha-4355b3336"
             target="_blank"
             rel="noopener noreferrer"
             title="linkedin — Yacine Boughagha"
             aria-label="linkedin de Yacine Boughagha"
             class="footer-social-btn"
             style="background:#0A66C2">
            <i class="bi-linkedin" aria-hidden="true"></i>
          </a>
                  </div>
              </div>
      <div>
        <p class="ft">Navigation</p>
        <ul class="fl" role="list">
          <li><a href="#about" title="À propos de Yacine Boughagha, ostéopathe">À propos</a></li><li><a href="#specialites" title="Spécialités ostéopathiques à Tourcoing">Spécialités</a></li>
          <li><a href="#approche" title="Approche sport et infirmier">Sport & Infirmier</a></li><li><a href="#appointment" title="Prendre rendez-vous en ligne">Prendre RDV</a></li>
          <li><a href="#pricing" title="Tarifs des consultations">Tarifs</a></li><li><a href="#faq" title="Questions fréquentes sur l'ostéopathie">FAQ</a></li><li><a href="#contact" title="Contact et accès au cabinet">Contact</a></li>
        </ul>
        <p class="ft ft-mt">Pages spécialités</p>
        <ul class="fl" role="list">
          <li><a href="/osteopathie-sport-tourcoing" title="Ostéopathie du sport à Tourcoing">Ostéopathie du sport</a></li>
          <li><a href="/dry-needling-tourcoing" title="Dry Needling à Tourcoing">Dry Needling</a></li>
          <li><a href="/osteopathie-pediatrique-tourcoing" title="Ostéopathie pédiatrique à Tourcoing">Pédiatrie</a></li>
          <li><a href="/osteopathie-grossesse-tourcoing" title="Ostéopathie grossesse et post-partum">Grossesse</a></li>
        </ul>
      </div>
      <div>
        <p class="ft">Zones desservies</p>
        <div class="footer-cities-list">
                    <a href="/" class="footer-city" title="Ostéopathe Tourcoing" style="text-decoration:none;transition:color .2s">Tourcoing</a>
                    <a href="/osteopathe-wattrelos" class="footer-city" title="Ostéopathe Wattrelos" style="text-decoration:none;transition:color .2s">Wattrelos</a>
                    <a href="/osteopathe-roubaix" class="footer-city" title="Ostéopathe Roubaix" style="text-decoration:none;transition:color .2s">Roubaix</a>
                    <a href="/osteopathe-mouvaux" class="footer-city" title="Ostéopathe Mouvaux" style="text-decoration:none;transition:color .2s">Mouvaux</a>
                    <a href="/osteopathe-roncq" class="footer-city" title="Ostéopathe Roncq" style="text-decoration:none;transition:color .2s">Roncq</a>
                    <a href="/osteopathe-marcq-en-baroeul" class="footer-city" title="Ostéopathe Marcq-en-Barœul" style="text-decoration:none;transition:color .2s">Marcq-en-Barœul</a>
                    <a href="/osteopathe-halluin" class="footer-city" title="Ostéopathe Halluin" style="text-decoration:none;transition:color .2s">Halluin</a>
                    <a href="/osteopathe-bondues" class="footer-city" title="Ostéopathe Bondues" style="text-decoration:none;transition:color .2s">Bondues</a>
                    <a href="/osteopathe-croix" class="footer-city" title="Ostéopathe Croix" style="text-decoration:none;transition:color .2s">Croix</a>
                    <a href="/osteopathe-lannoy" class="footer-city" title="Ostéopathe Lannoy" style="text-decoration:none;transition:color .2s">Lannoy</a>
                    <a href="/osteopathe-villeneuve-dascq" class="footer-city" title="Ostéopathe Villeneuve-d&#039;Ascq" style="text-decoration:none;transition:color .2s">Villeneuve-d&#039;Ascq</a>
                    <a href="/osteopathe-lille" class="footer-city" title="Ostéopathe Lille" style="text-decoration:none;transition:color .2s">Lille</a>
                  </div>
      </div>
    </div>
    <div class="footer-bottom">
      <span>© 2026 Yacine Boughagha — Ostéopathe D.O. &amp; Infirmier D.É. à Tourcoing</span>
      <a href="/mentions-legales" title="Mentions légales du cabinet">Mentions légales</a>
    </div>
  </div>
</footer>

<!-- CTA MOBILE -->
<div class="mobile-cta" aria-label="Actions rapides">
  <a href="tel:+33669452258" title="Appeler le cabinet" class="cta-call"><i class="bi bi-telephone"></i> Appeler</a>
  <a href="#appointment" class="cta-rdv" title="Prendre rendez-vous en ligne"><i class="bi bi-calendar-check"></i> Prendre RDV</a>
</div>

<!-- JS -->
<script>
// NAV
(function(){
  var nav=document.getElementById('nav'),toggle=document.getElementById('navToggle'),links=document.getElementById('navLinks');
  window.addEventListener('scroll',function(){nav.classList.toggle('scrolled',window.scrollY>20)},{passive:true});
  toggle.addEventListener('click',function(){
    var o=links.classList.toggle('open');
    toggle.setAttribute('aria-expanded',o);
    toggle.querySelectorAll('span')[0].style.transform=o?'rotate(45deg) translate(5px,5px)':'';
    toggle.querySelectorAll('span')[1].style.opacity=o?'0':'1';
    toggle.querySelectorAll('span')[2].style.transform=o?'rotate(-45deg) translate(5px,-5px)':'';
  });
  links.querySelectorAll('a').forEach(function(a){a.addEventListener('click',function(){links.classList.remove('open');toggle.setAttribute('aria-expanded','false');toggle.querySelectorAll('span').forEach(function(s){s.style.transform='';s.style.opacity='1';});});});
})();

// SPEC TABS
(function(){
  var tabs=document.querySelectorAll('.spec-tab');
  var panels=document.querySelectorAll('.spec-panel');
  tabs.forEach(function(tab){
    tab.addEventListener('click',function(){
      var t=this.dataset.tab;
      tabs.forEach(function(b){b.classList.remove('active');b.setAttribute('aria-selected','false');});
      panels.forEach(function(p){p.classList.remove('active');});
      this.classList.add('active');this.setAttribute('aria-selected','true');
      var panel=document.getElementById('tab-'+t);
      if(panel) panel.classList.add('active');
    });
  });
})();

// FAQ
(function(){
  function init(){
    document.querySelectorAll('.faq-item').forEach(function(item){
      var btn=item.querySelector('.faq-btn'),inner=item.querySelector('.faq-ans > div');
      if(!btn||!inner) return;
      inner.style.overflow='hidden';inner.style.maxHeight='0';inner.style.transition='max-height .3s ease';
      btn.addEventListener('click',function(){
        var open=btn.getAttribute('aria-expanded')==='true';
        document.querySelectorAll('.faq-item').forEach(function(it){var b=it.querySelector('.faq-btn'),d=it.querySelector('.faq-ans > div');if(b&&d){b.setAttribute('aria-expanded','false');d.style.maxHeight='0';}});
        if(!open){btn.setAttribute('aria-expanded','true');inner.style.maxHeight=inner.scrollHeight+'px';}
      });
    });
  }
  document.readyState==='loading'?document.addEventListener('DOMContentLoaded',init):init();
})();

// FLATPICKR lazy
(function(){
  var appt=document.getElementById('appointment');
  if(!appt) return;
  new IntersectionObserver(function(entries,obs){
    if(!entries[0].isIntersecting) return;
    obs.disconnect();
    if(window._fpL) return; window._fpL=true;
    var c=document.createElement('link');c.rel='stylesheet';c.href='https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css';document.head.appendChild(c);
    var s=document.createElement('script');s.src='https://cdn.jsdelivr.net/npm/flatpickr';
    s.onload=function(){var l=document.createElement('script');l.src='https://cdn.jsdelivr.net/npm/flatpickr/dist/l10n/fr.js';l.onload=initB;document.head.appendChild(l);};
    document.head.appendChild(s);
  },{rootMargin:'200px'}).observe(appt);

  function initB(){
    var cal=document.getElementById('calendrier_pro'),sel=document.getElementById('time_rdv_select');
    if(!cal||!sel||typeof flatpickr==='undefined') return;
    var fd=[];
    var fp=flatpickr(cal,{locale:flatpickr.l10ns.fr,minDate:'today',defaultDate:'2026-04-27',dateFormat:'Y-m-d',disableMobile:true,disable:fd,onChange:function(d,str){upd(str);}});
    function upd(str){
      sel.innerHTML='<option disabled selected>Chargement…</option>';
      fetch('get_slots.php?date='+str).then(function(r){return r.json();}).then(function(data){
        sel.innerHTML='';
        if(!data.length){sel.innerHTML='<option disabled selected>Aucun créneau</option>';if(str===new Date().toISOString().split('T')[0]&&!fd.includes(str)){fd.push(str);fp.set('disable',fd);}}
        else{var f=document.createDocumentFragment();data.forEach(function(s){var o=document.createElement('option');o.value=s;o.text=s;f.appendChild(o);});sel.appendChild(f);}
      }).catch(function(){sel.innerHTML='<option disabled selected>Erreur réseau</option>';});
    }
  }
})();

// RDV submit spinner
document.getElementById('rdvForm').addEventListener('submit',function(){
  var btn=document.getElementById('rdvSubmit');btn.disabled=true;
  btn.innerHTML='<span style="display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;margin-right:8px"></span>Envoi en cours…';
});

// reCAPTCHA
var rL=false;
function loadRc(){if(rL)return;rL=true;var s=document.createElement('script');s.src='https://www.google.com/recaptcha/api.js?render=6LeDcYksAAAAAIjj8sjf32XhdYerQtUBL5OoDpmZ';s.async=true;document.head.appendChild(s);}
var cf=document.getElementById('contactForm');
if(cf){
  cf.addEventListener('mouseenter',loadRc,{once:true});cf.addEventListener('focusin',loadRc,{once:true});
  cf.addEventListener('submit',function(e){
    e.preventDefault();var form=this,btn=document.getElementById('submitBtnMsg');
    btn.disabled=true;btn.innerHTML='<span style="display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;margin-right:8px"></span>Vérification…';
    grecaptcha.ready(function(){
      grecaptcha.execute('6LeDcYksAAAAAIjj8sjf32XhdYerQtUBL5OoDpmZ',{action:'contact'}).then(function(token){
        document.getElementById('recaptcha_token').value=token;
        var h=document.createElement('input');h.type='hidden';h.name='send_message';h.value='1';form.appendChild(h);form.submit();
      }).catch(function(){btn.disabled=false;btn.innerHTML='<i class="bi bi-send"></i> Envoyer le message';alert('Erreur de vérification.');});
    });
  });
}

// Lazy map
(function(){
  var ph=document.getElementById('map-placeholder');if(!ph) return;
  new IntersectionObserver(function(entries,obs){
    if(!entries[0].isIntersecting) return;
    var f=document.createElement('iframe');
    f.style.cssText='border:0;width:100%;height:260px;border-radius:12px;display:block';
    f.src='https://www.google.com/maps/embed/v1/place?key=AIzaSyBt8pdDIFz0VvHs1EPc0cxq4SwNcJ2N53o&q=place_id:ChIJC4uxEQApw0cRp4p2jPAqlkw&language=fr';
    f.allowFullscreen=true;f.title='Carte Google Maps — Cabinet ostéopathie Tourcoing';f.referrerPolicy='no-referrer-when-downgrade';
    ph.innerHTML='';ph.appendChild(f);obs.disconnect();
  },{rootMargin:'200px'}).observe(ph);
})();

// Google Ads chargé dans le <head> via balise async
</script>
</body>
</html>