{"id":7575,"date":"2026-07-01T15:18:51","date_gmt":"2026-07-01T15:18:51","guid":{"rendered":"https:\/\/clubfreestylebjj.com\/index.php\/salesianos-paseo-infantiles\/"},"modified":"2026-08-04T23:06:42","modified_gmt":"2026-08-04T23:06:42","slug":"salesianos-paseo-infantiles","status":"publish","type":"page","link":"https:\/\/clubfreestylebjj.com\/index.php\/salesianos-paseo-infantiles\/","title":{"rendered":"Salesianos Paseo &#8211; clases infantiles y extraescolares"},"content":{"rendered":"<!-- FS_VISUAL_REPAIR_GLOBAL_V1_START -->\n<style id=\"fs-visual-repair-global-v1\">\n\/* Reparaci\u00f3n visual global v1.2 \u2014 2026-08-05\n   Objetivo: normalizar h\u00e9roes, t\u00edtulos, etiquetas, cards e im\u00e1genes sin tocar contenido, formularios ni enlaces. *\/\nbody.page .entry-hero.page-hero-section,\nbody.page .entry-title{display:none!important;}\n\n.fsbjj,.fs-page{box-sizing:border-box;}\n.fsbjj *,.fs-page *{box-sizing:border-box;}\n\n.fsbjj .hero > :not(style),\n.fsbjj .section > :not(style),\n.fsbjj .fs-page-hero > :not(style),\n.fsbjj .fs-section > :not(style),\n.fs-page > :not(style){\n  max-width:min(1230px, calc(100vw - 40px));\n  margin-left:auto!important;\n  margin-right:auto!important;\n}\n\n.fsbjj section.hero,\n.fsbjj .hero,\n.fsbjj .fs-page-hero,\n.fsbjj .fs-schedule-hero{\n  min-height:0!important;\n  height:auto!important;\n  padding-top:clamp(44px, 6vw, 84px)!important;\n  padding-bottom:clamp(44px, 6vw, 84px)!important;\n  overflow:hidden;\n}\n\n.fsbjj .hero img,\n.fsbjj .fs-page-hero img,\n.fsbjj .fs-schedule-hero img,\n.fsbjj section.hero img{\n  width:100%!important;\n  max-height:min(48vh, 480px)!important;\n  object-fit:cover!important;\n  display:block;\n}\n\n.fsbjj img[src*=\"club-free-style-bjj-logo-dark-nav-transparent-1000\"],\n.fs-page img[src*=\"club-free-style-bjj-logo-dark-nav-transparent-1000\"]{\n  max-width:min(42vw, 420px)!important;\n  max-height:min(42vh, 420px)!important;\n  width:auto!important;\n  height:auto!important;\n  object-fit:contain!important;\n  margin-left:auto!important;\n  margin-right:auto!important;\n}\n\n.fsbjj .hero h1,\n.fsbjj .fs-page-hero h1,\n.fsbjj .fs-schedule-hero h1,\n.fsbjj main h1,\n.fs-page h1{\n  max-width:980px!important;\n  margin-left:0!important;\n  margin-right:auto!important;\n  text-align:left!important;\n  font-size:clamp(34px, 4.6vw, 58px)!important;\n  line-height:.98!important;\n  letter-spacing:-.045em!important;\n}\n\n.fsbjj h2,.fs-page h2{\n  max-width:900px;\n  font-size:clamp(28px, 3.8vw, 46px)!important;\n  line-height:1.04!important;\n  letter-spacing:-.04em!important;\n}\n\n.fsbjj .eyebrow,\n.fsbjj .fs-eyebrow,\n.fsbjj .tag,\n.fsbjj .fs-tag,\n.fsbjj [class*=\"eyebrow\"],\n.fsbjj [class*=\"tag\"],\n.fsbjj [class*=\"badge\"],\n.fsbjj [class*=\"pill\"]{\n  max-width:max-content;\n  margin-left:0!important;\n  text-align:left!important;\n}\n\n.fsbjj .section,\n.fsbjj .fs-section{\n  padding-top:clamp(48px, 6vw, 86px)!important;\n  padding-bottom:clamp(48px, 6vw, 86px)!important;\n}\n\n.fsbjj .card,\n.fsbjj .fs-panel,\n.fsbjj .fs-tile,\n.fsbjj article[class*=\"card\"]{\n  min-height:0!important;\n  height:auto!important;\n  padding:clamp(24px, 3vw, 36px)!important;\n}\n\n.fsbjj .card h2,\n.fsbjj .card h3,\n.fsbjj .fs-panel h2,\n.fsbjj .fs-panel h3{\n  font-size:clamp(22px, 2.2vw, 32px)!important;\n  line-height:1.08!important;\n  letter-spacing:-.035em!important;\n}\n\n.fsbjj .hero + .section{padding-top:clamp(44px, 5vw, 72px)!important;}\n\n@media (max-width:699px){\n  .fsbjj .hero > :not(style),\n  .fsbjj .section > :not(style),\n  .fsbjj .fs-page-hero > :not(style),\n  .fsbjj .fs-section > :not(style),\n  .fs-page > :not(style){max-width:calc(100vw - 28px)!important;}\n  .fsbjj section.hero,\n  .fsbjj .hero,\n  .fsbjj .fs-page-hero,\n  .fsbjj .fs-schedule-hero{padding-top:38px!important;padding-bottom:42px!important;}\n  .fsbjj .hero img,\n  .fsbjj .fs-page-hero img,\n  .fsbjj .fs-schedule-hero img,\n  .fsbjj section.hero img{max-height:300px!important;}\n  .fsbjj img[src*=\"club-free-style-bjj-logo-dark-nav-transparent-1000\"],\n  .fs-page img[src*=\"club-free-style-bjj-logo-dark-nav-transparent-1000\"]{max-width:240px!important;max-height:240px!important;}\n  body.home .fsbjj .hero,\n  body.home .fsbjj .fs-page-hero,\n  body.page-id-6970 .fsbjj .hero,\n  body.page-id-6970 .fsbjj .fs-page-hero{padding-top:28px!important;padding-bottom:32px!important;}\n  .fsbjj .hero h1,\n  .fsbjj .fs-page-hero h1,\n  .fsbjj .fs-schedule-hero h1,\n  .fsbjj main h1,\n  .fs-page h1{font-size:clamp(30px, 9vw, 38px)!important;line-height:1.02!important;}\n  .fsbjj h2,.fs-page h2{font-size:clamp(25px, 7vw, 34px)!important;}\n  .fsbjj .section,.fsbjj .fs-section{padding-top:42px!important;padding-bottom:42px!important;}\n}\n\nbody.page-id-6970 .fsbjj .hero h1,\nbody.page-id-6970 .fsbjj .fs-page-hero h1{\n  max-width:min(720px, calc(100vw - 40px))!important;\n}\n@media (max-width:699px){\n  body.page-id-6970 .fsbjj .hero,\n  body.page-id-6970 .fsbjj .fs-page-hero{\n    padding-top:22px!important;\n    padding-bottom:24px!important;\n  }\n  body.page-id-6970 .fsbjj .hero h1,\n  body.page-id-6970 .fsbjj .fs-page-hero h1{\n    font-size:clamp(28px, 8.2vw, 34px)!important;\n    line-height:1.02!important;\n  }\n  body.page-id-6970 .fsbjj .hero img,\n  body.page-id-6970 .fsbjj .fs-page-hero img{\n    max-height:240px!important;\n  }\n}\n\nbody.page-id-7670 .fs-page{\n  max-width:min(980px, calc(100vw - 40px))!important;\n  margin:0 auto!important;\n  padding:clamp(32px, 5vw, 56px) 0!important;\n}\nbody.page-id-7670 .fs-legal-card{padding:clamp(24px, 4vw, 42px)!important;}\nbody.page-id-7670 .fs-page h1,\nbody.page-id-7670 .fs-legal-card h1{font-size:clamp(32px, 4vw, 44px)!important;line-height:1.05!important;letter-spacing:-.035em!important;}\nbody.page-id-7670 .fs-page h2,\nbody.page-id-7670 .fs-legal-card h2{font-size:clamp(22px, 2.4vw, 28px)!important;line-height:1.18!important;letter-spacing:-.02em!important;margin-top:1.6em!important;}\nbody.page-id-7670 .fs-page p,\nbody.page-id-7670 .fs-page li{font-size:16px!important;line-height:1.65!important;}\n<\/style>\n<!-- FS_VISUAL_REPAIR_GLOBAL_V1_END -->\n<!-- FS_HEADER_REPAIR_GLOBAL_V1_START -->\n<style id=\"fs-header-repair-global-v1\">\n\/* Club Free Style BJJ \u2014 ajuste global cabecera fija, 2026-08-05 *\/\nhtml{scroll-padding-top:92px!important;}\nbody .fs-header-v3{min-height:0!important;height:auto!important;max-height:86px!important;overflow:visible!important;}\nbody .fs-header-v3-inner{min-height:0!important;height:70px!important;padding:8px 20px!important;display:flex!important;align-items:center!important;}\nbody .fs-header-v3-brand{height:54px!important;min-height:0!important;display:flex!important;align-items:center!important;gap:10px!important;}\nbody .fs-header-v3-brand img,\nbody .fs-header-v3 .fs-header-v3-brand img[src*=\"club-free-style-bjj-logo-dark-nav-transparent-1000\"]{width:44px!important;height:44px!important;max-width:44px!important;max-height:44px!important;min-width:44px!important;min-height:44px!important;object-fit:contain!important;flex:0 0 44px!important;}\nbody .fs-header-v3-brand span{font-size:16px!important;line-height:1.15!important;white-space:nowrap!important;}\nbody .fs-header-v3-menu{min-height:0!important;height:auto!important;display:block!important;align-self:center!important;}\nbody .fs-header-v3-menu summary{min-height:0!important;height:auto!important;padding:10px 18px!important;line-height:1!important;display:flex!important;align-items:center!important;gap:8px!important;}\nbody .fs-header-v3-panel{top:calc(100% + 8px)!important;max-height:calc(100vh - 105px)!important;overflow:auto!important;}\n@media (max-width:720px){\n  html{scroll-padding-top:76px!important;}\n  body .fs-header-v3{max-height:72px!important;}\n  body .fs-header-v3-inner{height:62px!important;padding:7px 14px!important;}\n  body .fs-header-v3-brand{height:48px!important;gap:8px!important;}\n  body .fs-header-v3-brand img,\n  body .fs-header-v3 .fs-header-v3-brand img[src*=\"club-free-style-bjj-logo-dark-nav-transparent-1000\"]{width:38px!important;height:38px!important;max-width:38px!important;max-height:38px!important;min-width:38px!important;min-height:38px!important;}\n  body .fs-header-v3-brand span{font-size:14px!important;max-width:48vw!important;overflow:hidden!important;text-overflow:ellipsis!important;}\n  body .fs-header-v3-menu summary{padding:9px 13px!important;font-size:14px!important;}\n  body .fs-header-v3-panel{right:0!important;left:auto!important;top:calc(100% + 6px)!important;width:min(88vw,320px)!important;max-height:calc(100vh - 86px)!important;}\n}\n<\/style>\n<!-- FS_HEADER_REPAIR_GLOBAL_V1_END -->\n<!-- FS_LAYOUT_REPAIR_GLOBAL_V1_START -->\n<style id=\"fs-layout-repair-global-v1\">\n\/* Club Free Style BJJ \u2014 remaquetaci\u00f3n visual global v1.2, 2026-08-05 *\/\n:root{--fs-ink:#121212;--fs-muted:#5f6368;--fs-paper:#f6f3ee;--fs-card:#ffffff;--fs-line:rgba(18,18,18,.10);--fs-gold:#c9a227;--fs-radius:22px;--fs-shadow:0 18px 50px rgba(0,0,0,.10);} \nbody{background:var(--fs-paper)!important;color:var(--fs-ink)!important;}\nbody .fsbjj{background:var(--fs-paper)!important;}\nbody .fsbjj > .fs-header-v3-spacer + style + .fs-header-v3-spacer{display:none!important;height:0!important;min-height:0!important;margin:0!important;padding:0!important;}\nbody .fsbjj > .fs-header-v3-spacer{height:78px!important;}\nbody .fs-header-v3{box-shadow:0 8px 24px rgba(0,0,0,.18)!important;}\nbody .hero,body .fs-page-hero,body .fs-schedule-hero{position:relative!important;min-height:0!important;height:auto!important;margin:0!important;padding:42px 0 46px!important;background:#0b0b0b!important;overflow:hidden!important;}\nbody .hero .wrap,body .fs-page-hero .fs-container,body .fs-schedule-hero .fs-container{position:relative!important;z-index:2!important;}\nbody .hero .wrap.split{display:grid!important;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr)!important;gap:42px!important;align-items:center!important;}\nbody .hero .wrap.split > .photo{margin:0!important;width:100%!important;}\nbody .hero::before,body .fs-page-hero::before,body .fs-schedule-hero::before{content:\"\"!important;position:absolute!important;inset:0!important;background:radial-gradient(circle at 15% 12%,rgba(201,162,39,.20),transparent 32%),linear-gradient(135deg,rgba(0,0,0,.84),rgba(0,0,0,.57))!important;z-index:1!important;pointer-events:none!important;}\nbody .hero img.bg,body .hero > img,body .hero .photo img,body .fs-page-hero img,body .fs-schedule-hero img{display:block!important;width:100%!important;height:clamp(240px,24vw,330px)!important;max-height:330px!important;object-fit:cover!important;object-position:center!important;border-radius:26px!important;margin:0!important;box-shadow:var(--fs-shadow)!important;filter:saturate(1.04) contrast(1.03)!important;}\nbody .hero:not(:has(.wrap.split)) img.bg,body .hero:not(:has(.wrap.split)) > img,body .fs-page-hero img,body .fs-schedule-hero img{width:min(100%,1040px)!important;margin:24px auto 0!important;}\nbody .hero h1,body .fs-page-hero h1,body .fs-schedule-hero h1{max-width:900px!important;font-size:clamp(38px,3.8vw,56px)!important;line-height:.99!important;letter-spacing:-.045em!important;text-wrap:balance!important;margin:0!important;text-shadow:0 3px 18px rgba(0,0,0,.35)!important;}\nbody .hero p,body .fs-page-hero p,body .fs-schedule-hero p{max-width:720px!important;font-size:clamp(17px,1.15vw,19px)!important;line-height:1.52!important;color:rgba(255,255,255,.84)!important;margin-top:16px!important;}\nbody .eyebrow,body .tag,body .pill,body .fs-eyebrow,body .fs-tag,body .fs-pill{display:inline-flex!important;align-items:center!important;width:max-content!important;max-width:100%!important;padding:7px 12px!important;border:1px solid rgba(201,162,39,.45)!important;border-radius:999px!important;background:rgba(201,162,39,.10)!important;color:var(--fs-gold)!important;font-size:11px!important;line-height:1!important;font-weight:800!important;letter-spacing:.08em!important;text-transform:uppercase!important;}\nbody .section,body .sec,body .fs-section{background:transparent!important;padding:52px 0!important;margin:0!important;}\nbody .section:nth-of-type(even),body .sec:nth-of-type(even),body .fs-section.fs-band{background:rgba(255,255,255,.52)!important;}\nbody .wrap,body .fs-container{width:min(1180px,calc(100% - 44px))!important;margin-left:auto!important;margin-right:auto!important;}\nbody h2{font-size:clamp(30px,3vw,46px)!important;line-height:1.02!important;letter-spacing:-.04em!important;text-wrap:balance!important;color:var(--fs-ink)!important;margin-bottom:22px!important;}\nbody p{color:#333!important;}\nbody .card,body .fs-card,body .fs-panel{background:var(--fs-card)!important;border:1px solid var(--fs-line)!important;border-radius:var(--fs-radius)!important;box-shadow:0 10px 30px rgba(0,0,0,.055)!important;padding:28px!important;overflow:hidden!important;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease!important;}\nbody a.card:hover,body .fs-card:hover{transform:translateY(-3px)!important;box-shadow:0 18px 44px rgba(0,0,0,.12)!important;border-color:rgba(201,162,39,.35)!important;}\nbody .card img,body .fs-card img,body .fs-panel img{width:100%!important;height:clamp(170px,16vw,230px)!important;object-fit:cover!important;object-position:center!important;border-radius:18px!important;margin:0 0 18px!important;filter:saturate(1.03) contrast(1.02)!important;}\nbody .card h2,body .card h3,body .fs-card h2,body .fs-card h3,body .fs-panel h2,body .fs-panel h3{margin-top:14px!important;margin-bottom:12px!important;letter-spacing:-.035em!important;}\nbody .card p,body .fs-card p,body .fs-panel p{line-height:1.62!important;color:#444!important;}\nbody .btn,body .fs-btn,body a[class*=\"button\"],body .wp-block-button__link{border-radius:999px!important;padding:13px 20px!important;font-weight:800!important;letter-spacing:.02em!important;box-shadow:0 8px 22px rgba(0,0,0,.12)!important;}\n@media (max-width:900px){body .hero .wrap.split{grid-template-columns:1fr!important;gap:22px!important;}}\n@media (max-width:720px){\n  body .fsbjj > .fs-header-v3-spacer{height:70px!important;}\n  body .hero,body .fs-page-hero,body .fs-schedule-hero{padding:24px 0 30px!important;}\n  body .hero img.bg,body .hero > img,body .hero .photo img,body .fs-page-hero img,body .fs-schedule-hero img{height:clamp(170px,48vw,230px)!important;max-height:230px!important;border-radius:20px!important;margin-top:18px!important;}\n  body .hero .photo img{margin-top:0!important;}\n  body .hero h1,body .fs-page-hero h1,body .fs-schedule-hero h1{font-size:clamp(30px,8.2vw,38px)!important;line-height:1.02!important;letter-spacing:-.04em!important;}\n  body .hero p,body .fs-page-hero p,body .fs-schedule-hero p{font-size:16px!important;line-height:1.48!important;}\n  body .section,body .sec,body .fs-section{padding:34px 0!important;}\n  body .wrap,body .fs-container{width:min(100% - 28px,1180px)!important;}\n  body h2{font-size:clamp(26px,7vw,33px)!important;line-height:1.06!important;}\n  body .card,body .fs-card,body .fs-panel{padding:20px!important;border-radius:20px!important;}\n  body .card img,body .fs-card img,body .fs-panel img{height:178px!important;border-radius:16px!important;}\n}\n<\/style>\n<!-- FS_LAYOUT_REPAIR_GLOBAL_V1_END -->\n<!-- FS_HERO_COMPACT_GLOBAL_V1_START -->\n<style id=\"fs-hero-compact-global-v1\">\n\/* Club Free Style BJJ \u2014 compactaci\u00f3n de h\u00e9roes con imagen de fondo, 2026-08-05 *\/\nbody .hero{isolation:isolate!important;}\nbody .hero > img.bg{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-height:none!important;margin:0!important;border-radius:0!important;object-fit:cover!important;object-position:center!important;box-shadow:none!important;z-index:0!important;opacity:.78!important;}\nbody .hero > .veil{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;margin:0!important;z-index:1!important;background:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.45),rgba(0,0,0,.62))!important;}\nbody .hero .hw.in{position:relative!important;z-index:2!important;width:min(760px,calc(100% - 44px))!important;margin-left:auto!important;margin-right:auto!important;padding:54px 0 58px!important;min-height:0!important;}\nbody.home .hero .hw.in{width:min(820px,calc(100% - 44px))!important;}\nbody .hero .hw.in h1{font-size:clamp(40px,4vw,58px)!important;line-height:.98!important;}\nbody .hero .hw.in .cta{flex-wrap:wrap!important;gap:14px!important;margin:22px 0 14px!important;}\nbody .hero .hw.in .tr{flex-wrap:wrap!important;gap:10px 16px!important;}\n@media (max-width:720px){\n body .hero .hw.in{width:min(100% - 28px,760px)!important;padding:34px 0 38px!important;}\n body.home .hero .hw.in{width:min(100% - 28px,820px)!important;}\n body .hero .hw.in h1{font-size:clamp(31px,8.5vw,39px)!important;}\n body .hero .hw.in .cta{gap:10px!important;}\n body .hero .hw.in .cta .btn{width:100%!important;justify-content:center!important;}\n}\n<\/style>\n<!-- FS_HERO_COMPACT_GLOBAL_V1_END -->\n<div class=\"fsbjj\">\n<style>\n  .entry-title,.entry-header,.site-header,.site-footer,.post-navigation,.comments-area{display:none!important}\n  .site,.site-content,.site-container,.content-container,.content-area,.site-main,.entry,.entry-content-wrap,.entry-content,.wp-site-blocks,.wp-site-blocks main,#primary,#main{margin:0!important;padding:0!important;max-width:none!important}\n  .content-style-boxed .entry-content-wrap,.content-style-unboxed .entry-content-wrap,.site-main>article{margin:0!important;padding:0!important;box-shadow:none!important;border-radius:0!important;background:transparent!important}\n  .entry-content>*{max-width:none!important}\n  .fsbjj{--black:#070707;--ink:#111111;--paper:#f4f0e8;--cream:#fffaf1;--muted:#6f675d;--gold:#c57922;--blue:#0757b8;--red:#d71920;--line:rgba(17,17,17,.16);font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--paper);margin-left:calc(50% - 50vw);width:100vw;overflow:hidden}\n  .fsbjj *{box-sizing:border-box;letter-spacing:0}\n  .fsbjj a{color:inherit}\n  .fs-wrap{width:min(1180px,calc(100% - 32px));margin:0 auto}\n  .fs-nav{position:sticky;top:0;z-index:40;background:rgba(7,7,7,.97);color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}\n  .fs-nav .fs-wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:112px}\n  .fs-brand{display:flex;align-items:center;gap:16px;text-decoration:none;min-width:360px}\n  .fs-brand img{width:106px;height:106px;object-fit:contain;flex:0 0 auto}\n  .fs-brand strong{display:block;font-size:18px;line-height:1;text-transform:uppercase;font-weight:1000}\n  .fs-brand span span{display:block;color:#d4cabe;font-size:14px;margin-top:6px}\n  .fs-links{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:4px}\n  .fs-links a{font-size:12px;font-weight:950;text-transform:uppercase;text-decoration:none;color:#f8f0e6;padding:10px 9px;border-radius:4px}\n  .fs-links a:hover{background:rgba(255,255,255,.12)}\n  .fs-hero{position:relative;min-height:680px;background:#050505;color:#fff;display:grid;align-items:start}\n  .fs-hero:before{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.92),rgba(0,0,0,.56),rgba(0,0,0,.12));z-index:1}\n  .fs-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}\n  .fs-hero .fs-wrap{position:relative;z-index:2;padding:74px 0 78px}\n  .fs-kicker{display:flex;align-items:center;gap:14px;color:#f0d9bd;font-size:13px;font-weight:1000;text-transform:uppercase;margin-bottom:24px}\n  .fs-kicker:before{content:\"\";width:58px;height:4px;background:var(--gold);display:block}\n  h1,h2,h3{margin:0;line-height:.96}\n  .fsbjj h1{font-size:88px;line-height:.92;margin:0!important;text-transform:uppercase;font-weight:1000;max-width:920px;color:#fff}\n  .fsbjj h2{font-size:56px;line-height:.98;margin:0!important;text-transform:uppercase;font-weight:1000}\n  .fsbjj h3{font-size:24px;font-weight:1000;line-height:1.08;margin:0 0 16px!important}\n  p{font-size:18px;line-height:1.62;color:var(--muted);margin:0}\n  .fs-lead{max-width:760px;color:#efe7da;font-size:25px;line-height:1.42;margin-top:28px}\n  .fs-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}\n  .fs-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:1px solid var(--black);background:var(--black);color:#fff!important;text-decoration:none!important;font-size:13px;font-weight:1000;text-transform:uppercase;border-radius:4px}\n  .fs-btn.fs-gold{background:var(--gold);border-color:var(--gold);color:#090909!important}\n  .fs-btn.fs-light{background:#fff;border-color:#fff;color:#111!important}\n  .fs-btn.fs-ghost{background:transparent;color:#111!important}\n  .fs-hero .fs-btn.fs-ghost{color:#fff!important;border-color:rgba(255,255,255,.72)}\n  .fs-band .fs-btn.fs-ghost{color:#fff!important;border-color:rgba(255,255,255,.72)}\n  .fs-section{padding:86px 0}\n  .fs-band{background:var(--black);color:#fff}\n  .fs-band p{color:#d8cec0}\n  .fs-split{display:grid;grid-template-columns:1.06fr .94fr;gap:64px;align-items:center}\n  .fs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}\n  .fs-grid.fs-two{grid-template-columns:repeat(2,minmax(0,1fr))}\n  .fs-grid.fs-four{grid-template-columns:repeat(4,minmax(0,1fr))}\n  .fs-panel{background:#fff;border:1px solid var(--line);border-top:6px solid var(--gold);padding:28px;border-radius:6px;min-height:100%;display:flex;flex-direction:column;align-items:flex-start}\n  .fs-panel h3{width:100%}\n  .fs-panel p{font-size:16px;margin-top:12px;color:var(--muted)}\n  .fs-band .fs-panel p{color:var(--muted)}\n  .fs-panel .fs-logo{width:100%;height:92px;max-width:260px;object-fit:contain;object-position:left center;margin-bottom:24px}\n  .fs-card-link{margin-top:auto;padding-top:24px;width:100%}\n  .fs-card-link .fs-btn{min-width:235px}\n  .fs-panel .fs-actions{margin-top:auto;padding-top:24px;width:100%}\n  .fs-panel .fs-actions .fs-btn{min-width:200px}\n  .fs-path-grid .fs-panel{min-height:320px}\n  .fs-price{display:block;font-size:42px;line-height:1;font-weight:1000;color:var(--ink);margin-bottom:14px}\n  .fs-tag{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;background:var(--paper);border:1px solid var(--line);border-radius:4px;color:#332d26;font-size:12px;font-weight:1000;text-transform:uppercase;margin-bottom:16px}\n  .fs-partner-strip{background:#fff;border-bottom:1px solid var(--line);padding:26px 0}\n  .fs-partner-strip .fs-wrap{display:flex;align-items:center;justify-content:center;gap:54px;flex-wrap:wrap}\n  .fs-partner-strip span{font-size:12px;font-weight:1000;text-transform:uppercase;color:var(--muted);width:100%;text-align:center}\n  .fs-partner-strip a{display:inline-flex;align-items:center;justify-content:center;min-width:260px;min-height:92px;padding:10px 18px;border:1px solid var(--line);border-radius:6px;background:#fff;text-decoration:none}\n  .fs-partner-strip img{max-width:250px;max-height:76px;object-fit:contain}\n  .fs-media{width:100%;background:#111;border-radius:6px;overflow:hidden}\n  .fs-media img{display:block;width:100%;height:100%;object-fit:cover}\n  .fs-media.fs-wide{aspect-ratio:16\/10}\n  .fs-media.fs-tall{aspect-ratio:4\/5}\n  .fs-media.fs-banner{aspect-ratio:20\/9}\n  .fs-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.16);border-left:1px solid rgba(255,255,255,.16);margin-top:44px}\n  .fs-stat{padding:24px;border-right:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16)}\n  .fs-stat strong{display:block;font-size:28px;color:#fff;line-height:1.1}\n  .fs-stat span{display:block;color:#d0c6b8;font-size:14px;margin-top:8px;line-height:1.45}\n  .fs-page-hero{background:#0a0a0a;color:#fff;padding:98px 0 72px}\n  .fs-page-hero h1{font-size:76px}\n  .fs-page-hero p{color:#ddd1c0;max-width:820px;margin-top:24px;font-size:22px}\n  .fs-breadcrumb{font-size:13px;font-weight:1000;text-transform:uppercase;color:#d29a5d;margin-bottom:20px}\n  .fs-note{border-left:6px solid var(--blue);background:#fff;padding:22px 24px;margin-top:26px;color:var(--muted);font-size:16px;line-height:1.55}\n  .fs-list{display:grid;gap:12px;margin-top:24px}\n  .fs-list div{background:#fff;border-left:5px solid var(--gold);padding:18px 20px;color:#332d26;font-size:16px;line-height:1.55}\n  .fs-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:30px}\n  .fs-step{background:#fff;padding:24px}\n  .fs-step strong{display:block;font-size:18px}\n  .fs-step span{display:block;color:var(--muted);font-size:15px;line-height:1.5;margin-top:8px}\n  .fs-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:26px}\n  .fs-form label{display:grid;gap:7px;font-size:13px;font-weight:950;text-transform:uppercase;color:#342d26}\n  .fs-form input,.fs-form select,.fs-form textarea{width:100%;border:1px solid var(--line);background:#fff;padding:13px 12px;border-radius:4px;font:inherit;color:#111}\n  .fs-form textarea,.fs-form .fs-full{grid-column:1\/-1}\n  .fs-form .fs-check{display:flex;gap:10px;align-items:flex-start;text-transform:none;font-weight:650;color:var(--muted);line-height:1.45}\n  .fs-form .fs-check input{width:auto;margin-top:5px}\n  .fs-form button{grid-column:1\/-1;cursor:pointer}\n  .fs-social{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}\n  .fs-social a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 14px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.06);color:#fff!important;text-decoration:none!important;font-size:12px;font-weight:1000;text-transform:uppercase;border-radius:4px}\n  .fs-social a:hover{background:rgba(255,255,255,.14)}\n  .fs-section .fs-social a{background:#fff;border-color:var(--line);color:#111!important}\n  .fs-section .fs-social a:hover{background:var(--paper)}\n  .fs-source-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}\n  .fs-source-meta span{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:1px solid var(--line);background:#fff;color:#3b352d;font-size:11px;font-weight:950;text-transform:uppercase;border-radius:4px}\n  .fs-source-meta .fs-live{background:var(--gold);border-color:var(--gold);color:#090909}\n  .fs-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:30px}\n  .fs-source-card{background:#fff;border:1px solid var(--line);border-top:6px solid var(--gold);border-radius:6px;padding:24px;min-height:100%;display:flex;flex-direction:column}\n  .fs-source-card h3{font-size:22px}\n  .fs-source-card p{font-size:15px;margin-top:10px}\n  .fs-source-card small{display:block;color:#6f675d;font-size:12px;line-height:1.45;margin-top:auto;padding-top:18px}\n  .fs-source-list{display:grid;gap:8px;margin-top:18px}\n  .fs-source-list div{border-left:4px solid var(--gold);background:var(--paper);padding:12px 14px;font-size:14px;line-height:1.45;color:#332d26}\n  .fs-org-logo{width:100%;height:108px;object-fit:contain;object-position:left center;margin-bottom:22px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:12px}\n  .fs-org-card{min-height:420px}\n  .fs-org-card .fs-card-link .fs-btn{width:100%}\n  .fs-org-detail{display:grid;grid-template-columns:300px 1fr;gap:34px;align-items:center;background:#fff;border:1px solid var(--line);border-top:6px solid var(--gold);border-radius:6px;padding:30px;margin-top:32px}\n  .fs-org-detail img{width:100%;max-height:150px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:6px;padding:16px}\n  .fs-org-detail h2{font-size:44px}\n  .fs-source-pill{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;background:#0b0b0b;color:#fff;border-radius:4px;font-size:11px;font-weight:1000;text-transform:uppercase;margin:0 8px 8px 0}\n  .fs-data-note{margin-top:28px;border-left:6px solid var(--blue);background:#fff;padding:22px 24px;color:var(--muted);font-size:16px;line-height:1.55}\n  .fs-data-table{background:#fff;border:1px solid var(--line);border-top:6px solid var(--gold);border-radius:6px;overflow:auto;margin-top:28px}\n  .fs-data-table table{width:100%;border-collapse:collapse;min-width:720px}\n  .fs-data-table th,.fs-data-table td{padding:15px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:14px;line-height:1.45}\n  .fs-data-table th{background:#0b0b0b;color:#fff;text-transform:uppercase;font-size:11px;font-weight:1000;letter-spacing:0}\n  .fs-data-table tr:last-child td{border-bottom:0}\n  .fs-data-table strong{display:block;color:#111}\n  .fs-track-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}\n  .fs-track-box{background:#fff;border:1px solid var(--line);border-left:6px solid var(--blue);border-radius:6px;padding:22px}\n  .fs-track-box h3{font-size:20px}\n  .fs-track-box p,.fs-track-box li{font-size:15px;line-height:1.5;color:var(--muted)}\n  .fs-track-box ul{margin:12px 0 0 18px;padding:0}\n  .fs-refresh-rule{margin-top:28px;background:#0b0b0b;color:#fff;border-left:6px solid var(--gold);border-radius:6px;padding:24px}\n  .fs-refresh-rule h3{color:#fff}\n  .fs-refresh-rule p{color:#d8cec0;font-size:16px}\n  .fs-refresh-rule code{display:block;white-space:normal;margin-top:12px;color:#f2d4aa;font-size:12px}\n  .fs-update-card{background:#0b0b0b;color:#fff;border:1px solid rgba(255,255,255,.18);border-left:6px solid var(--gold);padding:24px;border-radius:6px}\n  .fs-update-card h3{color:#fff}\n  .fs-update-card p{color:#d8cec0;font-size:16px}\n  .fs-next-events{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:34px}\n  .fs-next-intro{max-width:900px}\n  .fs-event-card{background:#fff;border:1px solid var(--line);border-top:7px solid var(--gold);border-radius:6px;padding:28px;display:flex;flex-direction:column;min-height:100%}\n  .fs-event-card.is-international{border-top-color:var(--blue)}\n  .fs-event-card h3{font-size:28px;margin-top:8px!important}\n  .fs-event-card p{font-size:16px;margin-top:14px}\n  .fs-event-card .fs-event-date{display:inline-flex;align-items:center;width:max-content;min-height:34px;padding:0 12px;background:#0b0b0b;color:#fff;border-radius:4px;font-size:12px;font-weight:1000;text-transform:uppercase}\n  .fs-event-meta{display:grid;gap:8px;margin-top:20px}\n  .fs-event-meta div{border-left:4px solid var(--gold);background:var(--paper);padding:10px 12px;color:#332d26;font-size:14px;line-height:1.4}\n  .fs-event-card.is-international .fs-event-meta div{border-left-color:var(--blue)}\n  .fs-event-source{display:block;color:#6f675d;font-size:12px;line-height:1.45;margin-top:auto;padding-top:22px}\n  .fs-footer{background:#050505;color:#fff;padding:46px 0}\n  .fs-footer .fs-wrap{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:24px;align-items:start}\n  .fs-footer a{color:#fff;text-decoration:none}\n  .fs-muted{color:var(--muted)}\n  @media (max-width:1020px){.fsbjj h1{font-size:64px}.fs-page-hero h1{font-size:58px}.fs-brand{min-width:300px}.fs-brand img{width:88px;height:88px}.fs-split,.fs-grid,.fs-grid.fs-two,.fs-grid.fs-four,.fs-stats,.fs-steps,.fs-footer .fs-wrap,.fs-source-grid,.fs-org-detail,.fs-next-events,.fs-track-grid{grid-template-columns:1fr}.fs-path-grid .fs-panel{min-height:0}.fs-section{padding:70px 0}.fs-hero{min-height:620px}.fs-hero .fs-wrap{padding:66px 0 72px}}\n  @media (max-width:720px){.fs-nav .fs-wrap{align-items:flex-start;flex-direction:column;padding:12px 0}.fs-brand{min-width:0}.fs-links{justify-content:flex-start}.fs-links a{font-size:11px;padding:8px 7px}.fs-brand img{width:76px;height:76px}.fs-brand strong{font-size:16px}.fs-brand span span{font-size:12px}.fs-partner-strip .fs-wrap{gap:14px}.fs-partner-strip a{width:100%;min-width:0}.fsbjj h1{font-size:42px}.fsbjj h2{font-size:36px}.fs-page-hero h1{font-size:40px}.fs-lead{font-size:20px}.fs-hero{min-height:560px}.fs-hero .fs-wrap{padding:54px 0 60px}.fs-form{grid-template-columns:1fr}.fs-panel{padding:22px}.fs-media.fs-banner{aspect-ratio:16\/11}}\n\n\/* fs-structure-menu-v1 *\/\n  .fs-floating-menu{position:relative;z-index:90;flex:0 0 clamp(220px,24vw,320px);margin-left:auto}\n  .fs-floating-menu>summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:14px;min-height:58px;padding:0 22px;background:#c77b22;color:#080808;border:1px solid rgba(255,255,255,.08);border-radius:3px;box-shadow:0 12px 28px rgba(0,0,0,.24);cursor:pointer;font-size:15px;font-weight:950;text-transform:uppercase}\n  .fs-floating-menu>summary::-webkit-details-marker{display:none}\n  .fs-menu-bars{display:grid;gap:5px;width:36px;flex:0 0 auto}\n  .fs-menu-bars i{display:block;height:4px;background:#080808}\n  .fs-menu-panel{position:absolute;right:0;top:calc(100% + 10px);display:grid;align-content:start;width:min(330px,calc(100vw - 28px));max-height:min(440px,62vh);overflow-y:auto;overflow-x:hidden;background:rgba(10,10,10,.98);border:1px solid rgba(255,255,255,.12);border-radius:8px;box-shadow:0 18px 42px rgba(0,0,0,.34);padding:10px;gap:5px}\n  .fs-menu-panel a,.fs-menu-branch summary,.fs-menu-label{box-sizing:border-box;width:100%;display:flex;align-items:center;min-height:42px;padding:10px 14px;text-decoration:none;border:1px solid rgba(255,255,255,.08);background:#101010;color:#f4efe7;font-size:13px;font-weight:850;line-height:1.2;border-radius:5px}\n  .fs-menu-panel a:hover,.fs-menu-panel a:focus,.fs-menu-branch summary:hover,.fs-menu-branch summary:focus{background:#c77b22;color:#060606;outline:none;border-color:#c77b22}\n  .fs-menu-panel .fs-menu-direct{background:#151515;color:#fff;text-transform:uppercase;font-size:12px;font-weight:1000}\n  .fs-menu-branch{display:block;margin:0;padding:0;background:transparent}\n  .fs-menu-branch summary{justify-content:space-between;list-style:none;background:#171717;color:#d69a55;border-color:rgba(199,123,34,.32);font-size:12px;font-weight:1000;text-transform:uppercase;cursor:pointer}\n  .fs-menu-branch summary::-webkit-details-marker{display:none}\n  .fs-menu-branch summary::after{content:\"+\";font-size:18px;line-height:1;color:currentColor;font-weight:1000}\n  .fs-menu-branch[open] summary::after{content:\"-\"}\n  .fs-menu-label{min-height:32px;margin-top:5px;background:#050505;color:#d0c5b6;border-color:rgba(255,255,255,.05);font-size:11px;font-weight:1000;text-transform:uppercase}\n  .fs-menu-branch a{margin-top:5px;padding-left:24px;background:#0b0b0b;color:#f3eadf}\n  @media (max-width:720px){\n    .fs-nav .fs-wrap{align-items:stretch;flex-direction:column}\n    .fs-floating-menu{width:100%;flex:none;margin-left:0}\n    .fs-menu-panel{left:0;right:auto;width:100%;max-height:min(380px,62vh)}\n  }\n\/* fs-home-structure-v1 *\/\n  .fs-section-label{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;background:#0b0b0b;color:#fff;border-radius:4px;font-size:11px;font-weight:1000;text-transform:uppercase;margin-bottom:14px}\n  .fs-carousel{position:relative;background:#090909;border:1px solid var(--line);border-radius:6px;overflow:hidden;min-height:0}\n  .fs-carousel-track{display:flex;transition:transform .34s ease}\n  .fs-carousel-slide{min-width:100%;display:grid;grid-template-rows:1fr auto;background:#090909}\n  .fs-carousel-slide img{width:100%;height:auto;object-fit:contain;display:block}\n  .fs-carousel-caption{padding:14px 16px;color:#f5ede2;background:#090909;font-size:14px;line-height:1.45}\n  .fs-carousel button{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:1px solid rgba(255,255,255,.32);background:rgba(0,0,0,.72);color:#fff;border-radius:999px;font-size:26px;font-weight:900;cursor:pointer}\n  .fs-carousel .fs-prev{left:12px}\n  .fs-carousel .fs-next{right:12px}\n  .fs-section-map iframe{width:100%;min-height:380px;border:0;border-radius:6px}\n  .fs-home-contact{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}\n  @media (max-width:1020px){.fs-home-contact{grid-template-columns:1fr}.fs-carousel-slide img{height:320px}}\n  @media (max-width:720px){.fs-carousel{min-height:300px}.fs-carousel-slide img{height:270px}.fs-carousel button{width:40px;height:40px}}\n\n\/* fs-home-card-alignment-v1 *\/\n.fs-home-partners{grid-auto-rows:1fr;align-items:stretch}\n.fs-home-partners>.fs-stat{height:100%;min-height:220px!important}\n.fs-home-partners .fs-logo-tile img{width:min(100%,270px)!important;max-height:145px;object-fit:contain;margin:auto}\n@media (max-width:1020px){.fs-home-partners{grid-template-columns:repeat(2,minmax(0,1fr))}}\n@media (max-width:640px){.fs-home-partners{grid-template-columns:1fr}.fs-home-partners>.fs-stat{min-height:180px!important}}\n\n\n\/* Hallmark \u00b7 genre: editorial educativo \u00b7 macrostructure: functional polish \u00b7 design-system: design.md \u00b7 designed-as-app *\/\n.fsbjj{\n  --hm-color-paper: oklch(96% 0.018 78);\n  --hm-color-paper-2: oklch(99% 0.011 82);\n  --hm-color-ink: oklch(17% 0.012 82);\n  --hm-color-muted: oklch(48% 0.021 76);\n  --hm-color-rule: oklch(80% 0.018 78 \/ .62);\n  --hm-color-accent: oklch(62% 0.132 63);\n  --hm-color-accent-2: oklch(42% 0.158 260);\n  --hm-color-focus: oklch(54% 0.164 255);\n  --hm-font-display: ui-serif, Georgia, \"Times New Roman\", serif;\n  --hm-font-body: Inter, Arial, sans-serif;\n  --hm-space-xs: .5rem;\n  --hm-space-sm: .75rem;\n  --hm-space-md: 1rem;\n  --hm-space-lg: 1.5rem;\n  --hm-space-xl: 2rem;\n  --hm-space-2xl: 3rem;\n  --hm-radius-card: 1.375rem;\n  --hm-radius-pill: 999px;\n  --hm-ease-out: cubic-bezier(.16,1,.3,1);\n  --hm-dur-short: 180ms;\n  background: var(--hm-color-paper);\n  color: var(--hm-color-ink);\n  overflow-x: clip;\n}\n.fsbjj h1,.fsbjj h2,.fsbjj h3{\n  font-family: var(--hm-font-display);\n  font-style: normal;\n  letter-spacing: -.045em;\n  line-height: .98;\n  overflow-wrap: anywhere;\n  min-width: 0;\n}\n.fsbjj p,.fsbjj li,.fsbjj input,.fsbjj textarea,.fsbjj select,.fsbjj button{\n  font-family: var(--hm-font-body);\n}\n.fsbjj .fs-page-hero,.fsbjj .fs-section{\n  position: relative;\n}\n.fsbjj .fs-panel,.fsbjj .fs-card,.fsbjj .stage-card,.fsbjj .fs-event-card,.fsbjj .fs-logo-card{\n  border-color: var(--hm-color-rule);\n  border-radius: var(--hm-radius-card);\n}\n.fsbjj .fs-btn,.fsbjj button,.fsbjj input[type=\"submit\"],.fsbjj .stage-card-action a{\n  white-space: nowrap;\n  min-height: 44px;\n  border-radius: var(--hm-radius-pill);\n  transition: transform var(--hm-dur-short) var(--hm-ease-out), background-color var(--hm-dur-short) var(--hm-ease-out), border-color var(--hm-dur-short) var(--hm-ease-out), color var(--hm-dur-short) var(--hm-ease-out);\n}\n.fsbjj .fs-btn:hover,.fsbjj button:hover,.fsbjj input[type=\"submit\"]:hover,.fsbjj .stage-card-action a:hover{\n  transform: translateY(-1px);\n}\n.fsbjj .fs-btn:focus-visible,.fsbjj a:focus-visible,.fsbjj button:focus-visible,.fsbjj input:focus-visible,.fsbjj textarea:focus-visible,.fsbjj select:focus-visible{\n  outline: 3px solid var(--hm-color-focus);\n  outline-offset: 3px;\n}\n.fsbjj table,.fsbjj .sched-clean,.fsbjj .fs-date-row,.fsbjj .fs-card-price,.fsbjj .stage-card-price{\n  font-variant-numeric: tabular-nums;\n}\n.fsbjj img{max-width:100%;height:auto;}\n@media (pointer: coarse){\n  .fsbjj .fs-btn,.fsbjj button,.fsbjj input[type=\"submit\"],.fsbjj .stage-card-action a{min-height:48px;}\n}\n@media (max-width: 40rem){\n  .fsbjj .fs-btn,.fsbjj button,.fsbjj input[type=\"submit\"],.fsbjj .stage-card-action a{font-size:.86rem;padding-inline:1rem;}\n  .fsbjj h1{font-size:clamp(2.45rem, 13vw, 4rem);}\n  .fsbjj .fs-grid,.fsbjj .stage-card-grid{grid-template-columns:1fr;}\n}\n@media (prefers-reduced-motion: reduce){\n  .fsbjj .fs-btn,.fsbjj button,.fsbjj input[type=\"submit\"],.fsbjj .stage-card-action a{transition:none;}\n  .fsbjj .fs-btn:hover,.fsbjj button:hover,.fsbjj input[type=\"submit\"]:hover,.fsbjj .stage-card-action a:hover{transform:none;}\n}\n\n\/* \/fs-hallmark-sensitive-v1 *\/\n<\/style>\n<header class=\"fs-header-v3\">\n  <div class=\"fs-header-v3-inner\">\n    <a class=\"fs-header-v3-brand\" href=\"https:\/\/clubfreestylebjj.com\/\">\n      <img decoding=\"async\" src=\"https:\/\/clubfreestylebjj.com\/wp-content\/uploads\/2026\/06\/club-free-style-bjj-logo-dark-nav-transparent-1000.png\" alt=\"Club Free Style BJJ\">\n      <span>Club Free Style BJJ<\/span>\n    <\/a>\n    <details class=\"fs-header-v3-menu\">\n      <summary><span class=\"fs-header-v3-bars\" aria-hidden=\"true\"><i><\/i><i><\/i><i><\/i><\/span><span>Menu<\/span><\/summary>\n      <nav class=\"fs-header-v3-panel\" aria-label=\"Men\u00fa principal\"><a href=\"https:\/\/clubfreestylebjj.com\/\">Inicio<\/a><a href=\"https:\/\/clubfreestylebjj.com\/index.php\/metodo-club-free-style-bjj\/\">M\u00e9todo<\/a><a href=\"https:\/\/clubfreestylebjj.com\/index.php\/clases-adultos-bjj-madrid\/\">Adultos<\/a><a href=\"https:\/\/clubfreestylebjj.com\/index.php\/colegios\/\">Colegios<\/a><a href=\"https:\/\/clubfreestylebjj.com\/index.php\/salesianos-paseo\/\">Salesianos Paseo<\/a><a href=\"https:\/\/clubfreestylebjj.com\/index.php\/san-buenaventura\/\">San Buenaventura<\/a><a href=\"https:\/\/clubfreestylebjj.com\/index.php\/mujeres-bjj-madrid\/\">Mujeres<\/a><a href=\"https:\/\/clubfreestylebjj.com\/index.php\/campeonatos\/\">Campeonatos<\/a><a href=\"https:\/\/clubfreestylebjj.com\/index.php\/contacto\/\">Contacto<\/a><\/nav>\n    <\/details>\n  <\/div>\n<\/header>\n<div class=\"fs-header-v3-spacer\" aria-hidden=\"true\"><\/div><section class=\"fs-page-hero fs-schedule-hero\" id=\"horarios-salesianos-infantiles\"><div class=\"fs-wrap\"><div class=\"fs-sched-clean\"><div class=\"fs-sched-clean__eyebrow\">Horario semanal<\/div><div class=\"fs-sched-clean__title\">Salesianos Paseo \u00b7 Infantiles y Primaria<\/div><div class=\"fs-sched-clean__sub\">Extraescolar con recogida en comedor \u00b7 GI<\/div><div class=\"fs-sched-clean__scroll\"><table><thead><tr><th class=\"fs-sched-clean__rowh\">Franja<\/th><th>Lun<\/th><th>Mar<\/th><th>Mi\u00e9<\/th><th>Jue<\/th><th>Vie<\/th><\/tr><\/thead><tbody><tr><td class=\"fs-sched-clean__rowh\">17:00\u201318:30<\/td><td><span class=\"fs-sched-clean__pill fs-sched-clean__pill--gi\">GI<\/span><\/td><td><span class=\"fs-sched-clean__pill fs-sched-clean__pill--gi\">GI<\/span><\/td><td><span class=\"fs-sched-clean__pill fs-sched-clean__pill--gi\">GI<\/span><\/td><td><span class=\"fs-sched-clean__pill fs-sched-clean__pill--gi\">GI<\/span><\/td><td><span class=\"fs-sched-clean__dash\">\u2013<\/span><\/td><\/tr><tr><td class=\"fs-sched-clean__rowh\">17:45\u201319:15<\/td><td><span class=\"fs-sched-clean__dash\">\u2013<\/span><\/td><td><span class=\"fs-sched-clean__pill fs-sched-clean__pill--gi\">GI<\/span><\/td><td><span class=\"fs-sched-clean__dash\">\u2013<\/span><\/td><td><span class=\"fs-sched-clean__pill fs-sched-clean__pill--gi\">GI<\/span><\/td><td><span class=\"fs-sched-clean__dash\">\u2013<\/span><\/td><\/tr><\/tbody><\/table><\/div><\/div><\/div><\/section>\n<section class=\"fs-section fs-stage-card-section\" id=\"grupos-horarios-salesianos-infantiles\"><div class=\"fs-wrap\"><div class=\"fs-stage-card-head\"><div class=\"fs-breadcrumb\">Salesianos Paseo<\/div><h2>Grupos y horarios infantiles.<\/h2><p>Esta p\u00e1gina queda reservada para primaria extraescolar e infantiles: recogida en comedor, grupo infantil de tarde, seguimiento familiar y reserva con el club.<\/p><\/div><div class=\"fs-stage-card-grid\">\n<article class=\"fs-stage-card\" id=\"primaria-lunes-miercoles\"><div class=\"fs-stage-cover fs-logo-cover\"><img decoding=\"async\" src=\"https:\/\/clubfreestylebjj.com\/wp-content\/uploads\/2026\/06\/salesianos-logo.png\" alt=\"Logo Salesianos Paseo\"><span class=\"fs-stage-cover-tag\">Primaria extraescolar<\/span><\/div><div class=\"fs-stage-card-body\"><h3>Lunes y mi\u00e9rcoles de 17:00 a 18:30.<\/h3><div class=\"fs-card-price\">60\u20ac<\/div><div class=\"fs-stage-meta-line\"><b>Centro<\/b><span>Salesianos Paseo<\/span><\/div><div class=\"fs-stage-meta-line\"><b>Recogida<\/b><span>Comedor escolar<\/span><\/div><p>Entrada educativa al tatami para alumnos de primaria que necesitan continuidad, orden, normas claras y una transici\u00f3n cuidada desde la jornada escolar.<\/p><div class=\"fs-stage-tags\"><span class=\"fs-stage-tag gold\">Primaria<\/span><span class=\"fs-stage-tag\">Lunes y mi\u00e9rcoles<\/span><span class=\"fs-stage-tag\">17:00<\/span><\/div><div class=\"fs-stage-card-actions\"><a class=\"fs-btn fs-gold\" href=\"https:\/\/wa.me\/34681990446\" target=\"_blank\" rel=\"noopener\">Reservar clase de prueba<\/a><\/div><\/div><\/article>\n<article class=\"fs-stage-card\" id=\"primaria-martes-jueves\"><div class=\"fs-stage-cover\"><img decoding=\"async\" src=\"https:\/\/clubfreestylebjj.com\/wp-content\/uploads\/2026\/06\/club-free-style-bjj-infantiles_salesianos-01-img-20251009-180720.jpg\" alt=\"Extraescolar de BJJ en Salesianos Paseo\"><span class=\"fs-stage-cover-tag\">Primaria extraescolar<\/span><\/div><div class=\"fs-stage-card-body\"><h3>Martes y jueves de 17:00 a 18:30.<\/h3><div class=\"fs-card-price\">60\u20ac<\/div><div class=\"fs-stage-meta-line\"><b>Centro<\/b><span>Salesianos Paseo<\/span><\/div><div class=\"fs-stage-meta-line\"><b>Recogida<\/b><span>Comedor escolar<\/span><\/div><p>Misma l\u00ednea pedag\u00f3gica con juego estructurado, coordinaci\u00f3n, autocontrol, respeto, seguridad corporal y seguimiento familiar.<\/p><div class=\"fs-stage-tags\"><span class=\"fs-stage-tag gold\">Primaria<\/span><span class=\"fs-stage-tag\">Martes y jueves<\/span><span class=\"fs-stage-tag\">17:00<\/span><\/div><div class=\"fs-stage-card-actions\"><a class=\"fs-btn fs-gold\" href=\"https:\/\/wa.me\/34681990446\" target=\"_blank\" rel=\"noopener\">Reservar clase de prueba<\/a><\/div><\/div><\/article>\n<article class=\"fs-stage-card\" id=\"infantil-martes-jueves\"><div class=\"fs-stage-cover\"><img decoding=\"async\" src=\"https:\/\/clubfreestylebjj.com\/wp-content\/uploads\/2026\/06\/club-free-style-bjj-infantiles_salesianos-03-img-20251009-181319.jpg\" alt=\"Grupo infantil en Salesianos Paseo\"><span class=\"fs-stage-cover-tag\">Infantiles<\/span><\/div><div class=\"fs-stage-card-body\"><h3>Martes y jueves de 17:45 a 19:15.<\/h3><div class=\"fs-card-price\">60\u20ac<\/div><div class=\"fs-stage-meta-line\"><b>Centro<\/b><span>Salesianos Paseo<\/span><\/div><div class=\"fs-stage-meta-line\"><b>Etapa<\/b><span>Infantil de tarde<\/span><\/div><p>Grupo para alumnos que acuden directamente a clase, con t\u00e9cnica adaptada a la edad, disciplina positiva de tatami y atenci\u00f3n al cuidado del companero.<\/p><div class=\"fs-stage-tags\"><span class=\"fs-stage-tag gold\">Infantiles<\/span><span class=\"fs-stage-tag\">Martes y jueves<\/span><span class=\"fs-stage-tag\">17:45<\/span><\/div><div class=\"fs-stage-card-actions\"><a class=\"fs-btn fs-gold\" href=\"https:\/\/wa.me\/34681990446\" target=\"_blank\" rel=\"noopener\">Reservar clase de prueba<\/a><\/div><\/div><\/article>\n<\/div><\/div><\/section>\n<section class=\"fs-section fs-band\" id=\"descuentos-el club-salesianos-infantiles\"><div class=\"fs-wrap\"><div class=\"fs-breadcrumb\">Descuentos<\/div><h2>Condiciones claras antes de reservar.<\/h2><p>Los descuentos se revisan con el club antes de confirmar la plaza. No publicamos importes: se comprueba etapa escolar, recogida en comedor, hermanos o familiares inscritos, vinculaci\u00f3n con el centro y disponibilidad real del grupo.<\/p><div class=\"fs-grid fs-two\" style=\"margin-top:30px\"><article class=\"fs-card\"><span class=\"fs-tag\">Familias<\/span><h3>Descuento familiar<\/h3><p>Se valida cuando entrenan varios integrantes de la misma familia en primer grado, siempre antes de cerrar la plaza.<\/p><\/article><article class=\"fs-card\"><span class=\"fs-tag\">Centro educativo<\/span><h3>Descuento colegio<\/h3><p>Se revisa para empleados del colegio y familiares directos, con confirmaci\u00f3n previa de el club.<\/p><\/article><\/div><\/div><\/section>\n\n\n<section class=\"fs-section\"><div class=\"fs-wrap\"><span class=\"fs-section-label\">C\u00f3mo es una clase<\/span><h2>Infantil y Primaria: aprender jugando, con seguridad.<\/h2><p>En las clases de infantiles y Primaria se aprende jugando, pero con estructura. Trabajamos la coordinaci\u00f3n, el autocontrol y la seguridad corporal a trav\u00e9s de juegos y t\u00e9cnica adaptada a la edad, siempre con normas de respeto y en un ambiente cuidado.<\/p><p>Es un deporte de agarre, sin golpes, con progresi\u00f3n sin prisas y grupos por edad. Para las familias es c\u00f3modo: en el propio colegio y con recogida en el comedor. Y la primera clase es de prueba.<\/p><div class=\"fs-actions\" style=\"margin-top:18px;\"><a class=\"fs-btn fs-gold\" href=\"https:\/\/wa.me\/34681990446\" target=\"_blank\" rel=\"noopener\">Reserva una clase de prueba<\/a><\/div><\/div><\/section><!-- fs-schema-sports-location -->\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"SportsActivityLocation\",\"@id\":\"https:\/\/clubfreestylebjj.com\/index.php\/salesianos-paseo-infantiles\/#sports-location\",\"name\":\"Club Free Style BJJ - Salesianos Paseo Infantiles y Primaria\",\"url\":\"https:\/\/clubfreestylebjj.com\/index.php\/salesianos-paseo-infantiles\/\",\"image\":\"https:\/\/clubfreestylebjj.com\/wp-content\/uploads\/2026\/06\/club-free-style-bjj-infantiles_salesianos-01-img-20251009-180720.jpg\",\"telephone\":\"+34 681 990 446\",\"description\":\"Programa infantil y primaria de Jiu-Jitsu educativo en Salesianos Paseo.\",\"sport\":[\"Brazilian Jiu-Jitsu\",\"Grappling\"],\"parentOrganization\":{\"@type\":\"Organization\",\"name\":\"Club Free Style BJJ\",\"url\":\"https:\/\/clubfreestylebjj.com\/\"}}<\/script>\n<footer class=\"fs-footer\">\n  <div class=\"fs-wrap\">\n    <div>\n      <strong>Club Free Style BJJ<\/strong><br>\n      <span class=\"fs-muted\">Jiu-Jitsu brasile\u00f1o en Madrid para adultos, familias y colegios.<\/span>\n    <\/div>\n    <div>\n      <a href=\"tel:+34681990446\">+34 681 990 446<\/a><br>\n      <a href=\"mailto:info@clubfreestylebjj.com\">info@clubfreestylebjj.com<\/a>\n    <\/div>\n    <div>\n      <strong>Redes y mapa<\/strong><br>\n      <span class=\"fs-muted\">Canales p\u00fablicos de la escuela y perfil de Google Maps.<\/span>\n      <div class=\"fs-social\">\n        <a href=\"https:\/\/www.facebook.com\/people\/Escuela-de-Jiu-Jitsu-Brasile%C3%B1o-Puerta-del-Angel\/100090128777293\/\" target=\"_blank\" rel=\"noopener\">Facebook<\/a>\n        <a href=\"https:\/\/www.instagram.com\/explore\/locations\/462536300569539\/escuela-de-jiu-jitsu-brasileno-puerta-del-angel\/\" target=\"_blank\" rel=\"noopener\">Instagram<\/a>\n        <a href=\"https:\/\/www.google.com\/maps\/search\/?api=1&amp;query=Escuela+de+Jiu-Jitsu+Brasile%C3%B1o+Puerta+del+Angel+Calle+Cabello+Lapiedra+4+Madrid\" target=\"_blank\" rel=\"noopener\">Google Maps<\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n  <div class=\"fs-footer-credit\">\u00a9 2026 Club Free Style BJJ<\/div>\n<\/footer>\n<\/div>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<script>\n(function(){\n  if (window.__fsContactRoutingV3Ordered) return;\n  window.__fsContactRoutingV3Ordered = true;\n  var phone = \"34681990446\";\n  var programs = {\n    \"Salesianos Paseo\": [\"Primaria extraescolar lunes y mi\u00e9rcoles de 17:00 a 18:30 - recogida en comedor\",\"Primaria extraescolar martes y jueves de 17:00 a 18:30 - recogida en comedor\",\"Infantiles martes y jueves de 17:45 a 19:15\"],\n    \"San Buenaventura\": [\"Primaria extraescolar - grupo escolar pendiente de confirmaci\u00f3n\",\"ESO - grupo escolar pendiente de confirmaci\u00f3n\",\"Bachiller - grupo escolar pendiente de confirmaci\u00f3n\",\"Lista de familias interesadas - pendiente de confirmaci\u00f3n\"],\n    \"Nuevo colegio interesado\": [\"Presentar proyecto al centro\",\"Solicitar informaci\u00f3n para familias\",\"Coordinar reunion con direcci\u00f3n o AMPA\"]\n  };\n  function fsCleanText(v){\n    v = String(v || \"\");\n    var out = \"\";\n    var lastSpace = false;\n    for (var i=0;i<v.length;i++){\n      var code = v.charCodeAt(i);\n      var ch = v.charAt(i);\n      var isSpace = false;\n      if (code === 9) isSpace = true;\n      if (code === 10) isSpace = true;\n      if (code === 13) isSpace = true;\n      if (code === 32) isSpace = true;\n      if (code === 160) isSpace = true;\n      if (isSpace) {\n        if (!lastSpace) out += \" \";\n        lastSpace = true;\n      } else {\n        out += ch;\n        lastSpace = false;\n      }\n    }\n    return out.trim();\n  }\n  function textOf(el){ return el ? fsCleanText(el.innerText || el.textContent || \"\") : \"\"; }\n  function isContactLink(link){\n    if (!link) return false;\n    var href = link.getAttribute(\"href\") || \"\";\n    var text = textOf(link).toLowerCase();\n    if (href.indexOf(\"wa.me\/\") !== -1) return true;\n    if (href.indexOf(\"api.whatsapp.com\") !== -1) return true;\n    if (href.indexOf(\"mailto:\") === 0) return true;\n    if (text.indexOf(\"whatsapp\") !== -1) return true;\n    return false;\n  }\n  function field(form,name){ return form.querySelector('[name=\"' + name + '\"]'); }\n  function wrap(form,name){ var el = field(form,name); return el ? el.closest(\"label\") : null; }\n  function value(form,name){ var el = field(form,name); if (!el) return \"\"; if (el.type === \"checkbox\") return el.checked ? el.value : \"\"; return (el.value || \"\").trim(); }\n  function hasValue(form,name){ return value(form,name) !== \"\"; }\n  function isDateField(el){\n    if (!el) return false;\n    if (el.name === \"fecha_nacimiento\") return true;\n    if (el.name === \"fecha_nacimiento_menor\") return true;\n    if (el.name.indexOf(\"fecha_nacimiento_menor_\") === 0) return true;\n    return false;\n  }\n  function validDateParts(day,month,year){\n    var cy = (new Date()).getFullYear();\n    if (!day) return false;\n    if (!month) return false;\n    if (!year) return false;\n    if (year < 1900) return false;\n    if (year > cy) return false;\n    if (month < 1) return false;\n    if (month > 12) return false;\n    if (day < 1) return false;\n    if (day > 31) return false;\n    return true;\n  }\n  function onlyDigits(v){ return String(v || \"\").replace(\/[^0-9]\/g,\"\"); }\n  function dateDigitsForInput(v){\n    v = String(v || \"\").trim();\n    if (v.length === 10) {\n      if (v.charAt(4) === \"-\") {\n        if (v.charAt(7) === \"-\") {\n          return onlyDigits(v.slice(8,10) + v.slice(5,7) + v.slice(0,4)).slice(0,8);\n        }\n      }\n    }\n    return onlyDigits(v).slice(0,8);\n  }\n  function dateCaretPosition(value,digitCount){\n    if (digitCount <= 0) return 0;\n    var seen = 0;\n    for (var i=0;i<value.length;i++){\n      if (\/[0-9]\/.test(value.charAt(i))) seen++;\n      if (seen >= digitCount) return i + 1;\n    }\n    return value.length;\n  }\n  function dateDigitCountBefore(value,pos){\n    value = String(value || \"\");\n    var limit = Math.max(0, pos || 0);\n    var count = 0;\n    for (var i=0;i<value.length;i++){\n      if (i >= limit) break;\n      if (\/[0-9]\/.test(value.charAt(i))) count++;\n    }\n    return count;\n  }\n  function formatDateInput(el){\n    if (!isDateField(el)) return;\n    var before = String(el.value || \"\");\n    var digitCursor = dateDigitCountBefore(before, el.selectionStart || before.length);\n    var d = dateDigitsForInput(before);\n    var next = d;\n    if (d.length > 2) next = d.slice(0,2) + \"\/\" + d.slice(2);\n    if (d.length > 4) next = d.slice(0,2) + \"\/\" + d.slice(2,4) + \"\/\" + d.slice(4);\n    if (before !== next) {\n      el.value = next;\n      try {\n        var pos = dateCaretPosition(next,digitCursor);\n        el.setSelectionRange(pos,pos);\n      } catch(error) {}\n    }\n  }\n  function isCompleteDate(v){\n    v = String(v || \"\").trim();\n    if (v.length === 10) {\n      if (v.charAt(4) === \"-\") {\n        if (v.charAt(7) === \"-\") {\n          return validDateParts(parseInt(v.slice(8,10),10), parseInt(v.slice(5,7),10), parseInt(v.slice(0,4),10));\n        }\n      }\n    }\n    var d = onlyDigits(v);\n    if (d.length !== 8) return false;\n    return validDateParts(parseInt(d.slice(0,2),10), parseInt(d.slice(2,4),10), parseInt(d.slice(4,8),10));\n  }\n  function ready(form,name){ var el = field(form,name); if (!el) return true; if (isDateField(el)) return isCompleteDate(el.value || \"\"); if (el.type === \"checkbox\") return el.checked; return hasValue(form,name); }\n  function show(el,on){ if (!el) return; if (on) el.classList.remove(\"fs-hidden-step\"); else el.classList.add(\"fs-hidden-step\"); }\n  function setLabel(form,name,text){ var w = wrap(form,name); if (!w) return; var nodes = Array.from(w.childNodes); for (var i=0;i<nodes.length;i++){ if (nodes[i].nodeType === 3) { nodes[i].nodeValue = text; return; } } w.insertBefore(document.createTextNode(text), w.firstChild); }\n  function fillOptions(select,items,placeholder){ if (!select) return; var current = select.value; select.innerHTML = \"\"; var first = document.createElement(\"option\"); first.value = \"\"; first.textContent = placeholder || \"Elegir opcion\"; select.appendChild(first); for (var i=0;i<items.length;i++){ var opt = document.createElement(\"option\"); opt.value = items[i]; opt.textContent = items[i]; select.appendChild(opt); } select.value = current; }\n  function modeOf(form){\n    var interest = value(form,\"tipo_interesado\");\n    if (interest === \"Quiero clases para mi\") return \"self\";\n    if (interest === \"Busco clases para mi hijo\/a\") return \"child\";\n    if (interest === \"Represento a un centro interesado\") return \"center\";\n    return \"\";\n  }\n  var adultCenters = [];\n  var childCenters = [\"Salesianos Paseo\"];\n  var adultPrograms = {};\n  var childPrograms = {\"Salesianos Paseo\":[\"Primaria extraescolar lunes y miercoles de 17:00 a 18:30 - recogida en comedor\",\"Primaria extraescolar martes y jueves de 17:00 a 18:30 - recogida en comedor\",\"Infantiles martes y jueves de 17:45 a 19:15\"]};\n  function populateCenters(form,mode){\n    var select = field(form,\"centro\");\n    if (!select) return;\n    if (mode === \"self\") { fillOptions(select,adultCenters,\"Elegir centro\"); return; }\n    if (mode === \"child\") { fillOptions(select,childCenters,\"Elegir centro\"); return; }\n  }\n  function populatePrograms(form){\n    var center = value(form,\"centro\"); var select = field(form,\"programa\"); var mode = modeOf(form); var source = programs;\n    if (mode === \"self\") source = adultPrograms;\n    if (mode === \"child\") source = childPrograms;\n    var list = source[center] || [];\n    fillOptions(select,list,\"Elegir programa\");\n  }\n  function visibleField(el){ if (!el) return false; if (el.disabled) return false; if (el.type === \"hidden\") return false; var w = el.closest(\"label\") || el.closest(\".fs-minor-group\") || el; if (getComputedStyle(w).display === \"none\") return false; return true; }\n  function focusField(el){ if (!el) return; if (el.focus) el.focus({preventScroll:true}); var form = el.closest(\".fs-contact-form\"); if (!form) return; var target = el.closest(\"label\") || el.closest(\".fs-minor-group\") || el; var top = target.offsetTop - Math.max(22, form.clientHeight * 0.52); form.scrollTo({top:Math.max(0,top),behavior:\"smooth\"}); }\n  function nextField(form,el){ var all = Array.from(form.querySelectorAll(\"select,input,textarea,button.fs-add-minor\")); all = all.filter(visibleField); var idx = all.indexOf(el); if (idx < 0) return null; return all[idx + 1] || null; }\n  function orderedNames(mode){\n    if (mode === \"self\") return [\"tipo_interesado\",\"responsable\",\"fecha_nacimiento\",\"mayor_edad\",\"genero\",\"centro\",\"programa\",\"experiencia_bjj\",\"cinturon_bjj\",\"tiempo_bjj\",\"limitaciones_fisicas\",\"detalle_limitaciones\",\"email\",\"telefono\",\"preferencia\",\"mensaje\",\"consentimiento\"];\n    if (mode === \"child\") return [\"tipo_interesado\",\"responsable\",\"relacion_tutor\",\"fecha_nacimiento\",\"mayor_edad\",\"alumno_1\",\"fecha_nacimiento_menor\",\"genero\",\"experiencia_bjj_menor_1\",\"cinturon_bjj_menor_1\",\"tiempo_bjj_menor_1\",\"limitaciones_fisicas_menor_1\",\"detalle_limitaciones_menor_1\",\"add_minor\",\"centro\",\"programa\",\"email\",\"telefono\",\"preferencia\",\"mensaje\",\"consentimiento\"];\n    if (mode === \"center\") return [\"tipo_interesado\",\"responsable\",\"fecha_nacimiento\",\"mayor_edad\",\"nombre_centro\",\"link_centro\",\"puesto_centro\",\"interes_centro\",\"preferencia\",\"mensaje\",\"consentimiento\"];\n    return [\"tipo_interesado\"];\n  }\n  function shouldInclude(form,name,mode){\n    if (name === \"relacion_tutor\") return mode === \"child\";\n    if (name.indexOf(\"cinturon_bjj_menor_\") === 0) { var s1 = name.replace(\"cinturon_bjj_menor_\",\"\"); return value(form,\"experiencia_bjj_menor_\" + s1) === \"Si\"; }\n    if (name.indexOf(\"tiempo_bjj_menor_\") === 0) { var s2 = name.replace(\"tiempo_bjj_menor_\",\"\"); if (value(form,\"experiencia_bjj_menor_\" + s2) !== \"Si\") return false; return hasValue(form,\"cinturon_bjj_menor_\" + s2); }\n    if (name.indexOf(\"detalle_limitaciones_menor_\") === 0) { var s3 = name.replace(\"detalle_limitaciones_menor_\",\"\"); return value(form,\"limitaciones_fisicas_menor_\" + s3) === \"Si\"; }\n    if (name === \"cinturon_bjj\") return value(form,\"experiencia_bjj\") === \"Si\";\n    if (name === \"tiempo_bjj\") return shouldInclude(form,\"cinturon_bjj\",mode) ? hasValue(form,\"cinturon_bjj\") : false;\n    if (name === \"detalle_limitaciones\") return value(form,\"limitaciones_fisicas\") === \"Si\";\n    if (name === \"add_minor\") return mode === \"child\";\n    return true;\n  }\n  function previousReady(form,order,index,mode){\n    for (var i=0;i<index;i++){\n      var prev = order[i];\n      if (!shouldInclude(form,prev,mode)) continue;\n      if (prev === \"add_minor\") continue;\n      if (!ready(form,prev)) return false;\n    }\n    return true;\n  }\n  function showByOrder(form,mode){\n    var names = [\"responsable\",\"relacion_tutor\",\"fecha_nacimiento\",\"mayor_edad\",\"genero\",\"centro\",\"programa\",\"experiencia_bjj\",\"cinturon_bjj\",\"tiempo_bjj\",\"limitaciones_fisicas\",\"detalle_limitaciones\",\"email\",\"telefono\",\"preferencia\",\"mensaje\",\"consentimiento\",\"alumno_1\",\"fecha_nacimiento_menor\",\"experiencia_bjj_menor_1\",\"cinturon_bjj_menor_1\",\"tiempo_bjj_menor_1\",\"limitaciones_fisicas_menor_1\",\"detalle_limitaciones_menor_1\",\"nombre_centro\",\"link_centro\",\"puesto_centro\",\"interes_centro\"];\n    for (var n=0;n<names.length;n++) show(wrap(form,names[n]),false);\n    show(form.querySelector(\".fs-add-minor\"),false); show(form.querySelector(\".fs-contact-actions\"),false);\n    var order = orderedNames(mode);\n    for (var i=0;i<order.length;i++){\n      var name = order[i]; if (!shouldInclude(form,name,mode)) continue; var on = previousReady(form,order,i,mode); if (name === \"add_minor\") show(form.querySelector(\".fs-add-minor\"),on); else show(wrap(form,name),on);\n    }\n    var canActions = previousReady(form,order,order.length,mode); show(form.querySelector(\".fs-contact-actions\"),canActions);\n    var submit = form.querySelector(\".fs-contact-submit\"); if (submit) submit.disabled = !ready(form,\"consentimiento\");\n  }\n  function refreshMinorDetails(form,mode){\n    var items = Array.from(form.querySelectorAll('[name^=\"experiencia_bjj_menor_\"]'));\n    for (var i=0;i<items.length;i++){\n      var suffix = items[i].name.replace(\"experiencia_bjj_menor_\",\"\");\n      var childMode = mode === \"child\";\n      var showBelt = false;\n      if (childMode) showBelt = value(form,\"experiencia_bjj_menor_\" + suffix) === \"Si\";\n      show(wrap(form,\"cinturon_bjj_menor_\" + suffix),showBelt);\n      var showTime = false;\n      if (showBelt) showTime = hasValue(form,\"cinturon_bjj_menor_\" + suffix);\n      show(wrap(form,\"tiempo_bjj_menor_\" + suffix),showTime);\n      var showDetail = false;\n      if (childMode) showDetail = value(form,\"limitaciones_fisicas_menor_\" + suffix) === \"Si\";\n      show(wrap(form,\"detalle_limitaciones_menor_\" + suffix),showDetail);\n    }\n  }\n  function refresh(form){\n    var interest = value(form,\"tipo_interesado\"); var mode = \"\";\n    if (interest === \"Quiero clases para mi\") mode = \"self\";\n    if (interest === \"Busco clases para mi hijo\/a\") mode = \"child\";\n    if (interest === \"Represento a un centro interesado\") mode = \"center\";\n    setLabel(form,\"responsable\", mode === \"child\" ? \"Nombre padre\/madre tutor\" : (mode === \"center\" ? \"Nombre y apellidos completos\" : \"Nombre y apellidos\"));\n    setLabel(form,\"fecha_nacimiento\", \"Fecha de nacimiento\"); populateCenters(form,mode); populatePrograms(form); showByOrder(form,mode); refreshMinorDetails(form,mode);\n  }\n  function addMinor(form){\n    var box = form.querySelector(\".fs-extra-minors\");\n    if (!box) return;\n    var count = box.querySelectorAll(\".fs-minor-group\").length + 2;\n    if (count > 5) return;\n    var group = document.createElement(\"div\");\n    group.className = \"fs-minor-group\";\n    group.innerHTML = '<label>Nombre y apellidos del menor ' + count + '<input name=\"alumno_' + count + '\" autocomplete=\"off\"><\/label><label>Fecha de nacimiento del menor ' + count + '<input type=\"text\" inputmode=\"numeric\" placeholder=\"dd\/mm\/aaaa\" maxlength=\"10\" name=\"fecha_nacimiento_menor_' + count + '\" autocomplete=\"bday\"><\/label><label>Genero del menor ' + count + '<select name=\"genero_menor_' + count + '\"><option value=\"\">Elegir opci\u00f3n<\/option><option>Masculino<\/option><option>Femenino<\/option><\/select><\/label><label>Experiencia previa BJJ del menor ' + count + '<select name=\"experiencia_bjj_menor_' + count + '\"><option value=\"\">Elegir opci\u00f3n<\/option><option>Si<\/option><option>No<\/option><\/select><\/label><label>Color del cinturon del menor ' + count + '<select name=\"cinturon_bjj_menor_' + count + '\"><option value=\"\">Elegir color<\/option><option>Blanco<\/option><option>Gris blanco<\/option><option>Gris<\/option><option>Gris negro<\/option><option>Amarillo blanco<\/option><option>Amarillo<\/option><option>Amarillo negro<\/option><option>Naranja blanco<\/option><option>Naranja<\/option><option>Naranja negro<\/option><option>Verde blanco<\/option><option>Verde<\/option><option>Verde negro<\/option><option>Azul<\/option><option>Morado<\/option><option>Marron<\/option><option>Negro<\/option><\/select><\/label><label>Tiempo total de experiencia del menor ' + count + '<input name=\"tiempo_bjj_menor_' + count + '\" autocomplete=\"off\"><\/label><label>Limitaci\u00f3nes o condici\u00f3nes fisicas del menor ' + count + '<select name=\"limitaciones_fisicas_menor_' + count + '\"><option value=\"\">Elegir opci\u00f3n<\/option><option>Si<\/option><option>No<\/option><\/select><\/label><label>Detalle de limitaci\u00f3n o condici\u00f3n del menor ' + count + '<input name=\"detalle_limitaciones_menor_' + count + '\"><\/label>';\n    box.appendChild(group);\n    refresh(form);\n    focusField(group.querySelector('input'));\n  }\n  function buildModal(){\n    var old = document.querySelector(\".fs-contact-modal\"); if (old) old.remove();\n    var modal = document.createElement(\"div\"); modal.className = \"fs-contact-modal\";\n    modal.innerHTML = '<div class=\"fs-contact-dialog\" role=\"dialog\" aria-modal=\"true\"><div class=\"fs-contact-head\"><div><h2>Formulario de contacto<\/h2><p>Rellena los datos y prepararemos el mensaje para WhatsApp.<\/p><\/div><button class=\"fs-contact-close\" type=\"button\" aria-label=\"Cerrar\">\u00d7<\/button><\/div><form class=\"fs-contact-form\" autocomplete=\"on\"><input type=\"hidden\" name=\"origen\" value=\"web-club-free-style-bjj\"><label>Interesado<select name=\"tipo_interesado\" required><option value=\"\">Elegir opci\u00f3n<\/option><option>Quiero clases para mi<\/option><option>Busco clases para mi hijo\/a<\/option><option>Represento a un centro interesado<\/option><\/select><\/label><label>Nombre y apellidos<input name=\"responsable\" autocomplete=\"name\"><\/label><label>Indica si eres padre, madre o tutor legal<select name=\"relacion_tutor\"><option value=\"\">Elegir opci\u00f3n<\/option><option>Padre<\/option><option>Madre<\/option><option>Tutor legal<\/option><\/select><\/label><label>Fecha de nacimiento<input type=\"text\" inputmode=\"numeric\" placeholder=\"dd\/mm\/aaaa\" maxlength=\"10\" name=\"fecha_nacimiento\" autocomplete=\"bday\"><\/label><label>Confirmo que soy mayor de edad<input type=\"checkbox\" name=\"mayor_edad\" value=\"confirmado\"><\/label><label>Nombre y apellidos del menor<input name=\"alumno_1\" autocomplete=\"off\"><\/label><label>Fecha de nacimiento del menor<input type=\"text\" inputmode=\"numeric\" placeholder=\"dd\/mm\/aaaa\" maxlength=\"10\" name=\"fecha_nacimiento_menor\" autocomplete=\"bday\"><\/label><label>Genero<select name=\"genero\"><option value=\"\">Elegir opci\u00f3n<\/option><option>Masculino<\/option><option>Femenino<\/option><\/select><\/label><label>Experiencia previa BJJ del menor<select name=\"experiencia_bjj_menor_1\"><option value=\"\">Elegir opci\u00f3n<\/option><option>Si<\/option><option>No<\/option><\/select><\/label><label>Color del cinturon del menor<select name=\"cinturon_bjj_menor_1\"><option value=\"\">Elegir color<\/option><option>Blanco<\/option><option>Gris blanco<\/option><option>Gris<\/option><option>Gris negro<\/option><option>Amarillo blanco<\/option><option>Amarillo<\/option><option>Amarillo negro<\/option><option>Naranja blanco<\/option><option>Naranja<\/option><option>Naranja negro<\/option><option>Verde blanco<\/option><option>Verde<\/option><option>Verde negro<\/option><option>Azul<\/option><option>Morado<\/option><option>Marron<\/option><option>Negro<\/option><\/select><\/label><label>Tiempo total de experiencia del menor<input name=\"tiempo_bjj_menor_1\" autocomplete=\"off\"><\/label><label>Limitaci\u00f3nes o condici\u00f3nes fisicas del menor<select name=\"limitaciones_fisicas_menor_1\"><option value=\"\">Elegir opci\u00f3n<\/option><option>Si<\/option><option>No<\/option><\/select><\/label><label>Detalle de limitaci\u00f3n o condici\u00f3n del menor<input name=\"detalle_limitaciones_menor_1\"><\/label><button class=\"fs-add-minor\" type=\"button\">A\u00f1adir otro menor<\/button><div class=\"fs-extra-minors\"><\/div><label>Centro<select name=\"centro\"><option value=\"\">Elegir centro<\/option><option>Salesianos Paseo<\/option><option>San Buenaventura<\/option><\/select><\/label><label>Programas de inter\u00e9s<select name=\"programa\"><option value=\"\">Elegir programa<\/option><\/select><\/label><label>Experiencia previa BJJ<select name=\"experiencia_bjj\"><option value=\"\">Elegir opci\u00f3n<\/option><option>Si<\/option><option>No<\/option><\/select><\/label><label>Color del cinturon<select name=\"cinturon_bjj\"><option value=\"\">Elegir color<\/option><option>Blanco<\/option><option>Azul<\/option><option>Morado<\/option><option>Marron<\/option><option>Negro<\/option><\/select><\/label><label>Tiempo total de experiencia<input name=\"tiempo_bjj\" autocomplete=\"off\"><\/label><label>Limitaci\u00f3nes o condici\u00f3nes fisicas<select name=\"limitaciones_fisicas\"><option value=\"\">Elegir opci\u00f3n<\/option><option>Si<\/option><option>No<\/option><\/select><\/label><label>Detalle de limitaci\u00f3n o condici\u00f3n<input name=\"detalle_limitaciones\"><\/label><label>Email<input type=\"email\" name=\"email\" autocomplete=\"email\"><\/label><label>Telefono<input name=\"telefono\" autocomplete=\"tel\"><\/label><label>Nombre del centro representado<input name=\"nombre_centro\"><\/label><label>link del centro interesado<input name=\"link_centro\" inputmode=\"url\" autocomplete=\"url\"><\/label><label>Puesto ocupado en el centro<select name=\"puesto_centro\"><option value=\"\">Elegir opci\u00f3n<\/option><option>Director<\/option><option>Coordinador de deportes<\/option><option>Profesor<\/option><option>Otro<\/option><\/select><\/label><label>Te interesa<select name=\"interes_centro\"><option value=\"\">Elegir opci\u00f3n<\/option><option>Marcar una cita con los representantes del club<\/option><option>Recibir informaci\u00f3n del proyecto<\/option><\/select><\/label><label>Como quieres que se pongan en contacto contigo<select name=\"preferencia\"><option value=\"\">Elegir opci\u00f3n<\/option><option>WhatsApp<\/option><option>Llamada<\/option><option>Email<\/option><\/select><\/label><label>Mensaje<textarea name=\"mensaje\"><\/textarea><\/label><label class=\"fs-contact-check\">Acepto que el club use estos datos solo para responder a esta solicitud. La documentaci\u00f3n de matr\u00edcula se pedira mas adelante por canal privado, no en este primer formulario p\u00fablico.<input type=\"checkbox\" name=\"consentimiento\" value=\"aceptado\"><\/label><div class=\"fs-contact-actions\"><button class=\"fs-contact-cancel\" type=\"button\">Cancelar<\/button><button class=\"fs-contact-submit\" type=\"submit\" disabled>Enviar WhatsApp<\/button><\/div><\/form><\/div>';\n    document.body.appendChild(modal); var form = modal.querySelector(\"form\"); Array.from(form.querySelectorAll(\"input,select,textarea\")).forEach(function(el){ if (el.type === \"checkbox\") el.checked = false; else if (el.type !== \"hidden\") el.value = \"\"; });\n    form.addEventListener(\"input\",function(e){ var el = e.target; if (!el) return; if (isDateField(el)) formatDateInput(el); refresh(form); },true);\n    form.addEventListener(\"change\",function(e){ refresh(form); if (ready(form,e.target.name)) { var nf = nextField(form,e.target); if (nf) focusField(nf); else if (visibleField(e.target)) focusField(e.target); } else if (visibleField(e.target)) focusField(e.target); },true);\n    form.addEventListener(\"focusout\",function(e){ refresh(form); },true);\n    form.addEventListener(\"keydown\",function(e){ var el = e.target; if (!el) return; if (e.key !== \"Tab\") { if (e.key !== \"Enter\") return; } if (isDateField(el)) { if (!isCompleteDate(el.value || \"\")) { e.preventDefault(); focusField(el); return; } } if (!ready(form,el.name)) return; refresh(form); var next = nextField(form,el); if (next) { e.preventDefault(); focusField(next); } },true);\n    form.querySelector(\".fs-add-minor\").addEventListener(\"click\",function(){ addMinor(form); });\n    form.addEventListener(\"submit\",function(e){\n      e.preventDefault();\n      if (!ready(form,\"consentimiento\")) return;\n      if (form.dataset.fsSubmitLocked === \"1\") return;\n      form.dataset.fsSubmitLocked = \"1\";\n      window.setTimeout(function(){ form.dataset.fsSubmitLocked = \"\"; },3500);\n      function clean(v){ return fsCleanText(v); }\n      function fieldValue(name){ return clean(value(form,name)); }\n      function fsStripGeneratedRequest(v){ var msg = clean(v); var marker = \"Solicitud Club Free Style BJJ\"; var pos = msg.indexOf(marker); if (pos > -1) msg = clean(msg.slice(0,pos)); return msg; }\n      function safeMessage(){ return fsStripGeneratedRequest(fieldValue(\"mensaje\")); }\n      function fsDedupeRequestBody(v){ var text = String(v || \"\").trim(); var marker = \"Solicitud Club Free Style BJJ\"; var first = text.indexOf(marker); if (first > -1) { var second = text.indexOf(marker, first + marker.length); if (second > -1) text = String(text.slice(0,second)).trim(); } return text; }\n      function formatDate(v){\n        v = clean(v);\n        if (v.length === 10 && v.charAt(4) === \"-\" && v.charAt(7) === \"-\") return v;\n        var d = String(v || \"\").replace(\/[^0-9]\/g,\"\");\n        if (d.length === 8) return d.slice(4,8) + \"-\" + d.slice(2,4) + \"-\" + d.slice(0,2);\n        return v;\n      }\n      function programLabel(v){ v = clean(v); if (v.indexOf(\" - \") !== -1) return v.split(\" - \")[0]; return v; }\n      function selfGenderLine(v){ return v === \"Femenino\" ? \"\ud83d\ude4e\u200d\u2640\ufe0f *Genero:* Mujer\" : \"\ud83d\ude4e\u200d\u2642\ufe0f *Genero:* Hombre\"; }\n      function childGenderLine(n,v){ return (v === \"Femenino\" ? \"\ud83d\udc67\" : \"\ud83d\udc66\") + \"*Genero menor \" + n + \"* : \" + clean(v); }\n      function expIcon(v){ return v === \"No\" ? \"\ud83d\udfe5\" : \"\ud83d\udfe9\"; }\n      function addLine(lines,label,name){ var v = fieldValue(name); if (v) lines.push(label + v); }\n      var lines = [];\n      var tipo = fieldValue(\"tipo_interesado\");\n      if (tipo === \"Quiero clases para mi\") {\n        lines.push(\"\ud83d\udccb *_Solicitud Club Free Style BJJ_*\");\n        lines.push(\"\ud83d\udcdd *Interesado:* Clases para mi\");\n        lines.push(\"\u2049\ufe0f *Tipo de consulta:* Clase de prueba\");\n        lines.push(\"\ud83c\udfeb *Centro:* \" + fieldValue(\"centro\"));\n        lines.push(\"\ud83d\udcc6\u23f1\ufe0f *Programa de inter\u00e9s:* \" + programLabel(fieldValue(\"programa\")));\n        lines.push(\"\ud83d\udcac *Preferencia de contacto:* \" + fieldValue(\"preferencia\"));\n        lines.push(\"\ud83d\udcdd *Nombre y apellidos:* \" + fieldValue(\"responsable\") + \" _\" + String.fromCharCode(92) + \"_ *Mayor de edad:* \" + fieldValue(\"mayor_edad\"));\n        lines.push(\"\ud83d\udc23 *Fecha de nacimiento:* \" + formatDate(fieldValue(\"fecha_nacimiento\")));\n        lines.push(selfGenderLine(fieldValue(\"genero\")));\n        lines.push(expIcon(fieldValue(\"experiencia_bjj\")) + \" *Experiencia previa BJJ:* \" + fieldValue(\"experiencia_bjj\"));\n        if (fieldValue(\"experiencia_bjj\") === \"Si\") {\n          if (fieldValue(\"cinturon_bjj\")) lines.push(\"\ud83e\udd4b *Color de cinturon:* \" + fieldValue(\"cinturon_bjj\"));\n          if (fieldValue(\"tiempo_bjj\")) lines.push(\"\ud83d\udcc6 *Tiempo de experiencia:* \" + fieldValue(\"tiempo_bjj\"));\n        }\n        lines.push(\"\ud83e\ude7c *Limitaci\u00f3nes o condici\u00f3nes especiales:* \" + fieldValue(\"limitaciones_fisicas\"));\n        if (fieldValue(\"limitaciones_fisicas\") === \"Si\") { if (fieldValue(\"detalle_limitaciones\")) lines.push(\"\ud83d\udcdd *Detalle de limitaci\u00f3n o condici\u00f3n:* \" + fieldValue(\"detalle_limitaciones\")); }\n        lines.push(\"\ud83d\udce7 *Email:* \" + fieldValue(\"email\"));\n        lines.push(\"\ud83d\udcde *Telefono:* \" + fieldValue(\"telefono\"));\n        lines.push(\"\ud83d\udce8 *Mensaje:* \" + safeMessage());\n      } else if (tipo === \"Busco clases para mi hijo\/a\") {\n        lines.push(\"\ud83d\udccb *Solicitud Club Free Style BJJ*\");\n        lines.push(\"\ud83d\udcdd *Interesado:* Clases para mi hijo\/a\");\n        var rel = fieldValue(\"relacion_tutor\");\n        lines.push(\"\ud83d\udcdd *Nombre padre\/madre tutor* _(\" + (rel || \"indicar si es padre, madre o tutor legal\") + \")_ *:* \" + fieldValue(\"responsable\"));\n        lines.push(\"\ud83d\udc23 *Fecha de nacimiento padre\/madre tutor:* \" + formatDate(fieldValue(\"fecha_nacimiento\")));\n        lines.push(\"*Mayor de edad:* \" + fieldValue(\"mayor_edad\"));\n        for (var m=1;m<=5;m++) {\n          var alumnoName = \"alumno_\" + m;\n          if (!fieldValue(alumnoName)) continue;\n          lines.push(\"\ud83e\uddd2 *Menor \" + m + \":* \" + fieldValue(alumnoName));\n          lines.push(\"\ud83d\udc23 *Fecha de nacimiento menor \" + m + \":* \" + formatDate(fieldValue(m === 1 ? \"fecha_nacimiento_menor\" : \"fecha_nacimiento_menor_\" + m)));\n          lines.push(childGenderLine(m, fieldValue(m === 1 ? \"genero\" : \"genero_menor_\" + m)));\n          var expName = \"experiencia_bjj_menor_\" + m;\n          lines.push(expIcon(fieldValue(expName)) + \" *Experiencia BJJ menor \" + m + \":* \" + fieldValue(expName));\n          if (fieldValue(expName) === \"Si\") {\n            if (fieldValue(\"cinturon_bjj_menor_\" + m)) lines.push(\"\ud83e\udd4b *Color de cinturon menor \" + m + \":* \" + fieldValue(\"cinturon_bjj_menor_\" + m));\n            if (fieldValue(\"tiempo_bjj_menor_\" + m)) lines.push(\"\ud83d\udcc6 *Tiempo de experiencia menor \" + m + \":* \" + fieldValue(\"tiempo_bjj_menor_\" + m));\n          }\n          var limName = \"limitaciones_fisicas_menor_\" + m;\n          lines.push(\"\ud83e\ude7c *Limitaciones menor \" + m + \":* \" + fieldValue(limName));\n          if (fieldValue(limName) === \"Si\") { if (fieldValue(\"detalle_limitaciones_menor_\" + m)) lines.push(\"\ud83d\udcdd *Detalle limitacion menor \" + m + \":* \" + fieldValue(\"detalle_limitaciones_menor_\" + m)); }\n        }\n        lines.push(\"\ud83c\udfeb *Centro:* \" + fieldValue(\"centro\"));\n        lines.push(\"\ud83d\udcc6\u23f1\ufe0f *Programa de interes:* \" + fieldValue(\"programa\"));\n        lines.push(\"\ud83d\udce7 *Email:* \" + fieldValue(\"email\"));\n        lines.push(\"\ud83d\udcde *Telefono:* \" + fieldValue(\"telefono\"));\n        lines.push(\"\ud83d\udcac *Preferencia de contacto:* \" + fieldValue(\"preferencia\"));\n        lines.push(\"\ud83d\udce8 *Mensaje:* \" + safeMessage());\n      } else if (tipo === \"Represento a un centro interesado\") {\n        lines.push(\"\ud83d\udccb *Solicitud Club Free Style BJJ*\");\n        lines.push(\"\ud83d\udcdd *Interesado:* Represento a un centro interesado\");\n        lines.push(\"\ud83d\udcdd *Nombre:* \" + fieldValue(\"responsable\"));\n        lines.push(\"\ud83d\udc23 *Fecha de nacimiento:* \" + formatDate(fieldValue(\"fecha_nacimiento\")));\n        lines.push(\"*Mayor de edad:* \" + fieldValue(\"mayor_edad\"));\n        lines.push(\"\ud83d\udcac *Preferencia de contacto:* \" + fieldValue(\"preferencia\"));\n        lines.push(\"\ud83c\udfeb *Centro representado:* \" + fieldValue(\"nombre_centro\"));\n        lines.push(\"\ud83c\udf10 *link del centro interesado:* \" + (fieldValue(\"link_centro\") || \"(rellenar informacion)\"));\n        lines.push(\"\ud83d\udc64 *Puesto:* \" + fieldValue(\"puesto_centro\"));\n        lines.push(\"\u2049\ufe0f *Interes:* \" + fieldValue(\"interes_centro\"));\n        lines.push(\"\ud83d\udce8 *Mensaje:* \" + safeMessage());\n      }\n      var sep = String.fromCharCode(38);\n      var body = fsDedupeRequestBody(lines.join(String.fromCharCode(10)));\n      var fsNow = Date.now ? Date.now() : new Date().getTime();\n      if (window.__fsLastContactMessage === body) {\n        if (fsNow - (window.__fsLastContactAt || 0) < 3500) return;\n      }\n      window.__fsLastContactMessage = body;\n      window.__fsLastContactAt = fsNow;\n      var submitMode = form.getAttribute(\"data-fs-submit-mode\") || \"whatsapp\";\n      if (submitMode === \"email\") {\n        window.location.href = \"mailto:info@clubfreestylebjj.com?subject=\" + encodeURIComponent(\"Solicitud Club Free Style BJJ\") + sep + \"body=\" + encodeURIComponent(body);\n      } else {\n        window.location.href = \"whatsapp:\/\/send?phone=\" + phone + sep + \"text=\" + encodeURIComponent(body);\n      }\n    });\n    modal.querySelector(\".fs-contact-close\").addEventListener(\"click\",function(){ modal.removeAttribute(\"open\"); }); modal.querySelector(\".fs-contact-cancel\").addEventListener(\"click\",function(){ modal.removeAttribute(\"open\"); }); refresh(form); return modal;\n  }\n  function openModal(link){ var modal = buildModal(); var form = modal.querySelector(\"form\"); var href = link ? (link.getAttribute(\"href\") || \"\") : \"\"; var emailMode = href.indexOf(\"mailto:\") === 0; if (form) { form.setAttribute(\"data-fs-submit-mode\", emailMode ? \"email\" : \"whatsapp\"); var pref = field(form,\"preferencia\"); if (emailMode) { if (pref) pref.value = \"Email\"; } } var submit = modal.querySelector(\".fs-contact-submit\"); if (submit) submit.textContent = emailMode ? \"Enviar email\" : \"Enviar WhatsApp\"; var desc = modal.querySelector(\".fs-contact-head p\"); if (desc) desc.textContent = emailMode ? \"Rellena los datos y prepararemos el email.\" : \"Rellena los datos y prepararemos el mensaje para WhatsApp.\"; modal.setAttribute(\"open\",\"\"); focusField(field(modal,\"tipo_interesado\")); }\n  document.addEventListener(\"click\",function(e){ var link = e.target.closest ? e.target.closest(\"a[href]\") : null; if (!isContactLink(link)) return; e.preventDefault(); e.stopImmediatePropagation(); openModal(link); },true);\n})();\n<\/script>\n\n\n\n\n\n<!-- fs-championships-fit-clean-v1 -->\n\n\n<!-- fs-global-media-text-autofit-v1 -->\n<script id=\"fs-merge-round2-js-v1\">\n(function(){\n  \"use strict\";\n\n  \/* origen: c636990249 - interacciones globales genericas:\n     - abre\/cierra el menu flotante (.fs-floating-menu) y sus ramas (.fs-menu-branch)\n     - flechas de carrusel (.fs-prev \/ .fs-next dentro de [data-carousel])\n     - motor del buscador de campeonatos (#buscador-campeonatos), lee sus datos de un\n       <script id=\"fs-cs-data\"> JSON embebido POR PAGINA -- el motor es generico, el\n       dato vive aparte, por lo que no hay riesgo de mezclar contenido entre paginas *\/\n  if (!window.__fsGlobalInteractionsSafeV2) {\n    window.__fsGlobalInteractionsSafeV2 = true;\n\n    document.addEventListener(\"click\", function(event){\n      var summary = event.target && event.target.closest ? event.target.closest(\".fs-floating-menu > summary\") : null;\n      if (summary) {\n        var menu = summary.parentElement;\n        if (menu && menu.tagName === \"DETAILS\") {\n          event.preventDefault();\n          menu.open = !menu.open;\n        }\n        return;\n      }\n      var branchSummary = event.target && event.target.closest ? event.target.closest(\".fs-menu-branch > summary\") : null;\n      if (branchSummary) {\n        var branch = branchSummary.parentElement;\n        if (branch && branch.tagName === \"DETAILS\") {\n          event.preventDefault();\n          event.stopPropagation();\n          branch.open = !branch.open;\n        }\n        return;\n      }\n      var prev = event.target && event.target.closest ? event.target.closest(\"[data-carousel] .fs-prev\") : null;\n      var next = event.target && event.target.closest ? event.target.closest(\"[data-carousel] .fs-next\") : null;\n      if (!prev && !next) return;\n      var carousel = (prev || next).closest(\"[data-carousel]\");\n      var track = carousel && carousel.querySelector(\".fs-carousel-track\");\n      var slides = carousel ? carousel.querySelectorAll(\".fs-carousel-slide\") : [];\n      if (!track || !slides.length) return;\n      event.preventDefault();\n      event.stopPropagation();\n      var index = Number(carousel.dataset.fsSafeIndex || \"0\") || 0;\n      index = (index + (next ? 1 : -1) + slides.length) % slides.length;\n      carousel.dataset.fsSafeIndex = String(index);\n      track.style.transform = \"translateX(\" + (-index * 100) + \"%)\";\n    }, false);\n\n    function bootChampionshipSearch(){\n      var root = document.getElementById(\"buscador-campeonatos\");\n      if (!root || root.dataset.fsSafeSearch === \"true\") return;\n      var dataEl = document.getElementById(\"fs-cs-data\");\n      var grid = root.querySelector(\"[data-grid]\");\n      var pages = root.querySelector(\"[data-pages]\");\n      var count = root.querySelector(\"[data-count]\");\n      var pageState = root.querySelector(\"[data-page-state]\");\n      var empty = root.querySelector(\"[data-empty]\");\n      var loading = root.querySelector(\"[data-loading]\");\n      if (!dataEl || !grid || !pages) return;\n      var raw;\n      try { raw = JSON.parse(dataEl.textContent || \"{}\"); } catch(error) { return; }\n      var orgs = raw.orgs || {};\n      var today = new Date();\n      today = new Date(today.getFullYear(), today.getMonth(), today.getDate());\n      function mapEvents(list){\n        return (list || []).map(function(x){\n          var org = orgs[x[3]] || [x[3], x[2]];\n          return {t:x[0]||\"\",u:x[1]||\"#\",img:x[2]||\"\",org:x[3]||\"\",on:org[0]||x[3]||\"\",logo:org[1]||\"\",cc:x[4]||\"\",cn:x[5]||\"\",city:x[6]||\"\",prov:x[7]||\"\",loc:x[8]||\"\",start:x[9]||\"\",date:x[10]||\"\",days:x[11],status:x[12]||\"\",type:x[13]||\"\",pk:x[14]||\"unknown\",prize:x[15]||\"\",color:x[16]||\"#111\"};\n        });\n      }\n      var events = mapEvents(raw.events);\n      var fsCsFullLoadState = 0;\n      function ensureFullThenRender(){\n        if (fsCsFullLoadState === 2 || !raw.fullDataUrl) { render(); return; }\n        if (fsCsFullLoadState === 1) return;\n        fsCsFullLoadState = 1;\n        if (loading) loading.style.display = \"\";\n        fetch(raw.fullDataUrl).then(function(r){ return r.text(); }).then(function(text){\n          var fullData = JSON.parse(text);\n          if (fullData.orgs) { Object.keys(fullData.orgs).forEach(function(k){ orgs[k] = fullData.orgs[k]; }); }\n          events = mapEvents(fullData.events);\n          fsCsFullLoadState = 2;\n          render();\n        }).catch(function(){ fsCsFullLoadState = 0; render(); });\n      }\n      var filters = {q:root.querySelector('[data-filter=\"q\"]'),org:root.querySelector('[data-filter=\"org\"]'),country:root.querySelector('[data-filter=\"country\"]'),province:root.querySelector('[data-filter=\"province\"]'),city:root.querySelector('[data-filter=\"city\"]'),type:root.querySelector('[data-filter=\"type\"]'),prize:root.querySelector('[data-filter=\"prize\"]'),sort:root.querySelector('[data-filter=\"sort\"]')};\n      var state = {status:\"upcoming\",page:1,pageSize:24};\n      function norm(v){return String(v||\"\").toLowerCase().normalize(\"NFD\").replace(new RegExp(\"[\" + String.fromCharCode(92) + \"u0300-\" + String.fromCharCode(92) + \"u036f]\", \"g\"), \"\").replace(new RegExp(String.fromCharCode(92) + \"s+\", \"g\"), \" \").trim();}\n      function esc(v){return String(v==null?\"\":v).replace(\/[&<>\"']\/g,function(c){return {\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#039;\"}[c];});}\n      function val(k){return filters[k]?filters[k].value:\"\";}\n      function actual(e){var p=String(e.start||\"\").split(\"-\");if(p.length===3){var d=new Date(Number(p[0]),Number(p[1])-1,Number(p[2]));return d<today?\"past\":\"upcoming\";}return e.status||\"upcoming\";}\n      function match(e){var q=norm(val(\"q\"));var text=norm([e.t,e.on,e.cn,e.cc,e.city,e.prov,e.loc,e.type,e.prize,e.pk].join(\" \"));var org=val(\"org\"),country=val(\"country\"),province=val(\"province\"),city=val(\"city\"),type=val(\"type\"),prizeVal=val(\"prize\");if(actual(e)!==state.status)return false;if(q ? text.indexOf(q)===-1 : false)return false;if(org ? e.org!==org : false)return false;if(country ? norm([e.cc,e.cn].join(\" \")).indexOf(norm(country))===-1 : false)return false;if(province ? norm(e.prov).indexOf(norm(province))===-1 : false)return false;if(city ? norm(e.city).indexOf(norm(city))===-1 : false)return false;if(type ? norm(e.type).indexOf(norm(type))===-1 : false)return false;if(prizeVal ? e.pk!==prizeVal : false)return false;return true;}\n      function sorted(list){var mode=val(\"sort\");return list.slice().sort(function(a,b){if(mode===\"name\")return a.t.localeCompare(b.t);if(mode===\"city\")return (a.city||a.loc).localeCompare(b.city||b.loc);if(mode===\"federation\")return (a.on||\"\").localeCompare(b.on||\"\");var at=a.start?Date.parse(a.start):8640000000000000,bt=b.start?Date.parse(b.start):8640000000000000;return state.status===\"past\"?bt-at:at-bt;});}\n      function days(e){if(e.days===\"\"||e.days==null||isNaN(Number(e.days)))return \"Fecha por confirmar\";var n=Number(e.days);if(actual(e)===\"past\")return Math.abs(n)+\" dias\";if(n===0)return \"hoy\";if(n===1)return \"1 dia\";return n+\" dias\";}\n      function prize(e){return e.prize || (e.pk===\"ranking\"?\"Ranking oficial. Premios no publicados en el resumen.\":\"Premios no publicados en el resumen oficial.\");}\n\n      function card(e){var img=e.img||e.logo||\"\";var logo=!e.img||e.img===e.logo;var bg=(logo ? e.color : false)?' style=\"background:linear-gradient(135deg,'+esc(e.color)+',#111)\"':\"\";return '<a class=\"fs-cs-event-card\" href=\"'+esc(e.u)+'\" target=\"_blank\" rel=\"noopener\"><div class=\"fs-cs-cover '+(logo?'is-logo':'')+'\"'+bg+'><img decoding=\"async\" loading=\"lazy\" src=\"'+esc(img)+'\" alt=\"'+esc(e.t)+'\"><span class=\"fs-cs-cover-tag\">'+esc(e.on)+'<\/span><\/div><div class=\"fs-cs-event-body\"><h3>'+esc(e.t)+'<\/h3><div class=\"fs-cs-meta-line\"><span class=\"fs-cs-country\">'+esc(e.cc||\"--\")+'<\/span><span>'+esc(e.loc||e.city||e.cn||\"Evento oficial\")+'<\/span><\/div><div class=\"fs-cs-tags\"><span class=\"fs-cs-tag gold\">'+esc(actual(e)===\"past\"?\"Pasado\":\"Pr\u00f3ximo\")+'<\/span><span class=\"fs-cs-tag\">'+esc(e.type||\"Evento\")+'<\/span><\/div><div class=\"fs-cs-prize\"><b>Premio<\/b>'+esc(prize(e))+'<\/div><div class=\"fs-cs-date-row\"><span>'+esc(e.date||e.start||\"Fecha oficial\")+'<\/span><span class=\"fs-cs-days\">'+esc(days(e))+'<\/span><\/div><\/div><\/a>';}\n      function renderPages(totalPages){pages.innerHTML=\"\";if(totalPages<=1)return;function add(label,page,active,disabled){var b=document.createElement(\"button\");b.type=\"button\";b.textContent=label;b.disabled=!!disabled;if(active)b.className=\"is-active\";b.addEventListener(\"click\",function(e){e.preventDefault();state.page=page;render();});pages.appendChild(b);}add(\"Anterior\",Math.max(1,state.page-1),false,state.page===1);var start=Math.max(1,state.page-2),end=Math.min(totalPages,start+4);start=Math.max(1,end-4);for(var i=start;i<=end;i++)add(String(i),i,i===state.page,false);add(\"Siguiente\",Math.min(totalPages,state.page+1),false,state.page===totalPages);}\n      function render(){var list=sorted(events.filter(match));var total=list.length;var totalPages=Math.max(1,Math.ceil(total\/state.pageSize));if(state.page>totalPages)state.page=totalPages;grid.innerHTML=list.slice((state.page-1)*state.pageSize,state.page*state.pageSize).map(card).join(\"\");if(count)count.textContent=total+(total===1?\" evento encontrado\":\" eventos encontrados\");if(pageState)pageState.textContent=total?\"P\u00e1gina \"+state.page+\" de \"+totalPages:\"\";if(empty)empty.classList.toggle(\"is-visible\",total===0);if(loading)loading.style.display=\"none\";renderPages(totalPages);}\n      root.querySelectorAll(\"[data-status]\").forEach(function(b){b.addEventListener(\"click\",function(e){e.preventDefault();state.status=b.getAttribute(\"data-status\")||\"upcoming\";state.page=1;root.querySelectorAll(\"[data-status]\").forEach(function(x){x.classList.toggle(\"is-active\",x===b);});render();});});\n      Object.keys(filters).forEach(function(k){if(!filters[k])return;filters[k].addEventListener(\"input\",function(){state.page=1;ensureFullThenRender();});filters[k].addEventListener(\"change\",function(){state.page=1;ensureFullThenRender();});});\n      var reset=root.querySelector(\"[data-reset]\");if(reset)reset.addEventListener(\"click\",function(e){e.preventDefault();Object.keys(filters).forEach(function(k){if(filters[k])filters[k].value=\"\";});state.page=1;render();});\n      root.querySelectorAll(\"[data-quick]\").forEach(function(b){b.addEventListener(\"click\",function(e){e.preventDefault();if(filters.country)filters.country.value=b.getAttribute(\"data-quick\")===\"ES\"?\"ES\":\"\";if(filters.province)filters.province.value=\"\";if(filters.city)filters.city.value=\"\";state.page=1;render();});});\n      root.querySelectorAll(\"[data-quick-city]\").forEach(function(b){b.addEventListener(\"click\",function(e){e.preventDefault();if(filters.q)filters.q.value=b.getAttribute(\"data-quick-city\")||\"\";state.page=1;ensureFullThenRender();});});\n      root.dataset.fsSafeSearch = \"true\";\n      render();\n    }\n    if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", bootChampionshipSearch);\n    else bootChampionshipSearch();\n    window.addEventListener(\"load\", bootChampionshipSearch, {once:true});\n  }\n\n  \/* origen: 635a90b87b - scroll suave a anclas de horarios (.fs-schedule-link[href^=\"#\"]) *\/\n  (function scheduleAnchors(){\n    function init(){\n      document.querySelectorAll('.fs-schedule-link[href^=\"#\"]').forEach(function(link){\n        if(link.dataset.fsScheduleReady==='1')return;\n        link.dataset.fsScheduleReady='1';\n        link.addEventListener('click',function(e){\n          var target=document.querySelector(link.getAttribute('href'));\n          if(!target)return;\n          e.preventDefault();\n          target.scrollIntoView({behavior:'smooth',block:'start'});\n          try{history.pushState(null,'',link.getAttribute('href'));}catch(err){}\n        });\n      });\n    }\n    if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init);\n    else init();\n  })();\n\n  \/* origen: 893dcfc3ae - garantiza que .fs-contact-actions \/ .fs-contact-choice queden al\n     final del formulario de contacto (evita que el reordenado dinamico del formulario los\n     deje en medio) *\/\n  if (!window.__fsContactFormFooterEnforcerSafe) {\n    window.__fsContactFormFooterEnforcerSafe = true;\n    function placeFooter(form){\n      if (!form || !form.querySelectorAll) return;\n      var actions = form.querySelector(\".fs-contact-actions\") || form.querySelector(\".fs-actions\");\n      var choice = form.querySelector(\".fs-contact-choice\");\n      if (actions && actions.parentNode === form && actions.nextElementSibling && actions.nextElementSibling !== choice) {\n        form.appendChild(actions);\n      }\n      if (choice && choice.parentNode === form && choice.nextElementSibling) {\n        form.appendChild(choice);\n      }\n    }\n    function scanFooters(){\n      document.querySelectorAll(\"form.fs-contact-form, .fs-contact-modal form, .fs-form-disclosure form, .fsbjj form.fs-form\").forEach(placeFooter);\n    }\n    document.addEventListener(\"change\", function(event){\n      var form = event.target && event.target.closest ? event.target.closest(\"form\") : null;\n      if (form) window.setTimeout(function(){ placeFooter(form); }, 40);\n    }, true);\n    if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", scanFooters);\n    else scanFooters();\n    window.addEventListener(\"load\", scanFooters, {once:true});\n  }\n\n  \/* origen: e186ccec01 - texto\/estado del boton de envio segun modo (WhatsApp vs email) y\n     segun si el checkbox de consentimiento esta marcado. Respeta la botonera de eleccion\n     (.fs-contact-choice) -- NO la oculta ni la fuerza, Marcelo confirmo que debe conservarse. *\/\n  if (!window.__fsSubmitModeLabelFix) {\n    window.__fsSubmitModeLabelFix = true;\n    function fixSubmitLabels(){\n      document.querySelectorAll('form.fs-contact-form, .fs-contact-modal form').forEach(function(form){\n        var submit = form.querySelector('.fs-contact-submit');\n        if (!submit) return;\n        var emailMode = form.getAttribute('data-fs-submit-mode') === 'email';\n        submit.textContent = emailMode ? 'Enviar email' : 'Enviar WhatsApp';\n        var consent = form.querySelector('[name=\"consentimiento\"]');\n        if (consent) {\n          submit.disabled = !consent.checked;\n          submit.setAttribute('aria-disabled', submit.disabled ? 'true' : 'false');\n        }\n      });\n    }\n    document.addEventListener('click', function(){ setTimeout(fixSubmitLabels, 90); }, true);\n    document.addEventListener('change', fixSubmitLabels, true);\n    document.addEventListener('input', fixSubmitLabels, true);\n    if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', fixSubmitLabels);\n    else fixSubmitLabels();\n    window.addEventListener('load', fixSubmitLabels, { once:true });\n  }\n\n  \/* origen: ee8c24a4c8 - envuelve formularios .fsbjj form.fs-form en un <details> colapsable\n     (no toca los que ya viven dentro de .fs-form-disclosure) *\/\n  if (!window.__fsCollapsibleFormsReady) {\n    window.__fsCollapsibleFormsReady = true;\n    function titleFor(form){\n      var section = form.closest(\"section\");\n      var heading = section && section.querySelector(\"h2,h3\");\n      var submit = form.querySelector('button[type=\"submit\"],input[type=\"submit\"]');\n      var text = heading ? heading.textContent.trim() : \"\";\n      if (!text && submit) text = submit.textContent || submit.value || \"\";\n      return text || \"Formulario\";\n    }\n    function makeCollapsible(){\n      document.querySelectorAll(\".fsbjj form.fs-form\").forEach(function(form){\n        if (form.dataset.fsCollapsibleReady === \"true\") return;\n        if (form.closest(\".fs-form-disclosure\")) return;\n        form.dataset.fsCollapsibleReady = \"true\";\n        var details = document.createElement(\"details\");\n        details.className = \"fs-form-disclosure\";\n        var summary = document.createElement(\"summary\");\n        summary.textContent = titleFor(form);\n        form.parentNode.insertBefore(details, form);\n        details.appendChild(summary);\n        details.appendChild(form);\n      });\n    }\n    if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", makeCollapsible);\n    else makeCollapsible();\n    window.addEventListener(\"load\", makeCollapsible, {once:true});\n  }\n\n  \/* origen: 59f89a4f69 - recorta el credito de Kadence en el footer nativo despues del guion *\/\n  (function trimKadenceCredit(){\n    function trimKadenceCreditAfterDash(){\n      document.querySelectorAll('.site-footer .footer-html-inner p, .site-footer .site-info p').forEach(function(item){\n        var text = (item.textContent || '').replace(new RegExp(String.fromCharCode(92) + \"s+\", \"g\"), \" \").trim();\n        if (!text.includes('Club Free Style BJJ') || !text.includes(' - ')) return;\n        item.textContent = text.split(' - ')[0].trim();\n      });\n    }\n    trimKadenceCreditAfterDash();\n    document.addEventListener('DOMContentLoaded', trimKadenceCreditAfterDash);\n    window.addEventListener('load', trimKadenceCreditAfterDash);\n  })();\n\n})();\n\n<\/script>\n<!-- \/wp:post-content --><!-- \/wp:freeform --><!-- \/wp:freeform --><!-- \/wp:freeform -->\n\n<style id=\"fs-header-flow-repair-global-v1\">\n\/* FS_HEADER_FLOW_REPAIR_GLOBAL_V1 \u2014 2026-08-05\n   Elimina huecos blancos entre cabecera y hero: cabecera sticky, sin spacer fantasma. *\/\nhtml, body{scroll-padding-top:78px!important;}\nbody .fs-header-v3{position:sticky!important;top:0!important;left:auto!important;right:auto!important;width:100%!important;z-index:9999!important;margin:0!important;transform:none!important;}\nbody.admin-bar .fs-header-v3{top:32px!important;}\nbody .fs-header-v3-spacer,body .fsbjj > .fs-header-v3-spacer,body .fsbjj > .fs-header-v3-spacer + style + .fs-header-v3-spacer{display:none!important;height:0!important;min-height:0!important;max-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;}\nbody .fsbjj{padding-top:0!important;margin-top:0!important;}\nbody .fsbjj > .hero:first-of-type,body .fsbjj > .program-hero:first-of-type,body .fsbjj > section:first-of-type,body main .hero:first-child,body main section:first-child{margin-top:0!important;}\nbody .hero,body .program-hero,body .fs-hero{margin-top:0!important;}\nbody .hero .wrap,body .hero .hw,body .hero .hw.in,body .program-hero .wrap{padding-top:clamp(36px,5.5vw,68px)!important;padding-bottom:clamp(40px,5.5vw,72px)!important;}\nbody.home .hero .hw.in{padding-top:clamp(36px,4.8vw,58px)!important;padding-bottom:clamp(40px,5vw,64px)!important;}\nbody.home .hero h1,body .hero h1{margin-top:0!important;}\n@media (max-width:782px){body.admin-bar .fs-header-v3{top:46px!important;}html, body{scroll-padding-top:68px!important;}body .fs-header-v3{min-height:58px!important;}body .hero .wrap,body .hero .hw,body .hero .hw.in,body .program-hero .wrap{padding-top:30px!important;padding-bottom:38px!important;}}\n<\/style>\n\n<style id=\"fs-hero-rhythm-repair-global-v1\">\n\/* FS_HERO_RHYTHM_REPAIR_GLOBAL_V1 \u2014 2026-08-05\n   Ritmo visual final: menos aire negro, t\u00edtulos sin corte, tarjetas m\u00e1s cerca de la hero. *\/\nbody .fsbjj .hero{min-height:unset!important;padding:0!important;overflow:hidden!important;}\nbody .fsbjj .hero .wrap,body .fsbjj .hero .wrap.split,body .fsbjj .hero .hw,body .fsbjj .hero .hw.in{box-sizing:border-box!important;width:min(1180px,calc(100% - 40px))!important;max-width:1180px!important;margin-left:auto!important;margin-right:auto!important;padding:clamp(30px,4vw,48px) clamp(20px,3vw,34px) clamp(38px,4.4vw,56px)!important;}\nbody .fsbjj .hero .wrap.split{display:grid!important;grid-template-columns:minmax(0,0.92fr) minmax(320px,1.08fr)!important;gap:clamp(28px,4vw,58px)!important;align-items:center!important;}\nbody .fsbjj .hero h1{max-width:820px!important;margin:0!important;font-size:clamp(40px,4.7vw,66px)!important;line-height:.98!important;letter-spacing:-.055em!important;text-wrap:balance!important;overflow-wrap:normal!important;}\nbody .fsbjj .hero p{max-width:650px!important;margin:clamp(14px,1.8vw,22px) 0 0!important;font-size:clamp(16px,1.45vw,19px)!important;line-height:1.55!important;}\nbody .fsbjj .hero img:not(.bg),body .fsbjj .hero .visual img,body .fsbjj .hero .media img{display:block!important;width:100%!important;max-height:clamp(260px,34vw,390px)!important;object-fit:cover!important;border-radius:22px!important;}\nbody .fsbjj .hero .eyebrow,body .fsbjj .hero .badge,body .fsbjj .hero .kicker{margin-bottom:12px!important;}\nbody .fsbjj section:not(.hero){padding-top:clamp(34px,4.5vw,58px)!important;padding-bottom:clamp(42px,5vw,72px)!important;}\nbody .fsbjj .hero + section,body .fsbjj .hero + style + section{padding-top:clamp(28px,3.2vw,44px)!important;margin-top:0!important;}\nbody .fsbjj section > .wrap,body .fsbjj .section .wrap{width:min(1180px,calc(100% - 40px))!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box!important;}\nbody .fsbjj .cards,body .fsbjj .grid,body .fsbjj .program-grid{gap:clamp(18px,2.6vw,32px)!important;}\n@media (max-width:900px){\n  body .fsbjj .hero .wrap.split{grid-template-columns:1fr!important;gap:24px!important;}\n  body .fsbjj .hero .wrap,body .fsbjj .hero .wrap.split,body .fsbjj .hero .hw,body .fsbjj .hero .hw.in{width:min(100%,calc(100% - 28px))!important;padding:28px 14px 36px!important;}\n  body .fsbjj .hero h1{font-size:clamp(34px,11vw,48px)!important;line-height:1.02!important;letter-spacing:-.045em!important;}\n  body .fsbjj .hero p{font-size:16px!important;line-height:1.48!important;}\n  body .fsbjj .hero img:not(.bg),body .fsbjj .hero .visual img,body .fsbjj .hero .media img{max-height:260px!important;border-radius:18px!important;}\n  body .fsbjj section:not(.hero){padding-top:30px!important;padding-bottom:44px!important;}\n}\n<\/style>\n\n<style id=\"fs-section-alignment-repair-global-v1\">\n\/* FS_SECTION_ALIGNMENT_REPAIR_GLOBAL_V1 \u2014 2026-08-05\n   Alinea r\u00f3tulos\/secciones y elimina aire excesivo tras las heroes. *\/\nbody .fsbjj .hero + section,body .fsbjj .hero + style + section{padding-top:22px!important;}\nbody .fsbjj section:not(.hero){padding-top:clamp(24px,3vw,42px)!important;padding-bottom:clamp(34px,4vw,58px)!important;}\nbody .fsbjj section > :not(style):not(script):not(.wrap):not(.container):not(.fs-header-v3):not(.fs-header-v3-spacer){box-sizing:border-box!important;width:min(1180px,calc(100% - 40px))!important;max-width:1180px!important;margin-left:auto!important;margin-right:auto!important;}\nbody .fsbjj section > .wrap,body .fsbjj section > .container{width:min(1180px,calc(100% - 40px))!important;max-width:1180px!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box!important;}\nbody .fsbjj .choice-grid,body .fsbjj .cards,body .fsbjj .grid{margin-top:clamp(16px,2vw,26px)!important;}\nbody .fsbjj .card,body .fsbjj .choice-card,body .fsbjj article{min-height:unset!important;}\nbody .fsbjj .choice-card{padding:clamp(22px,3vw,34px)!important;}\n@media (max-width:900px){body .fsbjj .hero + section,body .fsbjj .hero + style + section{padding-top:18px!important;}body .fsbjj section > :not(style):not(script):not(.wrap):not(.container):not(.fs-header-v3):not(.fs-header-v3-spacer),body .fsbjj section > .wrap,body .fsbjj section > .container{width:min(100%,calc(100% - 28px))!important;}body .fsbjj .choice-card{padding:22px!important;}}\n<\/style>\n\n<style id=\"fs-fullbleed-alignment-repair-global-v1\">\n\/* FS_FULLBLEED_ALIGNMENT_REPAIR_GLOBAL_V1 \u2014 2026-08-05\n   Repara secciones desplazadas: fondo a ancho completo y contenido centrado. *\/\nbody .fsbjj > .fs-header-v3,body .fsbjj > .hero,body .fsbjj > .section,body .fsbjj > section{box-sizing:border-box!important;width:100vw!important;max-width:100vw!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;left:auto!important;right:auto!important;}\nbody .fsbjj > .fs-header-v3 .fs-header-v3-inner,body .fsbjj > .hero > .wrap,body .fsbjj > .hero .wrap,body .fsbjj > .hero .wrap.split,body .fsbjj > .section > .wrap,body .fsbjj > section > .wrap{box-sizing:border-box!important;width:min(1180px,calc(100vw - 56px))!important;max-width:1180px!important;margin-left:auto!important;margin-right:auto!important;}\nbody .fsbjj > .hero .wrap.split{padding-left:0!important;padding-right:0!important;}\nbody .fsbjj > .section > .wrap,body .fsbjj > section > .wrap{padding-left:0!important;padding-right:0!important;}\n@media (max-width:900px){body .fsbjj > .hero > .wrap,body .fsbjj > .hero .wrap,body .fsbjj > .hero .wrap.split,body .fsbjj > .section > .wrap,body .fsbjj > section > .wrap{width:min(100vw,calc(100vw - 28px))!important;}body .fsbjj > .hero .wrap.split{padding-left:0!important;padding-right:0!important;}}\n<\/style>\n\n<style id=\"fs-hard-section-spacing-repair-global-v1\">\n\/* FS_HARD_SECTION_SPACING_REPAIR_GLOBAL_V1 \u2014 2026-08-05\n   \u00daltima capa: secciones directas con padding y alineaci\u00f3n reales, no heredados del tema. *\/\n@media (min-width:901px){\n  body .fsbjj > .section,body .fsbjj > section.section{padding-top:24px!important;padding-bottom:48px!important;}\n  body .fsbjj > .hero + .section,body .fsbjj > .hero + style + .section,body .fsbjj > .hero + style + style + .section{padding-top:18px!important;}\n  body .fsbjj > .section > .wrap,body .fsbjj > section.section > .wrap{width:min(1180px,calc(100vw - 68px))!important;max-width:1180px!important;margin-left:calc((100vw - min(1180px,calc(100vw - 68px)))\/2 + 34px)!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important;}\n}\n@media (max-width:900px){\n  body .fsbjj > .section,body .fsbjj > section.section{padding-top:18px!important;padding-bottom:38px!important;}\n  body .fsbjj > .section > .wrap,body .fsbjj > section.section > .wrap{width:calc(100vw - 28px)!important;margin-left:14px!important;margin-right:14px!important;padding-left:0!important;padding-right:0!important;}\n}\n<\/style>\n\n<style id=\"fs-section-margin-valid-repair-global-v1\">\n\/* FS_SECTION_MARGIN_VALID_REPAIR_GLOBAL_V1 \u2014 2026-08-05\n   Reemplaza f\u00f3rmula compleja por margen CSS v\u00e1lido para alinear wraps con hero. *\/\n@media (min-width:901px){\n  body .fsbjj > .section > .wrap,body .fsbjj > section.section > .wrap{width:1180px!important;max-width:calc(100vw - 68px)!important;margin-left:calc((100vw - 1180px)\/2 + 34px)!important;margin-right:auto!important;}\n}\n@media (min-width:901px) and (max-width:1248px){\n  body .fsbjj > .section > .wrap,body .fsbjj > section.section > .wrap{width:calc(100vw - 68px)!important;margin-left:68px!important;margin-right:auto!important;}\n}\n@media (max-width:900px){\n  body .fsbjj > .section > .wrap,body .fsbjj > section.section > .wrap{width:calc(100vw - 28px)!important;max-width:calc(100vw - 28px)!important;margin-left:14px!important;margin-right:14px!important;}\n}\n<\/style>\n","protected":false},"excerpt":{"rendered":"<p>Jiu-Jitsu infantil y de Primaria en Salesianos Paseo (Madrid): juego, coordinaci\u00f3n, respeto y confianza. Extraescolar con recogida en comedor.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-7575","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/clubfreestylebjj.com\/index.php\/wp-json\/wp\/v2\/pages\/7575","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/clubfreestylebjj.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/clubfreestylebjj.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/clubfreestylebjj.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/clubfreestylebjj.com\/index.php\/wp-json\/wp\/v2\/comments?post=7575"}],"version-history":[{"count":0,"href":"https:\/\/clubfreestylebjj.com\/index.php\/wp-json\/wp\/v2\/pages\/7575\/revisions"}],"wp:attachment":[{"href":"https:\/\/clubfreestylebjj.com\/index.php\/wp-json\/wp\/v2\/media?parent=7575"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}