:root{ --navy: #182040; --navy-2: #232C55; --navy-3: #2E3868; --red: #D43432; --red-dark: #AE2926; --gold: #E8C838; --gold-ink: #A8842A; --paper: #EEF0F4; --panel: #FFFFFF; --line: #DADFE6; --ink: var(--navy); --ink-soft: #4C5670; --paper-soft: rgba(238,240,244,.72); --paper-mute: rgba(238,240,244,.5); --serif: Cambria, Georgia, "Iowan Old Style", serif; --sans: "Segoe UI", "Helvetica Neue", Arial, sans-serif; }*{ box-sizing:border-box; } html{ scroll-behavior:smooth; } body{ margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; overflow-x:hidden; } img{ max-width:100%; display:block; } a{ color:inherit; } .wrap{ max-width:1180px; margin:0 auto; padding:0 clamp(18px,4vw,32px); }.eyebrow{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:700; margin:0 0 12px; } .eyebrow.on-light{ color:var(--gold-ink); } .eyebrow.on-dark{ color:var(--gold); }h1,h2,h3{ font-family:var(--serif); font-weight:600; text-wrap:balance; margin:0; } h2{ font-size:clamp(1.7rem,3vw,2.5rem); line-height:1.15; } h3{ font-size:1.25rem; line-height:1.25; } p{ margin:0; line-height:1.65; }.btn{ display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; letter-spacing:.03em; text-decoration:none; padding:13px 24px; border-radius:3px; transition:transform .2s ease, box-shadow .2s ease, background .2s ease; } .btn:hover{ transform:translateY(-2px); } .btn-primary{ background:var(--gold); color:var(--navy); box-shadow:0 10px 22px -10px rgba(168,132,42,.5); } .btn-primary:hover{ background:#F2D65C; } .btn-call{ background:var(--red); color:#fff; box-shadow:0 10px 22px -10px rgba(212,52,50,.55); } .btn-call:hover{ background:var(--red-dark); } .btn-outline.dark{ border:1.5px solid var(--navy); color:var(--navy); } .btn-outline.dark:hover{ border-color:var(--red); color:var(--red); }section{ position:relative; } .band-light{ background:var(--paper); } .band-panel{ background:var(--panel); } .band-navy{ background:linear-gradient(155deg, var(--navy) 0%, var(--navy-2) 100%); color:var(--paper); } .pad{ padding:clamp(56px,9vw,110px) 0; }.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; } .reveal.is-visible{ opacity:1; transform:none; } @media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } .reveal{ opacity:1; transform:none; transition:none; } .btn:hover{ transform:none; } }/* ---------- hero ---------- */ .hero{ overflow:hidden; } .hero-grid{ padding-top:clamp(48px,8vw,90px); padding-bottom:clamp(48px,8vw,90px); display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,64px); align-items:center; position:relative; z-index:2; } .hero-inner{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; } .hero h1{ font-size:clamp(2rem,3.8vw,3rem); color:#fff; line-height:1.15; } .hero h1 .accent{ color:var(--gold); } .hero .doc-name{ font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#fff; margin-top:2px; } .hero .quote{ font-size:1.05rem; color:#fff; font-family:var(--serif); font-style:italic; line-height:1.4; max-width:50ch; } .hero .desc{ font-size:14px; color:var(--paper-soft); max-width:52ch; } .cred-chips{ display:flex; flex-wrap:wrap; gap:9px; margin:2px 0 4px; } .cred-chip{ font-size:11.5px; font-weight:700; padding:6px 13px; border-radius:999px; border:1px solid var(--gold); color:var(--gold); background:rgba(232,200,56,.08); } .hero-ctas{ display:flex; flex-wrap:wrap; gap:14px; margin-top:6px; } .hero-deco{ position:absolute; right:-8%; top:50%; transform:translateY(-50%); width:min(46vw,560px); aspect-ratio:1; opacity:.35; z-index:1; }.doc-photo{ position:relative; border-radius:14px; overflow:hidden; aspect-ratio:1; background:radial-gradient(130% 150% at 25% 10%, var(--navy-3), var(--navy) 60%, #0D1226 100%); box-shadow:0 30px 60px -25px rgba(6,10,24,.6); } .doc-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(160deg, transparent 40%, var(--gold) 160%); mix-blend-mode:soft-light; opacity:.4; pointer-events:none; z-index:2; } .doc-photo img{ position:relative; z-index:1; width:100%; height:100%; object-fit:contain; object-position:center bottom; padding:6%; } .doc-photo.duo{ display:flex; } .doc-photo.duo .duo-half{ position:relative; flex:1; overflow:hidden; } .doc-photo.duo .duo-half:first-child{ border-right:1px solid rgba(238,240,244,.18); } .doc-photo.duo .duo-half img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top center; padding:0; } @media (max-width:860px){ .hero-grid{ grid-template-columns:1fr; } }/* ---------- treatment cards ---------- */ .section-head{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:18px; margin-bottom:34px; } .section-head p{ max-width:38ch; font-size:14px; color:var(--ink-soft); }.treatment-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; } .treatment-card{ background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:28px 24px; display:flex; flex-direction:column; gap:12px; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; } .treatment-card:hover{ transform:translateY(-4px); box-shadow:0 16px 30px -18px rgba(24,32,64,.2); border-color:var(--gold); } .t-icon{ width:48px; height:48px; border-radius:50%; background:var(--navy); display:flex; align-items:center; justify-content:center; flex:none; } .t-icon svg{ width:24px; height:24px; stroke:var(--gold); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; } .treatment-card h3{ font-size:1.05rem; } .treatment-card p{ font-size:13.5px; color:var(--ink-soft); line-height:1.55; } @media (max-width:900px){ .treatment-grid{ grid-template-columns:repeat(2,1fr); } } @media (max-width:560px){ .treatment-grid{ grid-template-columns:1fr; } }/* ---------- duo doctors ---------- */ .duo-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; } .duo-card{ background:var(--navy-2); border-radius:10px; padding:30px 26px; display:flex; gap:18px; align-items:center; } .duo-photo-round{ width:84px; height:84px; border-radius:50%; overflow:hidden; flex:none; border:3px solid var(--gold); } .duo-photo-round img{ width:100%; height:100%; object-fit:cover; object-position:top center; } .duo-card h3{ color:#fff; font-size:1.05rem; margin-bottom:4px; } .duo-card p{ font-size:13px; color:var(--paper-soft); } @media (max-width:700px){ .duo-grid{ grid-template-columns:1fr; } }/* ---------- trust / reviews ---------- */ .trust-inner{ max-width:820px; margin:0 auto; text-align:center; } .trust-inner .eyebrow{ justify-content:center; display:flex; } .trust-inner p{ color:var(--ink-soft); font-size:15px; margin-top:16px; max-width:66ch; margin-left:auto; margin-right:auto; }/* ---------- contact ---------- */ .contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; } @media (max-width:800px){ .contact-grid{ grid-template-columns:1fr; gap:32px; } } .addr-block{ margin:18px 0 26px; } .addr-block .line{ font-size:15px; color:var(--ink-soft); margin-bottom:6px; } .addr-block .line.strong{ font-weight:700; color:var(--navy); font-size:16px; } .map-card{ position:relative; border-radius:10px; overflow:hidden; aspect-ratio:4/3; background:var(--navy); } .map-card svg{ position:absolute; inset:0; width:100%; height:100%; }

Physiotherapy and Osteopathy in Marbella

Manual therapy and dry needling to restore your mobility

Juan Miguel Fuentes · Aurora Moreno

"My goal is to support you with a personal and evidence-based approach, so that you can regain your quality of life."

Orthopedic manual therapy, musculoskeletal ultrasound, ultrasound-guided neuromodulation, and dry needling, in coordination with our traumatology section.

Orthopedic Manual Therapy Dry Needling Certified Functional Fitness Coach
Juan Miguel Fuentes and Aurora Moreno

What we treat

Physiotherapy and Osteopathy Services

A personalized approach that accelerates recovery and restores the patient's physical balance.

Musculoskeletal Recovery

Manual therapy, therapeutic exercises, and pain modulation techniques for musculoskeletal injuries and conditions.

Advanced Sports Rehabilitation

Biomechanical assessments and specific plans to help athletes safely return to peak performance.

Treatment of Chronic Pain

Manual therapies, pain management education, and relaxation techniques that improve quality of life.

Osteopathy

Holistic treatment that recognizes the interconnection between all parts of the body, seeking the root cause of the ailment.

Musculoskeletal ultrasound

Real-time imaging diagnostics to accurately locate the origin of the injury or pain.

Ultrasound-guided neuromodulation and dry needling

Advanced ultrasound-guided techniques to treat trigger points and precisely relieve pain.

Our team

Two specialists, one goal

A supportive and evidence-based team to guide you through your recovery.

Juan Miguel Fuentes

Juan Miguel Fuentes

Physiotherapist graduated from the University of Malaga, specializing in orthopedic manual therapy and dry needling.

Aurora Moreno

Aurora Moreno

Close and personalized approach, accompanying each patient in their musculoskeletal recovery.

Top rated physiotherapist in Marbella

Your trust is our greatest reward

From the first consultation to the follow-up of complex treatments such as musculoskeletal rehabilitation, our goal is to offer comprehensive and personalized care that responds to the specific needs of each patient.

Contact and location information

Visit us in Marbella

C/ Jacinto Benavente, 10, 29601 Marbella, Málaga

Easy parking with the Telpark App at Carrefour and at the Marbella Market parking lot.

if (!matchMedia('(prefers-reduced-motion: reduce)').matches && 'IntersectionObserver' in window){ var io = new IntersectionObserver(function(entries){ entries.forEach(function(entry){ if (entry.isIntersecting){ entry.target.classList.add('is-visible'); io.unobserve(entry.target); } }); }, { threshold:.12 }); document.querySelectorAll('.reveal').forEach(function(el){ io.observe(el); }); } else { document.querySelectorAll('.reveal').forEach(function(el){ el.classList.add('is-visible'); }); }