.mbjj-block{box-sizing:border-box}.mbjj-block *,.mbjj-block *:before,.mbjj-block *:after{box-sizing:border-box}.mbjj-panel,.mbjj-hero,.mbjj-join-cta,.mbjj-pathway{--radius:28px;background:var(--mbjj-paper,#fafaf8);border:1px solid var(--mbjj-line,#e6e6e6);border-radius:var(--radius);padding:clamp(22px,4vw,52px);margin:clamp(22px,4vw,36px) 0;color:var(--mbjj-ink,#111);position:relative;overflow:hidden}.mbjj-panel{box-shadow:0 16px 35px rgba(0,0,0,.05)}.mbjj-panel:before,.mbjj-join-cta:before,.mbjj-pathway:before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--belt,var(--mbjj-accent,#e11d2e))}.mbjj-eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:.76rem;line-height:1.3;font-weight:900;color:var(--mbjj-accent,#e11d2e);margin-bottom:8px}.mbjj-panel h1,.mbjj-panel h2,.mbjj-hero h1,.mbjj-join-cta h2,.mbjj-pathway h2{font-size:clamp(2.1rem,6vw,5rem);line-height:.9;letter-spacing:-.065em;margin:.08em 0 .2em;color:var(--mbjj-ink,#111);font-weight:950}.mbjj-panel h3{font-size:1.35rem;line-height:1;margin:.2em 0 .45em;letter-spacing:-.035em}.mbjj-lead,.mbjj-hero p,.mbjj-join-cta p{max-width:760px;color:var(--mbjj-muted,#444);font-size:clamp(1rem,2vw,1.18rem);line-height:1.55}.mbjj-small-note{font-size:.9rem;color:var(--mbjj-muted,#444)}.mbjj-section-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:18px}.mbjj-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:18px}.mbjj-button,.mbjj-filter-set button{appearance:none;border:2px solid var(--mbjj-ink,#111);background:var(--mbjj-ink,#111);color:#fff!important;text-decoration:none!important;border-radius:999px;padding:10px 16px;font-weight:900;font-size:.95rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease}.mbjj-button:hover,.mbjj-filter-set button:hover,.mbjj-filter-set button.active{transform:translateY(-1px);box-shadow:0 8px 18px rgba(0,0,0,.14);background:var(--belt,var(--mbjj-accent,#e11d2e));border-color:var(--belt,var(--mbjj-accent,#e11d2e));color:#fff!important}.mbjj-button-outline{background:transparent;color:var(--mbjj-ink,#111)!important}.mbjj-button-outline:hover{background:var(--mbjj-ink,#111);border-color:var(--mbjj-ink,#111);color:#fff!important}.mbjj-empty{background:#fff;border:1px dashed var(--mbjj-line,#e6e6e6);border-radius:18px;padding:18px;color:var(--mbjj-muted,#444)}
.mbjj-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);gap:clamp(20px,4vw,54px);align-items:center;background:#fff}.mbjj-hero:after{content:"";position:absolute;right:-80px;top:-90px;width:260px;height:260px;border-radius:50%;border:42px solid var(--mbjj-paper,#fafaf8);z-index:0}.mbjj-hero>*{position:relative;z-index:1}.mbjj-hero-belts{display:grid;gap:14px}.mbjj-hero-belts span{height:44px;border:2px solid var(--mbjj-ink,#111);border-radius:999px;background:var(--belt);box-shadow:inset 0 -8px rgba(0,0,0,.16)}.mbjj-hero-belts span:last-child{box-shadow:inset 0 -8px rgba(255,255,255,.12)}
.mbjj-filter-set{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 24px}.mbjj-filter-set button{background:#fff;color:var(--mbjj-ink,#111)!important;border-color:var(--mbjj-line,#e6e6e6);box-shadow:none}.mbjj-dot{width:12px;height:12px;border-radius:50%;background:var(--dot);border:1px solid rgba(0,0,0,.25);display:inline-block}.is-hidden{display:none!important}
.mbjj-belt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.mbjj-member-card,.mbjj-tech-card,.mbjj-plan,.mbjj-announcement,.mbjj-milestone,.mbjj-stat-card,.mbjj-login-box,.mbjj-dashboard{background:#fff;border:1px solid var(--mbjj-line,#e6e6e6);border-radius:22px;box-shadow:0 12px 24px rgba(0,0,0,.04)}.mbjj-member-card,.mbjj-tech-card{overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.mbjj-member-card:hover,.mbjj-tech-card:hover{transform:translateY(-2px);box-shadow:0 18px 34px rgba(0,0,0,.08);border-color:var(--belt)}.mbjj-card-head,.mbjj-tech-head{width:100%;border:0;background:transparent;color:var(--mbjj-ink,#111);display:flex;gap:14px;align-items:center;text-align:left;padding:16px;cursor:pointer}.mbjj-card-head:before,.mbjj-tech-head:before{content:"";align-self:stretch;width:6px;border-radius:999px;background:var(--belt);flex:0 0 auto}.mbjj-avatar{width:58px;height:58px;border-radius:50%;object-fit:cover;border:3px solid var(--belt);flex:0 0 auto;background:#fff}.mbjj-avatar-fallback{display:grid;place-items:center;color:var(--mbjj-ink,#111);font-size:1.5rem;font-weight:950}.mbjj-card-title{display:grid;gap:3px;min-width:0;flex:1}.mbjj-card-title strong{font-size:1.08rem;line-height:1.05}.mbjj-card-title em,.mbjj-tech-head em,.mbjj-tech-head small{font-style:normal;color:var(--mbjj-muted,#444);font-size:.86rem}.mbjj-plus{margin-left:auto;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--mbjj-paper,#fafaf8);font-weight:950}.is-open .mbjj-plus{background:var(--belt);color:#fff}.mbjj-card-details{border-top:1px solid var(--mbjj-line,#e6e6e6);padding:16px 18px 18px}.mbjj-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 14px}.mbjj-mini-stats div,.mbjj-stat-card{background:var(--mbjj-paper,#fafaf8);border-radius:16px;padding:12px}.mbjj-mini-stats dt,.mbjj-stat-card span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--mbjj-muted,#444);font-weight:900}.mbjj-mini-stats dd{margin:3px 0 0;font-weight:900}.mbjj-stat-card strong{display:block;font-size:1.5rem;line-height:1.1;margin-top:6px}.mbjj-detail-line{margin:.55em 0;color:var(--mbjj-muted,#444)}.mbjj-quote{margin:12px 0;padding:12px 14px;border-left:5px solid var(--belt);background:var(--mbjj-paper,#fafaf8);border-radius:0 14px 14px 0;color:var(--mbjj-muted,#444)}.mbjj-list-block{margin:12px 0}.mbjj-list-block strong{display:block;margin-bottom:6px}.mbjj-list-block ul{padding-left:1.2em;margin:.3em 0}.mbjj-list-block li{margin:.2em 0}.mbjj-belt{display:block;width:150px;height:25px;border-radius:999px;background:var(--belt);border:2px solid var(--mbjj-ink,#111);position:relative;box-shadow:inset 0 -5px rgba(0,0,0,.18);overflow:hidden}.mbjj-belt-small{width:118px;height:19px}.mbjj-belt-band{position:absolute;right:10px;top:2px;bottom:2px;width:46px;background:#111;border-radius:5px;display:flex;align-items:center;justify-content:center;gap:3px}.mbjj-belt-band i{display:block;width:4px;height:14px;background:#fff;border-radius:2px}.mbjj-belt-small .mbjj-belt-band{right:7px;width:36px}.mbjj-belt-small .mbjj-belt-band i{height:10px;width:3px}
.mbjj-memberships,.mbjj-technique-grid,.mbjj-milestone-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin-top:22px}.mbjj-plan,.mbjj-milestone{padding:24px;position:relative;overflow:hidden}.mbjj-card-strip{position:absolute;left:0;right:0;top:0;height:10px;background:var(--belt)}.mbjj-plan h3{padding-right:90px}.mbjj-plan.is-popular{border-color:var(--belt);box-shadow:0 18px 34px rgba(0,0,0,.08)}.mbjj-badge,.mbjj-badge-inline,.mbjj-tag{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:.72rem;line-height:1;text-transform:uppercase;letter-spacing:.08em;font-weight:950;background:var(--belt,var(--mbjj-accent));color:#fff}.mbjj-badge{position:absolute;right:16px;top:18px}.mbjj-badge-inline{margin-bottom:12px}.mbjj-tag{background:var(--mbjj-ink,#111)}.mbjj-price{font-size:2.45rem;font-weight:950;letter-spacing:-.06em;line-height:1;color:var(--mbjj-ink,#111);margin:12px 0 4px}.mbjj-price-detail,.mbjj-audience{color:var(--mbjj-muted,#444)}.mbjj-audience{font-weight:900;color:var(--belt,var(--mbjj-accent))}.mbjj-plan-body{margin-top:12px}.mbjj-plan .mbjj-list-block strong:empty{display:none}
.mbjj-tech-head{align-items:stretch}.mbjj-tech-image,.mbjj-tech-placeholder{width:92px;min-height:92px;border-radius:18px;border:1px solid var(--mbjj-line,#e6e6e6);background:var(--mbjj-paper,#fafaf8);object-fit:cover;flex:0 0 auto}.mbjj-tech-placeholder{display:grid;place-items:center;position:relative;overflow:hidden}.mbjj-tech-placeholder:before,.mbjj-tech-placeholder:after,.mbjj-tech-placeholder span{content:"";position:absolute;border:3px solid var(--mbjj-ink,#111);border-radius:999px;opacity:.75}.mbjj-tech-placeholder:before{width:45px;height:26px;transform:rotate(-18deg)}.mbjj-tech-placeholder:after{width:62px;height:28px;transform:rotate(19deg);top:44px}.mbjj-tech-placeholder span{width:14px;height:14px;top:24px;left:26px;background:var(--belt)}.mbjj-tech-head span:nth-child(3),.mbjj-tech-head span:nth-child(2){display:grid;gap:4px;align-content:center;flex:1}.mbjj-tech-head strong{font-size:1.12rem;line-height:1.05}.mbjj-tech-body{color:var(--mbjj-muted,#444)}
.mbjj-announcement-list{display:grid;gap:14px}.mbjj-announcement{padding:18px;display:flex;align-items:center;justify-content:space-between;gap:16px}.mbjj-announcement.is-pinned{border-color:var(--mbjj-accent,#e11d2e);box-shadow:inset 7px 0 var(--mbjj-accent,#e11d2e)}.mbjj-announcement h3{margin:.5em 0 .1em}.mbjj-announcement time,.mbjj-milestone time{display:block;color:var(--mbjj-muted,#444);font-weight:800;font-size:.9rem;margin:.2em 0 .7em}.mbjj-milestone{display:grid;gap:12px}.mbjj-milestone-image{width:100%;height:180px;object-fit:cover;border-radius:16px;margin-top:6px}.mbjj-milestone .mbjj-card-strip{height:8px}
.mbjj-login-box,.mbjj-dashboard{padding:20px;max-width:980px}.mbjj-login-box input[type=text],.mbjj-login-box input[type=password],.mbjj-form input[type=text],.mbjj-form input[type=date],.mbjj-form textarea{width:100%;border:1px solid var(--mbjj-line,#e6e6e6);border-radius:14px;padding:11px;background:#fff;color:var(--mbjj-ink,#111)}.mbjj-login-box .login-submit input{border:2px solid var(--mbjj-ink,#111);border-radius:999px;background:var(--mbjj-ink,#111);color:#fff;font-weight:900;padding:10px 16px}.mbjj-dashboard-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}.mbjj-dashboard-head h3{font-size:2rem}.mbjj-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:18px 0}.mbjj-profile-editor{margin-top:18px;border:1px solid var(--mbjj-line,#e6e6e6);border-radius:18px;padding:16px;background:var(--mbjj-paper,#fafaf8)}.mbjj-profile-editor summary{font-weight:950;cursor:pointer}.mbjj-form label{display:grid;gap:6px;font-weight:800;color:var(--mbjj-muted,#444)}.mbjj-form p{margin:12px 0}.mbjj-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:16px 0}.mbjj-check-grid label{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--mbjj-line,#e6e6e6);border-left:6px solid var(--belt);border-radius:14px;padding:10px;font-weight:800}.mbjj-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.mbjj-admin-grid input,.mbjj-admin-grid select{width:100%}
.mbjj-style-tokens .mbjj-swatches{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:20px 0}.mbjj-swatches span{height:110px;border-radius:20px;background:var(--sw);display:flex;align-items:flex-end;padding:12px;border:1px solid rgba(0,0,0,.18);font-weight:950;color:#fff;box-shadow:inset 0 -48px 50px rgba(0,0,0,.24)}.mbjj-pathway{background:#fff}.mbjj-pathway ol{list-style:none;display:flex;flex-wrap:wrap;gap:12px;padding:0;margin:22px 0 0;counter-reset:path}.mbjj-pathway li{counter-increment:path;display:flex;align-items:center;gap:12px}.mbjj-pathway li:not(:last-child):after{content:"→";font-weight:950;font-size:1.4rem}.mbjj-pathway li span{display:inline-flex;align-items:center;gap:8px;background:var(--mbjj-paper,#fafaf8);border:1px solid var(--mbjj-line,#e6e6e6);border-radius:999px;padding:12px 16px;font-weight:950}.mbjj-pathway li span:before{content:counter(path);width:24px;height:24px;border-radius:50%;background:var(--mbjj-ink,#111);color:#fff;display:grid;place-items:center;font-size:.78rem}.mbjj-join-cta{display:flex;justify-content:space-between;align-items:center;gap:24px;background:#fff}.mbjj-join-cta h2{font-size:clamp(1.8rem,4vw,3.7rem)}
@media(max-width:760px){.mbjj-hero,.mbjj-join-cta{grid-template-columns:1fr;display:block}.mbjj-hero-belts{margin-top:24px}.mbjj-section-heading,.mbjj-announcement,.mbjj-dashboard-head{display:block}.mbjj-mini-stats{grid-template-columns:1fr}.mbjj-panel,.mbjj-hero,.mbjj-join-cta,.mbjj-pathway{border-radius:20px}.mbjj-card-head,.mbjj-tech-head{align-items:flex-start}.mbjj-tech-image,.mbjj-tech-placeholder{width:72px;min-height:72px}.mbjj-pathway ol{display:grid}.mbjj-pathway li:not(:last-child):after{content:"↓";padding-left:18px}}

/* v0.3 kids belt system */
.mbjj-belt-end{position:absolute;left:0;top:0;bottom:0;width:38%;background:transparent;border-right:1px solid rgba(0,0,0,.2);z-index:1}.mbjj-belt-white-end .mbjj-belt-end{background:#fff}.mbjj-belt-black-end .mbjj-belt-end{background:#111}.mbjj-belt-band{z-index:2}.mbjj-belt-solid .mbjj-belt-end{display:none}.mbjj-belt-wall-kids{--belt:var(--mbjj-accent,#e11d2e)}.mbjj-belt-wall-kids:before{background:linear-gradient(180deg,#c9c9c9,#ffd334,#f97316,#16a34a)}.mbjj-belt-wall-adults:before{background:linear-gradient(180deg,#f5f5f5,#2563eb,#7c3aed,#7c2d12,#111)}
.mbjj-kids-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin:22px 0}.mbjj-kids-card{background:#fff;border:1px solid var(--mbjj-line,#e6e6e6);border-radius:22px;box-shadow:0 12px 24px rgba(0,0,0,.04);padding:24px;position:relative;overflow:hidden}.mbjj-kids-card h3{margin-top:8px}.mbjj-kids-card p{color:var(--mbjj-muted,#444);line-height:1.55}.mbjj-kids-program>.mbjj-belt-ladder{margin-top:24px;background:#fff}.mbjj-belt-ladder:before{background:linear-gradient(180deg,#f5f5f5,#c9c9c9,#ffd334,#f97316,#16a34a,#2563eb,#7c3aed,#7c2d12,#111)}.mbjj-ladder-block{margin-top:24px}.mbjj-ladder-block h3{margin-bottom:12px}.mbjj-ladder-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:12px}.mbjj-ladder-item{display:grid;gap:8px;justify-items:center;align-content:start;background:#fff;border:1px solid var(--mbjj-line,#e6e6e6);border-radius:18px;padding:14px;min-height:88px}.mbjj-ladder-item small{font-weight:900;text-align:center;color:var(--mbjj-muted,#444);line-height:1.15}.mbjj-swatches span[style*="#111111"],.mbjj-swatches span[style*="#7c2d12"],.mbjj-swatches span[style*="#2563eb"],.mbjj-swatches span[style*="#7c3aed"]{color:#fff}.mbjj-swatches span[style*="#fafaf8"],.mbjj-swatches span[style*="#ffd334"],.mbjj-swatches span[style*="#f5f5f5"]{color:#111;box-shadow:inset 0 -48px 50px rgba(255,255,255,.28)}
@media(max-width:760px){.mbjj-ladder-row{grid-template-columns:repeat(2,minmax(0,1fr))}.mbjj-ladder-item .mbjj-belt-small{width:96px}.mbjj-kids-grid{grid-template-columns:1fr}}

/* v0.4 rangatahi + haka */
.mbjj-haka{background:#fff;--belt:var(--mbjj-ink,#111)}
.mbjj-haka:before{background:linear-gradient(180deg,var(--mbjj-ink,#111),var(--mbjj-accent,#e11d2e),var(--mbjj-ink,#111))}
.mbjj-haka-callout{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--mbjj-ink,#111);color:#fff;border-radius:22px;padding:18px 20px;margin:20px 0 22px}
.mbjj-haka-callout strong{font-size:clamp(1.2rem,3vw,2rem);line-height:1;text-transform:uppercase;letter-spacing:-.04em}
.mbjj-haka-callout span{color:rgba(255,255,255,.78);max-width:560px;line-height:1.45}
.mbjj-haka-list{display:grid;gap:12px;counter-reset:haka}
.mbjj-haka-line{counter-increment:haka;display:grid;grid-template-columns:54px 1fr;gap:14px;background:var(--mbjj-paper,#fafaf8);border:1px solid var(--mbjj-line,#e6e6e6);border-radius:22px;padding:16px;position:relative;overflow:hidden}
.mbjj-haka-line:before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:var(--mbjj-ink,#111)}
.mbjj-haka-line.is-leader{border-color:var(--mbjj-accent,#e11d2e);background:#fff}
.mbjj-haka-line.is-leader:before{background:var(--mbjj-accent,#e11d2e)}
.mbjj-haka-number{width:42px;height:42px;border:2px solid var(--mbjj-ink,#111);border-radius:50%;display:grid;place-items:center;background:#fff;font-weight:950;color:var(--mbjj-ink,#111)}
.mbjj-haka-number:after{content:counter(haka)}
.mbjj-haka-line.is-leader .mbjj-haka-number{background:var(--mbjj-accent,#e11d2e);border-color:var(--mbjj-accent,#e11d2e);color:#fff}
.mbjj-haka-main h3{font-size:clamp(1.25rem,2.6vw,2.1rem);line-height:1.05;margin:0 0 8px;letter-spacing:-.045em;color:var(--mbjj-ink,#111)}
.mbjj-haka-line.is-leader .mbjj-haka-main h3{color:var(--mbjj-accent,#e11d2e)}
.mbjj-haka-main h3 span{display:inline-flex;vertical-align:middle;margin-left:8px;border-radius:999px;background:var(--mbjj-accent,#e11d2e);color:#fff;font-size:.68rem;line-height:1;text-transform:uppercase;letter-spacing:.12em;padding:6px 8px;font-weight:950}
.mbjj-haka-translation{font-style:italic;color:var(--mbjj-muted,#444);margin:.25em 0 .6em;line-height:1.45}
.mbjj-haka-action{margin:0;color:var(--mbjj-muted,#444);line-height:1.45;background:#fff;border:1px solid var(--mbjj-line,#e6e6e6);border-radius:14px;padding:10px 12px}
.mbjj-haka-action strong{color:var(--mbjj-ink,#111)}
@media(max-width:760px){.mbjj-haka-callout{display:block}.mbjj-haka-callout span{display:block;margin-top:8px}.mbjj-haka-line{grid-template-columns:1fr}.mbjj-haka-number{width:34px;height:34px}}

/* v0.6 photo / video gallery */
.mbjj-gallery{background:#fff;--belt:var(--mbjj-accent,#e11d2e)}
.mbjj-gallery:before{background:linear-gradient(180deg,#f5f5f5,#2563eb,#7c3aed,#7c2d12,#111)}
.mbjj-gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-top:22px}
.mbjj-gallery-card{background:#fff;border:1px solid var(--mbjj-line,#e6e6e6);border-radius:24px;overflow:hidden;box-shadow:0 12px 24px rgba(0,0,0,.04);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.mbjj-gallery-card:hover{transform:translateY(-2px);box-shadow:0 18px 34px rgba(0,0,0,.08);border-color:var(--mbjj-ink,#111)}
.mbjj-gallery-open{display:block;width:100%;padding:0;border:0;background:transparent;text-align:left;color:var(--mbjj-ink,#111);cursor:pointer}
.mbjj-gallery-media{display:block;position:relative;aspect-ratio:4/3;background:var(--mbjj-paper,#fafaf8);overflow:hidden;border-bottom:1px solid var(--mbjj-line,#e6e6e6)}
.mbjj-gallery-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease,filter .25s ease}
.mbjj-gallery-card:hover .mbjj-gallery-media img{transform:scale(1.035);filter:contrast(1.04)}
.mbjj-gallery-placeholder{display:grid;place-items:center;width:100%;height:100%;position:relative;background:repeating-linear-gradient(135deg,#fff 0,#fff 12px,var(--mbjj-paper,#fafaf8) 12px,var(--mbjj-paper,#fafaf8) 24px)}
.mbjj-gallery-placeholder:before,.mbjj-gallery-placeholder:after,.mbjj-gallery-placeholder span{content:"";position:absolute;border:3px solid var(--mbjj-ink,#111);border-radius:999px;opacity:.8}
.mbjj-gallery-placeholder:before{width:92px;height:42px;transform:rotate(-16deg);left:22%;top:34%}
.mbjj-gallery-placeholder:after{width:92px;height:42px;transform:rotate(16deg);right:22%;top:34%}
.mbjj-gallery-placeholder span{width:18px;height:18px;background:var(--mbjj-accent,#e11d2e);left:45%;top:31%}
.mbjj-gallery-play{position:absolute;right:12px;bottom:12px;min-width:44px;height:44px;border-radius:999px;background:var(--mbjj-ink,#111);color:#fff;display:grid;place-items:center;font-weight:950;letter-spacing:-.02em;box-shadow:0 10px 24px rgba(0,0,0,.2)}
.mbjj-gallery-text{display:grid;gap:5px;padding:14px 16px 12px}
.mbjj-gallery-text strong{font-size:1.05rem;line-height:1.1;font-weight:950;letter-spacing:-.025em}
.mbjj-gallery-text small{font-size:.78rem;line-height:1.35;color:var(--mbjj-muted,#444);font-weight:800}
.mbjj-gallery-card p{padding:0 16px 14px;margin:0;color:var(--mbjj-muted,#444);font-size:.92rem;line-height:1.48}
.mbjj-gallery-link{display:inline-flex;margin:0 16px 16px;color:var(--mbjj-ink,#111);font-weight:900;text-decoration:none;border-bottom:2px solid var(--mbjj-accent,#e11d2e)}
.mbjj-gallery-lightbox{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:24px}
.mbjj-gallery-lightbox-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(5px)}
.mbjj-gallery-lightbox-frame{position:relative;width:min(100%,980px);max-height:92vh;background:#fff;border-radius:24px;padding:18px;box-shadow:0 30px 80px rgba(0,0,0,.38);display:grid;gap:12px}
.mbjj-gallery-lightbox-body{display:grid;place-items:center;max-height:78vh;overflow:auto;background:#000;border-radius:16px}
.mbjj-gallery-lightbox-body img,.mbjj-gallery-lightbox-body video{max-width:100%;max-height:78vh;width:auto;height:auto;display:block;border-radius:16px}
.mbjj-gallery-lightbox-body iframe{width:min(100%,900px);aspect-ratio:16/9;min-height:300px;border:0;border-radius:16px;background:#000}
.mbjj-gallery-lightbox-body .instagram-media{background:#fff!important;min-width:300px!important;max-width:540px!important;margin:0 auto!important}
.mbjj-gallery-lightbox-close{position:absolute;right:10px;top:10px;z-index:2;width:42px;height:42px;border-radius:999px;border:2px solid var(--mbjj-ink,#111);background:#fff;color:var(--mbjj-ink,#111);font-size:28px;line-height:1;font-weight:900;cursor:pointer;display:grid;place-items:center}
.mbjj-gallery-lightbox-frame h3{margin:0;font-size:1.15rem;line-height:1.1;letter-spacing:-.03em;color:var(--mbjj-ink,#111)}
.mbjj-lightbox-open{overflow:hidden}
@media(max-width:760px){.mbjj-gallery-grid{grid-template-columns:1fr 1fr;gap:10px}.mbjj-gallery-text{padding:11px}.mbjj-gallery-card p,.mbjj-gallery-link{display:none}.mbjj-gallery-lightbox{padding:10px}.mbjj-gallery-lightbox-frame{border-radius:18px;padding:10px}.mbjj-gallery-lightbox-body iframe{min-height:220px}.mbjj-gallery-placeholder:before{left:12%}.mbjj-gallery-placeholder:after{right:12%}}

/* v0.7 UI pass — logo-led home hero */
.mbjj-hero{grid-template-columns:minmax(0,1.08fr) minmax(220px,.62fr);border:2px solid var(--mbjj-ink,#111);box-shadow:0 20px 44px rgba(0,0,0,.07);background:linear-gradient(180deg,#fff 0%,#fff 72%,var(--mbjj-paper,#fafaf8) 100%)}
.mbjj-hero:before{content:"";position:absolute;left:clamp(22px,4vw,52px);right:clamp(22px,4vw,52px);bottom:clamp(18px,3vw,34px);height:8px;background:var(--mbjj-ink,#111);z-index:0}
.mbjj-hero:after{right:-110px;top:-130px;width:320px;height:320px;border-width:56px;opacity:.9}
.mbjj-hero-copy h1{max-width:850px;text-transform:uppercase;letter-spacing:-.075em}
.mbjj-hero-copy .mbjj-eyebrow{color:var(--mbjj-ink,#111);display:inline-flex;border:2px solid var(--mbjj-ink,#111);border-radius:999px;padding:7px 10px;background:#fff;margin-bottom:14px}
.mbjj-hero-mark{display:grid;place-items:center;align-self:stretch;min-height:260px;position:relative}
.mbjj-logo-card{width:min(100%,340px);aspect-ratio:1;border-radius:50%;background:#fff;border:2px solid var(--mbjj-ink,#111);padding:clamp(14px,3vw,28px);box-shadow:0 20px 42px rgba(0,0,0,.12),inset 0 0 0 10px var(--mbjj-paper,#fafaf8);display:grid;place-items:center;position:relative;overflow:hidden}
.mbjj-logo-card:after{content:"";position:absolute;inset:10px;border:1px solid rgba(0,0,0,.08);border-radius:50%;pointer-events:none}
.mbjj-logo-card img{width:100%;height:100%;object-fit:contain;display:block;filter:contrast(1.08) grayscale(1)}
.mbjj-logo-card span{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);background:var(--mbjj-ink,#111);color:#fff;border-radius:999px;padding:6px 12px;font-weight:950;font-size:.78rem;letter-spacing:.18em;box-shadow:0 8px 18px rgba(0,0,0,.18)}
.mbjj-hero-belts{display:none!important}
.mbjj-schedule-embed>.mbjj-section-heading{border-bottom:6px solid var(--mbjj-ink,#111);padding-bottom:12px}
.mbjj-panel,.mbjj-join-cta,.mbjj-pathway{box-shadow:0 12px 28px rgba(0,0,0,.04)}
.mbjj-panel h2,.mbjj-join-cta h2,.mbjj-pathway h2{letter-spacing:-.07em;text-transform:uppercase}
@media(max-width:760px){.mbjj-hero{grid-template-columns:1fr}.mbjj-hero:before{height:6px}.mbjj-hero-mark{min-height:210px;margin-top:20px}.mbjj-logo-card{width:min(260px,86vw)}.mbjj-logo-card span{bottom:12px}.mbjj-hero-copy h1{font-size:clamp(2.4rem,14vw,4.2rem)}}

/* v0.8 member login/private clubhouse pass */
.mbjj-access-gate{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.7fr);gap:clamp(18px,4vw,42px);align-items:center;background:#fff;border:2px solid var(--mbjj-ink,#111)}
.mbjj-access-gate:before{background:linear-gradient(180deg,var(--mbjj-ink,#111),var(--belt,var(--mbjj-accent,#e11d2e)))}
.mbjj-access-gate .mbjj-login-box{margin:0;max-width:none;border:2px solid var(--mbjj-ink,#111);box-shadow:0 16px 34px rgba(0,0,0,.08)}
.mbjj-access-gate .mbjj-login-box form{margin:0 0 14px}
.mbjj-access-ok,.mbjj-member-welcome{background:#fff;border:2px solid var(--mbjj-ink,#111)}
.mbjj-member-welcome:before,.mbjj-access-ok:before{background:var(--mbjj-ink,#111)}
.mbjj-portal .mbjj-dashboard{max-width:none;padding:clamp(18px,3vw,30px)}
.mbjj-dashboard-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;border-bottom:1px solid var(--mbjj-line,#e6e6e6);padding-bottom:14px}
.mbjj-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:18px 0}
.mbjj-profile-editor{background:var(--mbjj-paper,#fafaf8);border:1px solid var(--mbjj-line,#e6e6e6);border-radius:20px;padding:16px;margin:18px 0}
.mbjj-profile-editor summary{cursor:pointer;font-weight:950;letter-spacing:-.02em;margin-bottom:12px}
.mbjj-portal-private-grid{display:grid;gap:20px;margin-top:20px}
.mbjj-portal-private-grid>.mbjj-panel{margin:0}
.mbjj-login-box .login-username label,.mbjj-login-box .login-password label,.mbjj-login-box .login-remember label{font-weight:900;color:var(--mbjj-ink,#111)}
.mbjj-login-box .login-remember{margin:.7em 0}
.mbjj-login-box .login-submit{margin:1em 0 0}
.mbjj-login-box .login-submit input{cursor:pointer}
@media(max-width:760px){.mbjj-access-gate{grid-template-columns:1fr}.mbjj-dashboard-head{display:block}.mbjj-dashboard-head .mbjj-button{margin-top:12px}.mbjj-portal .mbjj-dashboard{padding:16px}}


/* v1.1 home hero / public page cleanup */
.mbjj-hero-copy h1,.mbjj-hero-copy p,.mbjj-hero-copy .mbjj-eyebrow{color:var(--mbjj-ink,#111)!important;}
.mbjj-logo-card span{display:none!important;}
.mbjj-logo-card{overflow:visible;}
.mbjj-logo-card img{position:relative;z-index:1;}
.mbjj-home-schedule{margin-top:clamp(20px,3vw,34px);}
.mbjj-home-schedule .mbjj-section-heading{display:none!important;}
.mbjj-schedule-embed{color:#111!important;}
.mbjj-schedule-embed h1,.mbjj-schedule-embed h2,.mbjj-schedule-embed h3{color:#111!important;}

/* v1.2 hero logo circle + mobile title fit */
.mbjj-logo-card{
  overflow:hidden!important;
  padding:clamp(20px,3vw,34px)!important;
  background:#fff!important;
}
.mbjj-logo-card img{
  width:92%!important;
  height:92%!important;
  object-fit:contain!important;
  margin:auto!important;
  display:block!important;
}
@media(max-width:760px){
  .mbjj-hero-copy h1{
    font-size:clamp(2rem,11.2vw,3.65rem)!important;
    letter-spacing:-.055em!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
  }
  .mbjj-hero-mark{min-height:260px!important;}
  .mbjj-logo-card{width:min(320px,88vw)!important;}
}

/* v1.3 first-class visitor guide */
.mbjj-first-class{
  background:#fff;
  border:2px solid var(--mbjj-ink,#111);
  box-shadow:0 18px 42px rgba(0,0,0,.06);
}
.mbjj-first-class:before{background:var(--belt,var(--mbjj-accent,#e11d2e));}
.mbjj-first-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,2vw,22px);
  margin-top:clamp(18px,3vw,28px);
}
.mbjj-first-card{
  position:relative;
  background:var(--mbjj-paper,#fafaf8);
  border:2px solid var(--mbjj-ink,#111);
  border-radius:22px;
  padding:clamp(16px,2.2vw,24px);
  min-height:220px;
  overflow:hidden;
}
.mbjj-first-card h3{
  color:var(--mbjj-ink,#111)!important;
  font-size:clamp(1.45rem,2.4vw,2.2rem);
  line-height:.92;
  letter-spacing:-.055em;
  text-transform:uppercase;
  margin:.25rem 0 .8rem;
  padding-right:3rem;
}
.mbjj-first-card p,
.mbjj-first-card li{font-size:1rem;line-height:1.45;color:var(--mbjj-muted,#444);}
.mbjj-first-number{
  position:absolute;
  right:14px;
  top:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:999px;
  background:var(--mbjj-ink,#111);
  color:#fff;
  font-weight:950;
  font-size:.82rem;
  letter-spacing:.04em;
}
.mbjj-first-location{grid-column:span 2;background:#fff;}
.mbjj-entrance-photo{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  display:block;
  border:2px solid var(--mbjj-ink,#111);
  border-radius:18px;
  margin:.5rem 0 1rem;
  background:#fff;
}
.mbjj-list-block ul{
  margin:.75rem 0 0;
  padding-left:1.2rem;
}
.mbjj-list-block li{margin:.35rem 0;}
.mbjj-first-steps{margin:.75rem 0 0;padding-left:1.25rem;}
.mbjj-coaches{background:#fff;border:2px solid var(--mbjj-ink,#111)}
.mbjj-coach-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:clamp(14px,2vw,22px);
}
.mbjj-coach-card{
  background:var(--mbjj-paper,#fafaf8);
  border:2px solid var(--mbjj-ink,#111);
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 10px 24px rgba(0,0,0,.05);
}
.mbjj-coach-photo{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
  background:#fff;
  border-bottom:8px solid var(--belt,var(--mbjj-ink,#111));
}
.mbjj-coach-placeholder{
  display:grid;
  place-items:center;
  font-size:2rem;
  font-weight:950;
  letter-spacing:.14em;
  color:var(--mbjj-ink,#111);
}
.mbjj-coach-body{padding:16px;}
.mbjj-coach-body h3{
  color:var(--mbjj-ink,#111)!important;
  font-size:1.55rem;
  line-height:1;
  margin:.1rem 0 .3rem;
  letter-spacing:-.04em;
}
.mbjj-coach-role{
  margin:0 0 .85rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:950;
  font-size:.78rem;
  color:var(--mbjj-muted,#444);
}
@media(max-width:900px){
  .mbjj-first-grid{grid-template-columns:1fr 1fr;}
  .mbjj-first-location{grid-column:span 2;}
}
@media(max-width:620px){
  .mbjj-first-grid{grid-template-columns:1fr;}
  .mbjj-first-location{grid-column:auto;}
  .mbjj-first-card{min-height:0;border-radius:18px;}
  .mbjj-first-card h3{font-size:1.7rem;}
  .mbjj-coach-grid{grid-template-columns:1fr;}
}

/* v1.4 squarer UI + Sorriso Nation intro */
.mbjj-panel,.mbjj-hero,.mbjj-join-cta,.mbjj-pathway,
.mbjj-member-card,.mbjj-tech-card,.mbjj-plan,.mbjj-announcement,.mbjj-milestone,.mbjj-stat-card,.mbjj-login-box,.mbjj-dashboard,
.mbjj-kids-card,.mbjj-gallery-card,.mbjj-first-card,.mbjj-coach-card,.mbjj-access-gate{
  border-radius:14px!important;
}
.mbjj-button,.mbjj-filter-set button{border-radius:10px!important;}
.mbjj-hero{padding:clamp(24px,4vw,52px)!important;}
.mbjj-logo-card{
  overflow:hidden!important;
  border-radius:50%!important;
  padding:clamp(8px,1.4vw,16px)!important;
  background:#fff!important;
}
.mbjj-logo-card img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  border-radius:50%!important;
  clip-path:circle(50% at 50% 50%)!important;
  filter:contrast(1.08) grayscale(1)!important;
}
.mbjj-sorriso-nation{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(180px,.42fr);
  gap:clamp(18px,4vw,42px);
  align-items:center;
  background:#111;
  color:#fff;
  border:2px solid #111;
  border-radius:14px;
  padding:clamp(18px,3vw,34px);
  margin:clamp(18px,3vw,30px) 0;
  box-shadow:0 16px 36px rgba(0,0,0,.12);
  overflow:hidden;
  position:relative;
}
.mbjj-sorriso-nation:before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--mbjj-accent,#e11d2e);}
.mbjj-sorriso-nation .mbjj-eyebrow{color:#fff;opacity:.72;margin-bottom:8px;}
.mbjj-sorriso-nation h2{color:#fff!important;font-size:clamp(1.7rem,4vw,3.4rem);line-height:.92;letter-spacing:-.055em;margin:.05em 0 .25em;font-weight:950;text-transform:uppercase;}
.mbjj-sorriso-nation p{color:rgba(255,255,255,.82);font-size:clamp(1rem,1.8vw,1.12rem);line-height:1.5;max-width:740px;margin:.2rem 0;}
.mbjj-sorriso-mark{display:grid;place-items:center;justify-self:end;background:#000;border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:18px;min-height:140px;min-width:190px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);}
.mbjj-sorriso-mark a{display:grid;place-items:center;min-width:150px;min-height:96px;}
.mbjj-sorriso-mark img{max-width:180px;max-height:100px;width:auto;height:auto;display:block;}
.mbjj-sorriso-mark strong{color:#fff;text-transform:uppercase;letter-spacing:.06em;font-size:1.15rem;line-height:.95;text-align:center;}
.mbjj-sorriso-nation .mbjj-button{background:#fff;color:#111!important;border-color:#fff;}
.mbjj-sorriso-nation .mbjj-button-outline{background:transparent;color:#fff!important;border-color:rgba(255,255,255,.72);}
.mbjj-sorriso-nation .mbjj-button:hover{transform:translateY(-1px);}
@media(max-width:760px){
  .mbjj-sorriso-nation{grid-template-columns:1fr;}
  .mbjj-sorriso-mark{justify-self:stretch;min-height:110px;min-width:0;}
  .mbjj-sorriso-mark img{max-width:165px;}
}

/* v1.5 simplified public home + Start Here teaser */
.mbjj-start-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(16px,3vw,32px);
  align-items:center;
  background:#fff;
  border:2px solid var(--mbjj-ink,#111);
  border-radius:14px;
  padding:clamp(20px,3.5vw,42px);
  margin:clamp(18px,3vw,30px) 0;
  color:var(--mbjj-ink,#111);
  box-shadow:0 12px 28px rgba(0,0,0,.04);
  position:relative;
  overflow:hidden;
}
.mbjj-start-card:before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:8px;
  background:var(--mbjj-accent,#e11d2e);
}
.mbjj-start-card h2{
  color:var(--mbjj-ink,#111)!important;
  font-size:clamp(2rem,5vw,4.4rem);
  line-height:.9;
  letter-spacing:-.07em;
  text-transform:uppercase;
  margin:.05em 0 .18em;
  font-weight:950;
}
.mbjj-start-card p{
  color:var(--mbjj-muted,#444);
  font-size:clamp(1.05rem,2vw,1.3rem);
  line-height:1.45;
  max-width:760px;
  margin:0;
}
.mbjj-start-card-action{display:flex;justify-content:flex-end;align-items:center;}
.mbjj-start-card-action .mbjj-button{white-space:nowrap;}
.mbjj-public-home .mbjj-home-schedule{display:none!important;}
@media(max-width:760px){
  .mbjj-start-card{grid-template-columns:1fr;}
  .mbjj-start-card-action{justify-content:flex-start;}
  .mbjj-start-card h2{font-size:clamp(2.1rem,12vw,3.5rem);}
}

/* v1.6 public programme cards + stronger member hub */
.mbjj-program-links{
  background:transparent;
  margin:clamp(20px,3vw,34px) 0;
  color:var(--mbjj-ink,#111);
}
.mbjj-program-links>.mbjj-section-heading{
  margin-bottom:clamp(14px,2vw,22px);
}
.mbjj-program-links h2{
  color:#fff!important;
  font-size:clamp(1.6rem,4vw,3rem);
  line-height:.95;
  letter-spacing:-.055em;
  text-transform:uppercase;
  margin:.1em 0 .25em;
}
.mbjj-program-links .mbjj-lead{color:rgba(255,255,255,.72);}
.mbjj-program-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(18px,3vw,32px);
}
.mbjj-program-card{
  background:#171717;
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  overflow:hidden;
  color:#fff;
  display:grid;
  grid-template-rows:auto 1fr;
  min-height:100%;
  box-shadow:0 18px 40px rgba(0,0,0,.22);
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.mbjj-program-card:hover{
  transform:translateY(-3px);
  border-color:var(--mbjj-accent,#e11d2e);
  box-shadow:0 24px 54px rgba(0,0,0,.28);
}
.mbjj-program-image{
  aspect-ratio:16/9;
  background:#050505;
  overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.mbjj-program-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:grayscale(1) contrast(1.05);
  opacity:.9;
  transition:transform .25s ease, opacity .25s ease;
}
.mbjj-program-card:hover .mbjj-program-image img{transform:scale(1.025);opacity:1;}
.mbjj-program-placeholder{
  width:100%;height:100%;position:relative;background:linear-gradient(135deg,#111,#2a2a2a);overflow:hidden;
}
.mbjj-program-placeholder:before,.mbjj-program-placeholder:after{
  content:"";position:absolute;border:8px solid rgba(255,255,255,.72);border-radius:999px;width:42%;height:34%;top:35%;
}
.mbjj-program-placeholder:before{left:20%;transform:rotate(-18deg);}
.mbjj-program-placeholder:after{right:20%;transform:rotate(18deg);}
.mbjj-program-placeholder span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;background:var(--mbjj-accent,#e11d2e);opacity:.75;}
.mbjj-program-placeholder i{position:absolute;left:0;right:0;bottom:0;height:10px;background:var(--mbjj-accent,#e11d2e);}
.mbjj-program-body{padding:clamp(18px,3vw,28px);display:grid;align-content:start;gap:12px;}
.mbjj-program-body .mbjj-eyebrow{color:#fff;opacity:.72;margin:0;}
.mbjj-program-body h3{
  color:#fff!important;
  font-size:clamp(1.7rem,3vw,2.8rem)!important;
  line-height:.92!important;
  letter-spacing:-.055em!important;
  text-transform:uppercase;
  margin:0!important;
}
.mbjj-program-body p{color:rgba(255,255,255,.74);line-height:1.55;margin:0;max-width:680px;}
.mbjj-program-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;}
.mbjj-program-tags span{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1);color:#fff;border-radius:4px;padding:4px 8px;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;}
.mbjj-program-card .mbjj-actions{margin-top:8px;}
.mbjj-program-card .mbjj-button{background:#fff!important;color:#111!important;border-color:#fff!important;}
.mbjj-program-card .mbjj-button-outline{background:transparent!important;color:#fff!important;border-color:rgba(255,255,255,.72)!important;}
.mbjj-member-hub-links{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:10px;
  margin:0 0 20px;
}
.mbjj-member-hub-links a{
  display:grid;
  gap:5px;
  padding:14px;
  border:2px solid var(--mbjj-ink,#111);
  border-radius:12px;
  background:#fff;
  color:var(--mbjj-ink,#111)!important;
  text-decoration:none!important;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease, color .16s ease;
}
.mbjj-member-hub-links a:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 24px rgba(0,0,0,.08);
  background:var(--mbjj-ink,#111);
  color:#fff!important;
}
.mbjj-member-hub-links strong{font-size:1.05rem;line-height:1;text-transform:uppercase;letter-spacing:-.02em;}
.mbjj-member-hub-links span{font-size:.86rem;line-height:1.35;color:inherit;opacity:.72;}
.mbjj-portal .mbjj-haka{margin-top:0;}
@media(max-width:760px){
  .mbjj-program-grid{grid-template-columns:1fr;}
  .mbjj-program-links h2{color:#fff!important;}
  .mbjj-program-body h3{font-size:2rem!important;}
}

/* v1.7 adult + rangatahi public pages */
.mbjj-program-page{color:var(--mbjj-ink,#111);}
.mbjj-program-page .mbjj-panel{border-radius:12px;}
.mbjj-program-page-hero{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);
  gap:clamp(20px,4vw,42px);
  align-items:center;
  background:#fff;
  border:3px solid var(--mbjj-ink,#111);
}
.mbjj-program-page-copy h1{
  color:var(--mbjj-ink,#111)!important;
  font-size:clamp(3rem,8vw,6.8rem)!important;
  line-height:.82!important;
  letter-spacing:-.075em!important;
  text-transform:uppercase;
  margin:.08em 0 .18em!important;
}
.mbjj-program-page-copy .mbjj-lead{max-width:760px;color:var(--mbjj-muted,#444);font-size:clamp(1rem,1.6vw,1.18rem);}
.mbjj-program-page-visual{
  min-height:260px;
  border:2px solid var(--mbjj-ink,#111);
  background:#111;
  overflow:hidden;
  display:grid;
  place-items:center;
}
.mbjj-program-page-visual img{width:100%;height:100%;min-height:300px;object-fit:cover;filter:grayscale(1) contrast(1.05);display:block;}
.mbjj-program-page-mark{
  min-height:300px;
  width:100%;
  display:grid;
  place-items:center;
  position:relative;
  overflow:hidden;
  color:#fff;
  background:linear-gradient(135deg,#050505,#242424);
}
.mbjj-program-page-mark strong{position:relative;z-index:2;text-align:center;font-size:clamp(2rem,5vw,4.4rem);line-height:.88;letter-spacing:-.06em;text-transform:uppercase;}
.mbjj-program-page-mark span{position:absolute;inset:auto auto -45% -10%;width:80%;aspect-ratio:1;border-radius:999px;border:26px solid var(--mbjj-accent,#e11d2e);opacity:.45;}
.mbjj-program-info-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  padding:0!important;
  overflow:hidden;
  border:3px solid var(--mbjj-ink,#111)!important;
  background:#fff;
}
.mbjj-program-info-grid article{padding:clamp(18px,3vw,30px);border-right:2px solid var(--mbjj-ink,#111);display:grid;align-content:start;gap:10px;}
.mbjj-program-info-grid article:last-child{border-right:0;}
.mbjj-program-info-grid span{font-weight:950;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mbjj-accent,#e11d2e);}
.mbjj-program-info-grid h3{font-size:clamp(1.25rem,2.2vw,2.1rem)!important;line-height:.95!important;text-transform:uppercase;letter-spacing:-.045em;margin:0!important;color:var(--mbjj-ink,#111)!important;}
.mbjj-program-info-grid p{margin:0;color:var(--mbjj-muted,#444);line-height:1.45;}
.mbjj-program-schedule{margin:clamp(24px,4vw,44px) 0;}
.mbjj-program-schedule .mbjj-schedule{margin-left:auto;margin-right:auto;}
.mbjj-program-pathway{scroll-margin-top:90px;}
@media(max-width:920px){
  .mbjj-program-page-hero{grid-template-columns:1fr;}
  .mbjj-program-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .mbjj-program-info-grid article:nth-child(2){border-right:0;}
  .mbjj-program-info-grid article{border-bottom:2px solid var(--mbjj-ink,#111);}
  .mbjj-program-info-grid article:nth-child(n+3){border-bottom:0;}
}
@media(max-width:620px){
  .mbjj-program-page-copy h1{font-size:clamp(2.4rem,16vw,4rem)!important;}
  .mbjj-program-info-grid{grid-template-columns:1fr;}
  .mbjj-program-info-grid article,.mbjj-program-info-grid article:nth-child(2){border-right:0;border-bottom:2px solid var(--mbjj-ink,#111);}
  .mbjj-program-info-grid article:last-child{border-bottom:0;}
  .mbjj-program-page-visual,.mbjj-program-page-visual img,.mbjj-program-page-mark{min-height:220px;}
}

/* v1.8 private Member Hub pages + dynamic login/logout */
.mbjj-member-hub-links a.is-active{
  background:var(--mbjj-ink,#111);
  color:#fff!important;
  box-shadow:0 12px 24px rgba(0,0,0,.08);
}
.mbjj-hub-summary{
  border:1px solid var(--mbjj-line,#e6e6e6);
  border-left:6px solid var(--mbjj-accent,#e11d2e);
  background:var(--mbjj-paper,#fafaf8);
  border-radius:12px;
  padding:14px 16px;
  margin:0 0 18px;
}
.mbjj-hub-summary p{margin:0;color:var(--mbjj-muted,#444);line-height:1.45;}
.mbjj-member-page .mbjj-dashboard-head h2{margin:0!important;color:var(--mbjj-ink,#111)!important;}
.mbjj-member-page .mbjj-panel{margin-top:18px;}
.mbjj-member-info-stack{display:grid;gap:18px;}
.mbjj-portal-preview{margin-top:20px;}
.mbjj-login-toggle{white-space:nowrap;}
@media(max-width:760px){
  .mbjj-member-hub-links{grid-template-columns:1fr;}
  .mbjj-member-page .mbjj-dashboard-head{display:block;}
  .mbjj-member-page .mbjj-dashboard-head .mbjj-button{margin-top:12px;}
}

/* v1.9 rich text output hardening */
.mbjj-rich-text p,
.mbjj-lead p,
.mbjj-program-intro p,
.mbjj-small-note p,
.mbjj-list-block p{margin:.35em 0;}
.mbjj-lead ul,.mbjj-lead ol,
.mbjj-program-intro ul,.mbjj-program-intro ol,
.mbjj-small-note ul,.mbjj-small-note ol,
.mbjj-list-block ul,.mbjj-list-block ol{margin:.5em 0 .5em 1.25em;padding:0;}
.mbjj-lead a,.mbjj-program-intro a,.mbjj-small-note a,.mbjj-list-block a{color:inherit;text-decoration:underline;text-underline-offset:3px;}
.mbjj-quote p{margin:.25em 0 0;}
.mbjj-meta-rich{margin:16px 0;}
.mbjj-meta-rich .wp-editor-wrap{max-width:100%;}
.mbjj-rich-setting .wp-editor-wrap{max-width:900px;}

/* v2.1 footer / handoff polish */
.mbjj-footer{
  background:#fff;
  color:var(--mbjj-ink,#111);
  border:2px solid var(--mbjj-ink,#111);
  border-radius:14px;
  padding:clamp(22px,4vw,42px);
  margin-top:clamp(28px,5vw,56px);
  box-shadow:0 14px 40px rgba(0,0,0,.05);
}
.mbjj-footer-grid{
  display:grid;
  grid-template-columns:minmax(260px,1.35fr) minmax(160px,.65fr) minmax(160px,.65fr);
  gap:clamp(22px,4vw,44px);
  align-items:start;
}
.mbjj-footer-brand{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:16px;
  align-items:center;
}
.mbjj-footer-logo{
  display:grid;
  place-items:center;
  width:92px;
  height:92px;
  border:2px solid var(--mbjj-ink,#111);
  border-radius:999px;
  overflow:hidden;
  background:#fff;
  flex:0 0 auto;
}
.mbjj-footer-logo img{width:100%;height:100%;object-fit:cover;display:block;}
.mbjj-footer h2,
.mbjj-footer h3{color:var(--mbjj-ink,#111)!important;margin:0!important;line-height:1!important;}
.mbjj-footer h2{font-size:clamp(1.45rem,3vw,2.2rem)!important;letter-spacing:-.045em;text-transform:uppercase;}
.mbjj-footer h3{font-size:.78rem!important;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px!important;}
.mbjj-footer-note,.mbjj-footer-meta,.mbjj-footer-extra{color:var(--mbjj-muted,#444);line-height:1.5;}
.mbjj-footer-note{margin-top:8px;max-width:52ch;}
.mbjj-footer-meta{margin:.5rem 0 0;font-weight:800;}
.mbjj-footer-nav ul{list-style:none;margin:10px 0 0!important;padding:0!important;display:grid;gap:7px;}
.mbjj-footer-nav a,
.mbjj-footer-credit a{color:var(--mbjj-ink,#111)!important;text-decoration:none;font-weight:850;text-underline-offset:3px;}
.mbjj-footer-nav a:hover,
.mbjj-footer-nav a:focus,
.mbjj-footer-credit a:hover,
.mbjj-footer-credit a:focus{text-decoration:underline;}
.mbjj-footer-bottom{
  margin-top:clamp(18px,3vw,30px);
  padding-top:16px;
  border-top:1px solid var(--mbjj-line,#e6e6e6);
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-end;
  flex-wrap:wrap;
}
.mbjj-footer-credit{
  font-size:.88rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  font-weight:900;
}
.mbjj-footer-compact{padding:18px 22px;}
.mbjj-footer-compact .mbjj-footer-grid{grid-template-columns:1fr auto auto;gap:20px;}
.mbjj-footer-compact .mbjj-footer-logo{width:64px;height:64px;}
@media(max-width:820px){
  .mbjj-footer-grid,.mbjj-footer-compact .mbjj-footer-grid{grid-template-columns:1fr;}
  .mbjj-footer-brand{grid-template-columns:auto 1fr;}
  .mbjj-footer-bottom{align-items:flex-start;}
}
@media(max-width:480px){
  .mbjj-footer-brand{grid-template-columns:1fr;}
  .mbjj-footer-logo{width:84px;height:84px;}
}

/* v2.8 onboarding + member retention additions */
.mbjj-form-panel .mbjj-public-form{margin-top:1.2rem}.mbjj-form-grid,.mbjj-guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}.mbjj-form-row{margin:0 0 1rem}.mbjj-form-row label{display:block;font-weight:800;text-transform:none;letter-spacing:.02em}.mbjj-form-row input,.mbjj-form-row select,.mbjj-form-row textarea{width:100%;box-sizing:border-box;margin-top:.35rem;border:2px solid var(--mbjj-line,#e6e6e6);border-radius:10px;padding:.8rem 1rem;font:inherit;background:#fff;color:var(--mbjj-ink,#111)}.mbjj-form-row textarea{min-height:110px}.mbjj-required,.mbjj-optional{display:inline-block;margin-left:.35rem;padding:.12rem .45rem;border-radius:999px;font-size:.65em;text-transform:uppercase;letter-spacing:.08em}.mbjj-required{background:var(--mbjj-ink,#111);color:#fff}.mbjj-optional{background:#f2f2f2;color:var(--mbjj-muted,#555)}.mbjj-success{border:2px solid #15803d;background:#f0fdf4;color:#14532d;padding:1rem;margin:1rem 0;font-weight:800}.mbjj-terms,.mbjj-payment-box,.mbjj-guide-extra{border:2px solid var(--mbjj-line,#e6e6e6);background:#fff;padding:1rem;margin:1rem 0}.mbjj-guide-grid article,.mbjj-event-card,.mbjj-story-card{border-left:6px solid var(--mbjj-accent,#e11d2e)}.mbjj-story-card blockquote{margin:0 0 1rem;font-size:1.05rem;line-height:1.55}.mbjj-event-grid,.mbjj-story-grid{align-items:stretch}.mbjj-member-progress .mbjj-profile-summary{display:grid;gap:.75rem}.mbjj-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 18px}.mbjj-admin-grid input,.mbjj-admin-grid select{width:100%}

/* v2.9 mobile polish: smaller hero mark, Sorriso actions under logo, contact page + shorter footer title */
.mbjj-hero .mbjj-logo-card img{
  object-fit:contain!important;
  width:92%!important;
  height:92%!important;
  clip-path:none!important;
  border-radius:0!important;
}
.mbjj-sorriso-side{
  display:grid;
  gap:14px;
  justify-items:center;
  align-items:center;
  justify-self:end;
}
.mbjj-sorriso-side .mbjj-actions,
.mbjj-sorriso-actions{
  justify-content:center;
  margin-top:0;
  width:100%;
}
.mbjj-sorriso-actions .mbjj-button{
  text-align:center;
}
.mbjj-contact-form .mbjj-public-form{
  max-width:920px;
}
.mbjj-contact-form textarea{
  resize:vertical;
}
.mbjj-footer h2{
  font-size:clamp(2.1rem,4.6vw,4rem)!important;
  letter-spacing:-.06em!important;
}
@media(max-width:760px){
  .mbjj-hero{padding:28px 28px 34px!important;}
  .mbjj-hero-mark{min-height:180px!important;margin-top:12px!important;}
  .mbjj-logo-card{width:min(224px,64vw)!important;padding:10px!important;box-shadow:0 14px 28px rgba(0,0,0,.10),inset 0 0 0 7px var(--mbjj-paper,#fafaf8)!important;}
  .mbjj-hero:after{right:-150px;top:auto;bottom:52px;width:260px;height:260px;border-width:42px;opacity:.65;}
  .mbjj-sorriso-nation{grid-template-columns:1fr;text-align:left;}
  .mbjj-sorriso-side{justify-self:stretch;}
  .mbjj-sorriso-mark{justify-self:center;width:100%;max-width:520px;}
  .mbjj-sorriso-actions{display:grid;grid-template-columns:1fr;gap:10px;max-width:420px;margin-inline:auto;}
  .mbjj-sorriso-actions .mbjj-button{width:100%;}
  .mbjj-footer h2{font-size:clamp(2.25rem,12vw,3.6rem)!important;}
}
@media(max-width:420px){
  .mbjj-hero-copy h1{font-size:clamp(2.25rem,13vw,3.25rem)!important;}
  .mbjj-logo-card{width:min(205px,62vw)!important;}
}

/* v3.0 getting-started/contact/footer cleanup */
.mbjj-first-trial-anchor{
  scroll-margin-top:96px;
}
.mbjj-first-trial-anchor .mbjj-trial-form{
  margin-top:clamp(18px,3vw,34px);
}
.mbjj-contact-form,
.mbjj-trial-form{
  overflow:visible!important;
  padding-top:clamp(30px,4vw,56px)!important;
}
.mbjj-contact-form .mbjj-section-heading,
.mbjj-trial-form .mbjj-section-heading{
  align-items:flex-start;
  margin-bottom:clamp(16px,2vw,24px);
}
.mbjj-contact-form .mbjj-section-heading h2,
.mbjj-trial-form .mbjj-section-heading h2{
  font-size:clamp(2.05rem,5vw,4rem)!important;
  line-height:1.02!important;
  margin:0 0 .25em!important;
  overflow-wrap:normal;
  word-break:normal;
}
.mbjj-contact-form .mbjj-public-form,
.mbjj-trial-form .mbjj-public-form{
  width:100%;
  max-width:100%;
}
.mbjj-form-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))!important;
}
.mbjj-form-row,
.mbjj-form-row label,
.mbjj-form-row input,
.mbjj-form-row select,
.mbjj-form-row textarea{
  min-width:0;
  max-width:100%;
}
.mbjj-form-row textarea{
  display:block;
}
.mbjj-footer{
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  background:transparent!important;
  padding-inline:0!important;
}
.mbjj-footer-bottom{
  border-top:0!important;
}
@media(max-width:760px){
  .mbjj-contact-form .mbjj-section-heading h2,
  .mbjj-trial-form .mbjj-section-heading h2{
    font-size:clamp(2rem,10vw,3.1rem)!important;
    letter-spacing:-.055em!important;
  }
  .mbjj-contact-form,
  .mbjj-trial-form{
    padding-top:30px!important;
  }
}


/* v3.1 mobile readability + form clipping pass */
@media(max-width:760px){
  .mbjj-hero{
    padding:24px 22px 30px!important;
    border-radius:18px!important;
    margin-inline:0!important;
    max-width:100%!important;
  }
  .mbjj-hero-copy{
    min-width:0!important;
    width:100%!important;
  }
  .mbjj-hero-copy .mbjj-eyebrow{
    font-size:.68rem!important;
    padding:6px 10px!important;
    letter-spacing:.18em!important;
    max-width:100%!important;
  }
  .mbjj-hero-copy h1{
    font-size:clamp(2rem,9.5vw,3rem)!important;
    line-height:.92!important;
    letter-spacing:-.07em!important;
    max-width:100%!important;
    width:100%!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    text-wrap:balance;
  }
  .mbjj-hero-copy p{
    font-size:1.05rem!important;
    line-height:1.35!important;
    margin-top:.75rem!important;
  }
  .mbjj-hero-mark{
    min-height:auto!important;
    margin-top:20px!important;
    justify-content:center!important;
  }
  .mbjj-logo-card{
    width:min(235px,68vw)!important;
    padding:12px!important;
    border-width:2px!important;
    box-shadow:0 12px 22px rgba(0,0,0,.10), inset 0 0 0 7px var(--mbjj-paper,#fafaf8)!important;
  }
  .mbjj-logo-card img{
    width:90%!important;
    height:90%!important;
    object-fit:contain!important;
  }
  .mbjj-hero:before{
    left:22px!important;
    right:22px!important;
    bottom:20px!important;
    height:5px!important;
  }
}
@media(max-width:420px){
  .mbjj-hero-copy h1{font-size:clamp(1.85rem,8.9vw,2.55rem)!important;}
  .mbjj-logo-card{width:min(218px,64vw)!important;}
}
@media(max-width:360px){
  .mbjj-hero-copy h1{font-size:2rem!important;}
  .mbjj-logo-card{width:198px!important;}
}

/* Safer public forms: stop mobile clipping and make helper/placeholder text lighter */
.mbjj-public-form,
.mbjj-public-form *{
  box-sizing:border-box!important;
}
.mbjj-form-panel{
  overflow:visible!important;
}
.mbjj-form-row{
  margin:0 0 1.05rem!important;
  overflow:visible!important;
}
.mbjj-form-row label{
  display:block!important;
  font-size:.98rem!important;
  line-height:1.25!important;
  font-weight:900!important;
  color:var(--mbjj-ink,#111)!important;
  overflow:visible!important;
}
.mbjj-form-row input,
.mbjj-form-row select,
.mbjj-form-row textarea{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:54px!important;
  height:auto!important;
  margin-top:.45rem!important;
  padding:.9rem 1rem!important;
  border:2px solid var(--mbjj-line,#d8d8d8)!important;
  border-radius:10px!important;
  background:#fff!important;
  color:var(--mbjj-ink,#111)!important;
  font-family:inherit!important;
  font-size:1rem!important;
  line-height:1.35!important;
  font-weight:700!important;
  letter-spacing:0!important;
  text-transform:none!important;
  overflow:visible!important;
}
.mbjj-form-row select{
  padding-right:2.5rem!important;
  white-space:normal!important;
  appearance:auto!important;
  -webkit-appearance:auto!important;
}
.mbjj-form-row textarea{
  min-height:132px!important;
  resize:vertical!important;
}
.mbjj-form-row input::placeholder,
.mbjj-form-row textarea::placeholder{
  color:#777!important;
  opacity:.58!important;
  font-weight:500!important;
}
.mbjj-form-row input:focus,
.mbjj-form-row select:focus,
.mbjj-form-row textarea:focus{
  outline:3px solid rgba(255,193,7,.22)!important;
  border-color:var(--mbjj-ink,#111)!important;
}
.mbjj-required,
.mbjj-optional{
  vertical-align:middle!important;
  white-space:nowrap!important;
  font-size:.68rem!important;
  line-height:1!important;
  margin-left:.45rem!important;
  padding:.24rem .55rem!important;
}
.mbjj-lead,
.mbjj-small-note,
.mbjj-form-panel .mbjj-lead,
.mbjj-form-panel .mbjj-small-note{
  color:var(--mbjj-muted,#555)!important;
}
@media(max-width:760px){
  .mbjj-form-panel{
    padding:28px 22px!important;
    border-radius:18px!important;
  }
  .mbjj-form-panel:before{
    width:6px!important;
  }
  .mbjj-form-grid{
    display:block!important;
  }
  .mbjj-form-row label{
    font-size:.96rem!important;
  }
  .mbjj-form-row input,
  .mbjj-form-row select,
  .mbjj-form-row textarea{
    font-size:16px!important; /* prevents mobile browser zoom and clipping */
    min-height:56px!important;
  }
  .mbjj-required,
  .mbjj-optional{
    font-size:.6rem!important;
    letter-spacing:.08em!important;
  }
  .mbjj-contact-form .mbjj-section-heading h2,
  .mbjj-trial-form .mbjj-section-heading h2{
    font-size:clamp(1.85rem,8.5vw,2.75rem)!important;
    line-height:.98!important;
  }
}

/* v3.2 mobile alignment + Sorriso logo/action alignment polish */
.mbjj-hero,
.mbjj-sorriso-nation,
.mbjj-panel,
.mbjj-start-card,
.mbjj-program-links,
.mbjj-gallery,
.mbjj-footer{
  max-width:100%;
}

.mbjj-hero-mark,
.mbjj-logo-card{
  margin-left:auto!important;
  margin-right:auto!important;
}

.mbjj-sorriso-side{
  width:100%;
  justify-self:center!important;
  align-self:center;
  display:grid!important;
  gap:16px!important;
  justify-items:center!important;
}
.mbjj-sorriso-mark{
  justify-self:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
  width:min(100%,300px)!important;
  min-width:0!important;
}
.mbjj-sorriso-mark a{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
}
.mbjj-sorriso-mark img{
  display:block!important;
  margin:auto!important;
  object-fit:contain!important;
}
.mbjj-sorriso-actions{
  display:grid!important;
  gap:10px!important;
  justify-items:center!important;
  justify-content:center!important;
  width:min(100%,300px)!important;
  margin:0 auto!important;
}
.mbjj-sorriso-actions .mbjj-button{
  width:100%!important;
  justify-content:center!important;
}

@media(max-width:760px){
  .mbjj-hero,
  .mbjj-sorriso-nation,
  .mbjj-panel,
  .mbjj-start-card,
  .mbjj-footer{
    width:calc(100% - 20px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .mbjj-hero{
    display:block!important;
    overflow:hidden!important;
  }
  .mbjj-hero-copy,
  .mbjj-hero-mark{
    width:100%!important;
    max-width:100%!important;
    text-align:left!important;
  }
  .mbjj-hero-copy h1,
  .mbjj-hero-copy p,
  .mbjj-hero-copy .mbjj-eyebrow{
    margin-left:0!important;
    margin-right:0!important;
  }
  .mbjj-hero-mark{
    display:grid!important;
    place-items:center!important;
    margin-top:18px!important;
  }
  .mbjj-logo-card{
    transform:none!important;
    left:auto!important;
    right:auto!important;
  }
  .mbjj-hero:before{
    left:22px!important;
    right:22px!important;
  }
  .mbjj-sorriso-nation{
    padding:30px 24px!important;
  }
  .mbjj-sorriso-copy,
  .mbjj-sorriso-side{
    width:100%!important;
    min-width:0!important;
  }
  .mbjj-sorriso-mark{
    width:100%!important;
    max-width:360px!important;
    min-height:116px!important;
  }
  .mbjj-sorriso-actions{
    width:100%!important;
    max-width:360px!important;
  }
}

/* v3.2 form clipping hardening — selects and helper text */
.mbjj-public-form select,
.mbjj-form-row select{
  height:60px!important;
  min-height:60px!important;
  line-height:1.2!important;
  padding-top:0!important;
  padding-bottom:0!important;
  color:var(--mbjj-ink,#111)!important;
  background-color:#fff!important;
}
.mbjj-public-form input::placeholder,
.mbjj-public-form textarea::placeholder,
.mbjj-form-row input::placeholder,
.mbjj-form-row textarea::placeholder{
  color:#8a8a8a!important;
  opacity:.62!important;
  font-weight:500!important;
}
.mbjj-public-form input,
.mbjj-public-form textarea,
.mbjj-public-form select{
  overflow:visible!important;
}
@media(max-width:760px){
  .mbjj-public-form select,
  .mbjj-form-row select{
    height:62px!important;
    min-height:62px!important;
    font-size:16px!important;
  }
  .mbjj-public-form input,
  .mbjj-public-form textarea,
  .mbjj-public-form select{
    max-width:100%!important;
  }
}

/* v3.3 content width consistency + programme cleanup */
:root{--mbjj-content-max:1180px;}
.mbjj-hero,
.mbjj-sorriso-nation,
.mbjj-program-links,
.mbjj-gallery,
.mbjj-start-card,
.mbjj-first-class,
.mbjj-contact-form,
.mbjj-trial-form,
.mbjj-waiver-form,
.mbjj-footer,
.mbjj-program-page > .mbjj-panel,
.mbjj-program-page > .mbjj-program-schedule,
.mbjj-program-page > .mbjj-program-pathway,
.mbjj-program-page > .mbjj-coaches,
.mbjj-program-page > .mbjj-memberships,
.mbjj-program-page > .mbjj-kids-program{
  width:min(calc(100% - 32px),var(--mbjj-content-max))!important;
  max-width:var(--mbjj-content-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.mbjj-program-page > .mbjj-program-pathway .mbjj-belt-ladder,
.mbjj-program-page > .mbjj-kids-program .mbjj-belt-ladder{
  width:100%!important;
  max-width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
}
.mbjj-program-page > .mbjj-kids-program{
  overflow:visible!important;
}
.mbjj-program-page > .mbjj-kids-program .mbjj-section-heading,
.mbjj-program-page > .mbjj-kids-program .mbjj-kids-grid{
  width:100%;
}
.mbjj-sorriso-nation{
  grid-template-columns:minmax(0,1fr) minmax(220px,360px)!important;
  align-items:center!important;
}
.mbjj-sorriso-side{
  justify-self:center!important;
}
.mbjj-hero{
  align-items:center!important;
}
@media(max-width:760px){
  .mbjj-hero,
  .mbjj-sorriso-nation,
  .mbjj-program-links,
  .mbjj-gallery,
  .mbjj-start-card,
  .mbjj-first-class,
  .mbjj-contact-form,
  .mbjj-trial-form,
  .mbjj-waiver-form,
  .mbjj-footer,
  .mbjj-program-page > .mbjj-panel,
  .mbjj-program-page > .mbjj-program-schedule,
  .mbjj-program-page > .mbjj-program-pathway,
  .mbjj-program-page > .mbjj-coaches,
  .mbjj-program-page > .mbjj-memberships,
  .mbjj-program-page > .mbjj-kids-program{
    width:calc(100% - 20px)!important;
    max-width:calc(100% - 20px)!important;
  }
  .mbjj-sorriso-nation{
    grid-template-columns:1fr!important;
  }
  .mbjj-hero-copy h1{
    text-wrap:balance;
  }
}


/* v3.4 Getting Started alignment + accent-bar cleanup */
:root{--mbjj-content-max:1180px;}

/* Keep every public-facing MBJJ section on the same centre line. */
.mbjj-public-home,
.mbjj-program-page,
.mbjj-page-wrap,
.entry-content .mbjj-block,
.entry-content .mbjj-first-trial-anchor{
  max-width:100%;
}

.mbjj-hero,
.mbjj-sorriso-nation,
.mbjj-program-links,
.mbjj-gallery,
.mbjj-start-card,
.mbjj-first-class,
.mbjj-coaches,
.mbjj-contact-form,
.mbjj-trial-form,
.mbjj-waiver-form,
.mbjj-student-guide,
.mbjj-events,
.mbjj-testimonials,
.mbjj-payment-info,
.mbjj-footer,
.mbjj-program-page > .mbjj-panel,
.mbjj-program-page > .mbjj-program-schedule,
.mbjj-program-page > .mbjj-program-pathway,
.mbjj-program-page > .mbjj-coaches,
.mbjj-program-page > .mbjj-memberships,
.mbjj-program-page > .mbjj-kids-program{
  width:min(calc(100% - 32px),var(--mbjj-content-max))!important;
  max-width:var(--mbjj-content-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* The “who will you meet” and “try a free class” blocks are separate cards,
   but should visually belong to the same Getting Started page stack. */
#who-will-you-meet,
#try-free-class,
.mbjj-first-trial-anchor{
  width:100%!important;
  max-width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
}
#who-will-you-meet .mbjj-coaches,
#try-free-class .mbjj-trial-form,
.mbjj-first-trial-anchor .mbjj-trial-form{
  margin-top:clamp(22px,3vw,34px)!important;
  margin-bottom:clamp(22px,3vw,34px)!important;
}

/* Earlier form fixes needed overflow visible, but that lets the yellow accent strip
   poke outside rounded cards. Clip just the card shell and keep the forms roomy. */
.mbjj-panel,
.mbjj-hero,
.mbjj-join-cta,
.mbjj-pathway,
.mbjj-start-card,
.mbjj-sorriso-nation,
.mbjj-first-class,
.mbjj-coaches,
.mbjj-contact-form,
.mbjj-trial-form,
.mbjj-waiver-form,
.mbjj-student-guide,
.mbjj-events,
.mbjj-testimonials,
.mbjj-payment-info{
  overflow:hidden!important;
}
.mbjj-contact-form,
.mbjj-trial-form,
.mbjj-waiver-form{
  padding-top:clamp(34px,4vw,58px)!important;
}
.mbjj-contact-form .mbjj-public-form,
.mbjj-trial-form .mbjj-public-form,
.mbjj-waiver-form .mbjj-public-form{
  position:relative;
  z-index:2;
  overflow:visible!important;
}

/* Accent strip now sits cleanly inside the card rather than showing as a rogue bar. */
.mbjj-panel:before,
.mbjj-join-cta:before,
.mbjj-pathway:before,
.mbjj-start-card:before,
.mbjj-sorriso-nation:before{
  left:0!important;
  top:0!important;
  bottom:0!important;
  width:7px!important;
  border-radius:0!important;
  z-index:1;
}
.mbjj-panel > *,
.mbjj-join-cta > *,
.mbjj-pathway > *,
.mbjj-start-card > *,
.mbjj-sorriso-nation > *{
  position:relative;
  z-index:2;
}

/* The coach empty-state line should not stretch oddly. */
.mbjj-coaches .mbjj-empty{
  width:100%;
  margin:1rem 0 0!important;
}

/* Prevent full-width Blocksy/Gutenberg containers from creating inconsistent page widths. */
.entry-content > .mbjj-block,
.entry-content > .mbjj-public-home,
.entry-content > .mbjj-program-page{
  margin-left:auto!important;
  margin-right:auto!important;
}

@media(max-width:760px){
  .mbjj-hero,
  .mbjj-sorriso-nation,
  .mbjj-program-links,
  .mbjj-gallery,
  .mbjj-start-card,
  .mbjj-first-class,
  .mbjj-coaches,
  .mbjj-contact-form,
  .mbjj-trial-form,
  .mbjj-waiver-form,
  .mbjj-student-guide,
  .mbjj-events,
  .mbjj-testimonials,
  .mbjj-payment-info,
  .mbjj-footer,
  .mbjj-program-page > .mbjj-panel,
  .mbjj-program-page > .mbjj-program-schedule,
  .mbjj-program-page > .mbjj-program-pathway,
  .mbjj-program-page > .mbjj-coaches,
  .mbjj-program-page > .mbjj-memberships,
  .mbjj-program-page > .mbjj-kids-program{
    width:calc(100% - 20px)!important;
    max-width:calc(100% - 20px)!important;
  }

  #who-will-you-meet .mbjj-coaches,
  #try-free-class .mbjj-trial-form,
  .mbjj-first-trial-anchor .mbjj-trial-form{
    width:calc(100% - 20px)!important;
    max-width:calc(100% - 20px)!important;
  }

  .mbjj-first-class,
  .mbjj-coaches,
  .mbjj-trial-form,
  .mbjj-contact-form,
  .mbjj-waiver-form{
    border-radius:18px!important;
  }

  .mbjj-panel:before,
  .mbjj-join-cta:before,
  .mbjj-pathway:before,
  .mbjj-start-card:before,
  .mbjj-sorriso-nation:before{
    width:6px!important;
  }

  .mbjj-coaches .mbjj-section-heading,
  .mbjj-trial-form .mbjj-section-heading,
  .mbjj-contact-form .mbjj-section-heading{
    display:block!important;
  }
}

/* v3.5 Member Hub width + speed/readability pass */
:root{--mbjj-member-max:1180px;}

.mbjj-portal,
.mbjj-member-page,
.mbjj-access-gate{
  width:min(calc(100% - 32px), var(--mbjj-member-max))!important;
  max-width:var(--mbjj-member-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

.entry-content > .mbjj-portal,
.entry-content > .mbjj-member-page,
.entry-content > .mbjj-access-gate{
  margin-left:auto!important;
  margin-right:auto!important;
}

.mbjj-portal .mbjj-dashboard,
.mbjj-member-page{
  contain:layout style;
}

.mbjj-member-page .mbjj-dashboard-head,
.mbjj-portal .mbjj-dashboard-head{
  gap:18px;
}

.mbjj-member-page .mbjj-member-hub-links,
.mbjj-portal .mbjj-member-hub-links{
  grid-template-columns:repeat(auto-fit,minmax(118px,1fr))!important;
  gap:8px!important;
  margin-bottom:18px!important;
}

.mbjj-member-page .mbjj-member-hub-links a,
.mbjj-portal .mbjj-member-hub-links a{
  padding:10px 11px!important;
  border-radius:10px!important;
  min-height:auto!important;
}

.mbjj-member-page .mbjj-member-hub-links strong,
.mbjj-portal .mbjj-member-hub-links strong{
  font-size:.86rem!important;
  line-height:1.05!important;
}

.mbjj-member-page .mbjj-member-hub-links span,
.mbjj-portal .mbjj-member-hub-links span{
  display:none!important;
}

.mbjj-member-page .mbjj-panel,
.mbjj-portal .mbjj-panel{
  max-width:100%!important;
}

@media(max-width:760px){
  .mbjj-portal,
  .mbjj-member-page,
  .mbjj-access-gate{
    width:calc(100% - 20px)!important;
    max-width:calc(100% - 20px)!important;
  }

  .mbjj-member-page .mbjj-member-hub-links,
  .mbjj-portal .mbjj-member-hub-links{
    display:flex!important;
    overflow-x:auto!important;
    gap:8px!important;
    padding-bottom:8px!important;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;
  }

  .mbjj-member-page .mbjj-member-hub-links a,
  .mbjj-portal .mbjj-member-hub-links a{
    min-width:132px!important;
    scroll-snap-align:start;
    white-space:normal;
  }
}

/* v3.7 plugin-wide stability pass
   This deliberately sits at the end of the CSS file as a consolidated final layer.
   Earlier version-specific patches are left in place for backwards compatibility,
   but these rules are now the source of truth for width, form, and hero alignment. */
:root{
  --mbjj-content-max:1180px;
  --mbjj-member-max:1180px;
  --mbjj-card-radius:18px;
  --mbjj-small-radius:10px;
}

.mbjj-public-home,
.mbjj-program-page,
.mbjj-page-wrap,
.mbjj-first-trial-anchor,
.entry-content > .mbjj-block,
.entry-content > .mbjj-public-home,
.entry-content > .mbjj-program-page,
.entry-content > .mbjj-portal,
.entry-content > .mbjj-member-page,
.entry-content > .mbjj-access-gate{
  width:100%;
  max-width:100%;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box;
}

.mbjj-hero,
.mbjj-sorriso-nation,
.mbjj-program-links,
.mbjj-gallery,
.mbjj-start-card,
.mbjj-first-class,
.mbjj-coaches,
.mbjj-contact-form,
.mbjj-trial-form,
.mbjj-waiver-form,
.mbjj-student-guide,
.mbjj-events,
.mbjj-testimonials,
.mbjj-payment-info,
.mbjj-footer,
.mbjj-program-page > .mbjj-panel,
.mbjj-program-page > .mbjj-program-schedule,
.mbjj-program-page > .mbjj-program-pathway,
.mbjj-program-page > .mbjj-coaches,
.mbjj-program-page > .mbjj-memberships,
.mbjj-program-page > .mbjj-kids-program,
.mbjj-portal,
.mbjj-member-page,
.mbjj-access-gate{
  width:min(calc(100% - 32px), var(--mbjj-content-max))!important;
  max-width:var(--mbjj-content-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  border-radius:var(--mbjj-card-radius)!important;
  box-sizing:border-box!important;
}

.mbjj-member-page,
.mbjj-portal,
.mbjj-access-gate{
  width:min(calc(100% - 32px), var(--mbjj-member-max))!important;
  max-width:var(--mbjj-member-max)!important;
}

.mbjj-panel:before,
.mbjj-join-cta:before,
.mbjj-pathway:before,
.mbjj-start-card:before,
.mbjj-sorriso-nation:before{
  width:6px!important;
  border-radius:0!important;
}

.mbjj-hero{
  overflow:hidden!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(220px,360px)!important;
  align-items:center!important;
}
.mbjj-hero-copy,
.mbjj-hero-mark{
  min-width:0!important;
}
.mbjj-hero-copy h1{
  max-width:900px;
  overflow-wrap:normal;
  text-wrap:balance;
}
.mbjj-logo-card{
  display:grid!important;
  place-items:center!important;
  width:min(100%,320px)!important;
  aspect-ratio:1!important;
  margin-inline:auto!important;
  border-radius:999px!important;
  overflow:hidden!important;
}
.mbjj-logo-card img{
  width:86%!important;
  height:86%!important;
  object-fit:contain!important;
  display:block!important;
}

.mbjj-sorriso-nation{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(220px,360px)!important;
  align-items:center!important;
  gap:clamp(20px,4vw,56px)!important;
}
.mbjj-sorriso-side{
  display:grid!important;
  justify-items:center!important;
  align-content:center!important;
  width:100%!important;
  gap:14px!important;
}
.mbjj-sorriso-mark{
  width:min(100%,300px)!important;
  margin-inline:auto!important;
}
.mbjj-sorriso-actions{
  width:min(100%,300px)!important;
  margin-inline:auto!important;
  display:grid!important;
  justify-items:center!important;
  gap:10px!important;
}
.mbjj-sorriso-actions .mbjj-button{
  width:100%!important;
  justify-content:center!important;
}

.mbjj-public-form,
.mbjj-public-form *{
  box-sizing:border-box!important;
}
.mbjj-public-form input,
.mbjj-public-form select,
.mbjj-public-form textarea,
.mbjj-form-row input,
.mbjj-form-row select,
.mbjj-form-row textarea{
  max-width:100%!important;
  width:100%!important;
  color:var(--mbjj-ink,#111)!important;
  background:#fff!important;
  overflow:visible!important;
}
.mbjj-public-form input::placeholder,
.mbjj-public-form textarea::placeholder,
.mbjj-form-row input::placeholder,
.mbjj-form-row textarea::placeholder{
  color:#888!important;
  opacity:.58!important;
  font-weight:500!important;
}
.mbjj-public-form select,
.mbjj-form-row select{
  min-height:58px!important;
  height:auto!important;
  line-height:1.2!important;
  white-space:normal!important;
}
.mbjj-hp{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

.mbjj-member-page .mbjj-member-hub-links,
.mbjj-portal .mbjj-member-hub-links{
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr))!important;
  gap:8px!important;
}
.mbjj-member-page .mbjj-member-hub-links a,
.mbjj-portal .mbjj-member-hub-links a{
  border-radius:var(--mbjj-small-radius)!important;
}

@media(max-width:760px){
  .mbjj-hero,
  .mbjj-sorriso-nation,
  .mbjj-program-links,
  .mbjj-gallery,
  .mbjj-start-card,
  .mbjj-first-class,
  .mbjj-coaches,
  .mbjj-contact-form,
  .mbjj-trial-form,
  .mbjj-waiver-form,
  .mbjj-student-guide,
  .mbjj-events,
  .mbjj-testimonials,
  .mbjj-payment-info,
  .mbjj-footer,
  .mbjj-program-page > .mbjj-panel,
  .mbjj-program-page > .mbjj-program-schedule,
  .mbjj-program-page > .mbjj-program-pathway,
  .mbjj-program-page > .mbjj-coaches,
  .mbjj-program-page > .mbjj-memberships,
  .mbjj-program-page > .mbjj-kids-program,
  .mbjj-portal,
  .mbjj-member-page,
  .mbjj-access-gate{
    width:calc(100% - 20px)!important;
    max-width:calc(100% - 20px)!important;
    border-radius:18px!important;
  }
  .mbjj-hero,
  .mbjj-sorriso-nation{
    grid-template-columns:1fr!important;
  }
  .mbjj-hero{
    padding:28px 24px 30px!important;
  }
  .mbjj-hero-copy h1{
    font-size:clamp(2.2rem,11vw,3.35rem)!important;
    line-height:.9!important;
    letter-spacing:-.07em!important;
  }
  .mbjj-logo-card{
    width:min(100%,260px)!important;
    margin-top:14px!important;
  }
  .mbjj-sorriso-nation{
    padding:30px 24px!important;
  }
  .mbjj-sorriso-actions,
  .mbjj-sorriso-mark{
    width:min(100%,360px)!important;
  }
  .mbjj-form-grid{
    display:block!important;
  }
  .mbjj-public-form input,
  .mbjj-public-form select,
  .mbjj-public-form textarea,
  .mbjj-form-row input,
  .mbjj-form-row select,
  .mbjj-form-row textarea{
    font-size:16px!important;
    min-height:56px!important;
  }
  .mbjj-member-page .mbjj-member-hub-links,
  .mbjj-portal .mbjj-member-hub-links{
    display:flex!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;
    padding-bottom:8px!important;
  }
  .mbjj-member-page .mbjj-member-hub-links a,
  .mbjj-portal .mbjj-member-hub-links a{
    min-width:132px!important;
    scroll-snap-align:start;
  }
}

/* v3.8 empty states */
.mbjj-empty-state {
  display: block;
  width: 100%;
  padding: clamp(1rem, 3vw, 1.5rem);
  border: 1px dashed rgba(17,17,17,.22);
  background: rgba(255,255,255,.72);
  border-radius: 10px;
  color: rgba(17,17,17,.72);
}
.mbjj-empty-state strong {
  display: block;
  color: var(--mbjj-ink, #111);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .35rem;
}
.mbjj-empty-state p {
  max-width: 64ch;
  margin: 0 0 .75rem;
}
.mbjj-empty-state .mbjj-button {
  margin-top: .35rem;
}


/* v4.0 accent strip + alignment stability pass
   Keep the left yellow/accent edge visible on public cards without letting it poke
   outside rounded corners. This overrides earlier legacy rules that made some
   programme sections overflow visible. */
.mbjj-hero,
.mbjj-sorriso-nation,
.mbjj-program-links,
.mbjj-gallery,
.mbjj-start-card,
.mbjj-first-class,
.mbjj-coaches,
.mbjj-contact-form,
.mbjj-trial-form,
.mbjj-waiver-form,
.mbjj-student-guide,
.mbjj-events,
.mbjj-testimonials,
.mbjj-payment-info,
.mbjj-program-page > .mbjj-panel,
.mbjj-program-page > .mbjj-kids-program,
.mbjj-program-page > .mbjj-program-pathway,
.mbjj-program-page > .mbjj-coaches,
.mbjj-program-page > .mbjj-memberships,
.mbjj-portal,
.mbjj-member-page,
.mbjj-access-gate{
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
.mbjj-panel:before,
.mbjj-join-cta:before,
.mbjj-pathway:before,
.mbjj-start-card:before,
.mbjj-sorriso-nation:before,
.mbjj-first-class:before,
.mbjj-coaches:before,
.mbjj-trial-form:before,
.mbjj-contact-form:before,
.mbjj-waiver-form:before,
.mbjj-student-guide:before,
.mbjj-events:before,
.mbjj-testimonials:before,
.mbjj-payment-info:before,
.mbjj-portal:before,
.mbjj-member-page:before,
.mbjj-access-gate:before{
  content:""!important;
  position:absolute!important;
  left:0!important;
  top:0!important;
  bottom:0!important;
  width:7px!important;
  border-radius:0!important;
  background:var(--belt,var(--mbjj-accent,#ffc928))!important;
  z-index:1!important;
  pointer-events:none!important;
}
.mbjj-panel > *,
.mbjj-join-cta > *,
.mbjj-pathway > *,
.mbjj-start-card > *,
.mbjj-sorriso-nation > *,
.mbjj-first-class > *,
.mbjj-coaches > *,
.mbjj-trial-form > *,
.mbjj-contact-form > *,
.mbjj-waiver-form > *,
.mbjj-student-guide > *,
.mbjj-events > *,
.mbjj-testimonials > *,
.mbjj-payment-info > *,
.mbjj-portal > *,
.mbjj-member-page > *,
.mbjj-access-gate > *{
  position:relative;
  z-index:2;
}
@media(max-width:760px){
  .mbjj-panel:before,
  .mbjj-join-cta:before,
  .mbjj-pathway:before,
  .mbjj-start-card:before,
  .mbjj-sorriso-nation:before,
  .mbjj-first-class:before,
  .mbjj-coaches:before,
  .mbjj-trial-form:before,
  .mbjj-contact-form:before,
  .mbjj-waiver-form:before,
  .mbjj-student-guide:before,
  .mbjj-events:before,
  .mbjj-testimonials:before,
  .mbjj-payment-info:before,
  .mbjj-portal:before,
  .mbjj-member-page:before,
  .mbjj-access-gate:before{
    width:6px!important;
  }
}
