Book your class
Discover our range of PILAT3S classes and secure your spot today
Your Pilates, Anywhere, Anytime
Our studios
Filters
Country
function separarFiltros() {
const optionTexts = document.querySelectorAll('.brxe-filter-radio .brx-option-text:not([data-processed])');
optionTexts.forEach(span => {
const text = span.textContent.trim();
const match = text.match(/^(.+?)\s*\((\d+)\)$/);
if (match) {
const name = match[1];
const count = match[2];
span.textContent = name;
span.dataset.processed = "true";
const countSpan = document.createElement('span');
countSpan.className = 'country-count';
countSpan.textContent = count;
span.parentElement.appendChild(countSpan);
}
});
}
// Roda ao carregar a página
document.addEventListener("DOMContentLoaded", separarFiltros);
// Roda novamente sempre que o Bricks atualizar algo via AJAX
document.addEventListener('bricks/ajax/load', separarFiltros);
// Fallback universal: observa o DOM por mudanças
const observer = new MutationObserver(separarFiltros);
observer.observe(document.body, { childList: true, subtree: true });
PILAT3S De Pijp
Whether you're a beginner or an experienced practitioner, PILAT3S De Pijp has the perfect class for you. Choose our intro offer—3 classes for just 60€—or explore our flexible class packs and memberships to suit your schedule.
Book now
PILAT3S at TrainMore Slotervaart
Whether you're a beginner or a seasoned practitioner, we have a Reformer Pilates class tailored for you at PILAT3S at TrainMore Slotervaart.
Learn More
PILAT3S at TrainMore Piet Heinkade
Whether you're a beginner or a seasoned practitioner, we have a Reformer Pilates class tailored for you at PILAT3S at TrainMore Piet Heinkade.
Learn More
PILAT3S at Clubsportive
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S at Clubsportive.
Learn More
PILAT3S Middenweg
Whether you're a beginner or an experienced Reformer Pilates practitioner, PILAT3S Middenweg has the perfect class for you. Secure your spot with our exclusive Intro Offer: 3 classes for just €50. Or choose from credit packs and flexible memberships to fit your schedule.
Book now
PILAT3S at TrainMore Oosterdok
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S at TrainMore Oosterdok.
Learn More
PILAT3S at Edan Studios
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S at Edan Studios.
Learn More
PILAT3S Poblenou
A unique Pilates Reformer experience in Barcelona. Sign up now and start taking your routine to the next level. Whether you are a beginner or advanced, at PILAT3S Poblenou you can enjoy a session tailored to your needs.
Book now
PILAT3S Sagrada Familia
A unique Pilates Reformer experience in Barcelona. Sign up now and start taking your routine to the next level. Whether you are a beginner or advanced, at PILAT3S Sagrada Familia you can enjoy a session tailored to your needs.
Book now
PILAT3S Gracia
A unique Pilates Reformer experience in Barcelona. Sign up now and start taking your routine to the next level. Whether you are a beginner or advanced, at PILAT3S Gracia you can enjoy a session tailored to your needs.
Book now
PILAT3S at TRIB3 Esplugues
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S at TRIB3 Esplugues.
Learn More
PILAT3S Sant Cugat
A unique PILAT3S Reformer experience is coming to Mirasol. Sign up now and enjoy exclusive benefits. Whether you’re a beginner or advanced, at PILAT3S Sant Cugat you can enjoy a class tailored to your needs.
PILAT3S at Wednesbury Leisure Centre
Whether you're a beginner or a seasoned practitioner, we have a Reformer Pilates class tailored for you at PILAT3S at Wednesbury Leisure Centre by Kore Sandwell.
Learn More
PILAT3S at Holmes Place Cascais
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S at Holmes Place Cascais.
Learn More
PILAT3S Cherrywood
Whether you're a beginner or an experienced practitioner, PILAT3S Cherrywood has the perfect class for you. Choose our intro offer—5 classes for just €59, or explore our flexible packs and memberships.
Book now
PILAT3S at TrainMore Eindhoven Lichttoren
Whether you're a beginner or a seasoned practitioner, we have a Dynamic Reformer Pilates class tailored for you at PILAT3S at TrainMore Eindhoven Lichttoren.
PILAT3S at TRIB3 Sture
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S at TRIB3 Sture.
Learn More
PILAT3S Marterey
A new Dynamic Reformer Pilates experience is coming to Lausanne. Register now and explore the benefits of becoming a Founding Member.
Book now
PILAT3S Avenidas Novas
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S Avenidas Novas.
PILAT3S Palácio SottoMayor
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S Palácio SottoMayor.
Book now
PILAT3S at Gymbox Finsbury Park
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S at Gymbox Finsbury Park.
Learn More
PILAT3S at Fitness First London Bridge Cottons
Whether you're a beginner or a seasoned practitioner, we have a Reformer Pilates class tailored for you at PILAT3S at Fitness First London Bridge Cottons.
Learn More
PILAT3S at Gymbox Victoria
Whether you're a beginner or a seasoned practitioner, we have a Reformer Pilates class tailored for you at PILAT3S at Gymbox Victoria.
Learn More
PILAT3S at Gymbox Farringdon
Whether you're a beginner or a seasoned practitioner, we have a Reformer Pilates class tailored for you at PILAT3S at Gymbox Farringdon.
Learn More
PILAT3S Putney
A new Dynamic Reformer Pilates experience is coming to Putney, London. Whether you're a beginner or an experienced practitioner, PILAT3S Putney has the perfect <strong>Reformer Pilates group class</strong> and <strong>Personal Training</strong> sessions for you.<br>Register now and explore the benefits of becoming a <strong>Founding Member.<br>OPENS THIS JULY</strong>.
PILAT3S at Fitness First Highbury
Whether you're a beginner or a seasoned practitioner, we have a Reformer Pilates class tailored for you at PILAT3S at Fitness First Highbury.
PILAT3S at Fitness First Fenchurch Street
Whether you're a beginner or a seasoned practitioner, we have a Reformer Pilates class tailored for you at PILAT3S at Fitness First Fenchurch Street.
Learn More
PILAT3S Las Tablas
A unique Pilates Reformer experience in Madrid. Sign up now and start taking your routine to the next level. Whether you are a beginner or advanced, at PILAT3S Las Tablas you can enjoy a session tailored to your needs.
Book now
PILAT3S Cuzco
A unique Pilates Reformer experience in Madrid. Sign up now and start taking your routine to the next level. Whether you are a beginner or advanced, at PILAT3S Cuzco you can enjoy a session tailored to your needs.
Book now
PILAT3S at TRIB3 Palma
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S at TRIB3 Palma.
Learn More
PILAT3S at TRIB3 Costa del Este
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S at TRIB3 Costa del Este.
Learn More
PILAT3S Douro Foz
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S Douro Foz. Secure your spot today with our limited intro offer: 1 class for just €14,99.
Book now
PILAT3S at Holmes Place Vila Nova de Gaia
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S at Holmes Place Vila Nova de Gaia.
Learn More
PILAT3S at TrainMore Delftse Poort
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S at TrainMore Delftse Poort.
Learn More
PILAT3S Sheffield
Whether you're a beginner or an experienced practitioner, PILAT3S Sheffield has the perfect Reformer Pilates class for you. Choose our intro offer—3 classes for just £50, or become a Member to enjoy exclusive benefits.
Book now
PILAT3S at TrainMore Bilthoven Leyenseweg
Whether you're a beginner or a seasoned practitioner, we have a Dynamic Reformer Pilates class tailored for you at PILAT3S at TrainMore Bilthoven Leyenseweg.
Learn More
PILAT3S at TrainMore Muntgebouw
Whether you're a beginner or a seasoned practitioner, we have a Dynamic Reformer Pilates class tailored for you at PILAT3S at TrainMore Muntgebouw.
PILAT3S at TRIB3 Gran Via
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S at TRIB3 Gran Via.
Learn More
PILAT3S at Holmes Place Hütteldorf
Whether you're a beginner or a seasoned practitioner, we have a class tailored for you at PILAT3S at Holmes Place Hütteldorf.
Learn More
<div id="loadMoreContainer" style="text-align:center; margin-top: 40px;">
<button id="loadMoreBtn" class="custom-load-more" style="display:none;">
See more
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" style="margin-left:8px;">
<path d="M12 19L12 5" stroke="#566251" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M7 14L12 19" stroke="#566251" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M17 14L12 19" stroke="#566251" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</button>
</div>
<style>
/* === Botão personalizado === */
.custom-load-more {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
border: 1px solid var(--Green-Main, #566251);
color: var(--Green-Main, #566251);
font-family: "TT Norms Pro";
font-size: 14px;
font-style: normal;
font-weight: 500;
line-height: normal;
background: transparent;
border-radius: 50px;
padding: 10px 24px;
cursor: pointer;
transition: all 0.3s ease;
}
.custom-load-more:hover {
background: var(--Green-Main, #566251);
color: #fff;
}
.custom-load-more:hover svg path {
stroke: #fff;
}
.custom-load-more:hover svg {
transform: translateY(2px);
transition: transform 0.3s ease;
}
/* Fade suave */
.product-card {
opacity: 0;
transform: translateY(15px);
transition: opacity 0.4s ease, transform 0.4s ease;
}
.product-card[style*="block"] {
opacity: 1;
transform: translateY(0);
}
</style>
<script>
document.addEventListener("DOMContentLoaded", function() {
const ITEMS_PER_PAGE = 3;
const loadMoreBtn = document.getElementById("loadMoreBtn");
const containerSelector = ".alm-listing, #brxe-grndbb";
function initLoadMore() {
const container = document.querySelector(containerSelector);
if (!container) return;
const items = container.querySelectorAll(".product-card");
if (!items.length) {
loadMoreBtn.style.display = "none";
return;
}
// Detecta filtro ativo
const activeFilter = document.querySelector('.brx-option-active input');
const filterValue = activeFilter ? activeFilter.value : "";
// Ajuste aqui se o value do AU for outro
const behavesAsDefault = (filterValue === "" || filterValue === "all");
// Sempre mostra todos inicialmente
items.forEach(item => item.style.display = "block");
loadMoreBtn.style.display = "none";
// ✅ FILTRO APLICADO (exceto ALL)
if (!behavesAsDefault) {
return; // Mostra todos → sem botão
}
// ✅ SEM FILTRO ou AU → comportamento LOAD MORE
let visibleCount = ITEMS_PER_PAGE;
items.forEach((item, i) => {
item.style.display = i < ITEMS_PER_PAGE ? "block" : "none";
});
toggleButton();
loadMoreBtn.onclick = function() {
const nextVisible = visibleCount + ITEMS_PER_PAGE;
for (let i = visibleCount; i < nextVisible && i < items.length; i++) {
items[i].style.display = "block";
}
visibleCount += ITEMS_PER_PAGE;
toggleButton();
};
function toggleButton() {
const visibleItems = Array.from(items).filter(el => el.style.display !== "none");
loadMoreBtn.style.display =
items.length > visibleItems.length ? "inline-flex" : "none";
}
}
initLoadMore();
// Reaplica após AJAX
document.addEventListener("bricks/ajax/load", function() {
setTimeout(initLoadMore, 100);
});
// Observer (caso Bricks re-renderize)
const observer = new MutationObserver(() => {
if (document.querySelectorAll(".product-card").length) {
setTimeout(initLoadMore, 100);
}
});
observer.observe(document.body, { childList: true, subtree: true });
});
</script>
<script>
document.addEventListener("DOMContentLoaded", function() {
const filterList = document.querySelector('.brxe-filter-radio');
if (!filterList) return;
const select = document.createElement('select');
select.className = 'country-filter-dropdown';
const options = filterList.querySelectorAll('li label');
options.forEach((label) => {
const text = label.querySelector('.brx-option-text')?.textContent.trim();
const count = label.querySelector('.country-count')?.textContent.trim() || '';
const value = label.querySelector('input')?.value || '';
const option = document.createElement('option');
option.value = value;
option.textContent = count ? `${text} (${count})` : text;
if (label.classList.contains('brx-option-active')) {
option.selected = true;
}
select.appendChild(option);
});
filterList.parentNode.insertBefore(select, filterList);
select.addEventListener('change', function() {
const radios = filterList.querySelectorAll('input[type="radio"]');
radios.forEach(radio => {
if (radio.value === select.value) {
radio.click();
}
});
});
document.addEventListener("bricks/ajax/load", () => {
const activeLabel = filterList.querySelector('.brx-option-active input');
if (activeLabel) select.value = activeLabel.value;
});
});
</script>
<script>
document.addEventListener("DOMContentLoaded", function () {
// Função para resetar o dropdown sempre que limpar
function resetDropdownToAll() {
const select = document.querySelector(".country-filter-dropdown");
if (select) {
select.selectedIndex = 0;
}
}
// Observa mudanças no DOM após reset
const observer = new MutationObserver(() => {
// Quando o filtro for resetado, o texto ativo volta para ALL,
// então sincronizamos o dropdown
const activeInput = document.querySelector(".brx-option-active input");
if (activeInput && activeInput.value === "all") {
resetDropdownToAll();
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
// Captura clique no botão CLEAR (type=reset)
document.addEventListener("click", function (e) {
if (e.target.closest(".brxe-filter-submit[type='reset']")) {
// Pequeno delay para o browser resetar os radios
setTimeout(() => {
resetDropdownToAll();
}, 50);
}
});
});
</script>
<style>
.country-filter-dropdown {
display: none;
}
@media (max-width: 768px) {
.brxe-filter-radio {
display: none !important;
}
.country-filter-dropdown {
display: block;
width: 100%;
background-color: var(--bricks-color-fappzc);
border: 1px solid var(--bricks-color-dyuxyf);
border-radius: 24px;
padding: 4px 16px;
color: var(--bricks-color-ubyowm);
margin-top: 20px;
font-family: "TT Norms Pro", sans-serif;
font-size: 16px;
font-weight: 400;
appearance: none;
cursor: pointer;
/* Ícone seta preenchida e menor */
background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='%23566251' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1H1Z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 16px center;
background-size: 10px;
}
}
</style>






















