/* zwemschool-lesgroep: signatuurmodule van de zwemschoolpreview Watervrij (fictief).
   Bronnen: React Bits Pro center-flow (origineel gecompileerd, patch voor actieve paden,
   directe puls en eigen posities), orbital-type (origineel, gedeelde instantie) en het
   Pro-block card-11 (block-port). Alles gescoped onder .msm-zwemschool-lesgroep. */
.msm-zwemschool-lesgroep{--zlg-p:var(--m-primary,#ef6e4a);--zlg-bg:var(--m-bg,#dfeff0);--zlg-ink:var(--m-ink,#123b45);--zlg-s:var(--m-surface,#f8ffff);--zlg-mu:var(--m-muted,#53747b);--zlg-a:var(--m-accent2,#2f7f8c);--zlg-l:var(--m-line,#c2dcdf);--zlg-fd:var(--m-font-display,"Baloo 2","Segoe UI",system-ui,sans-serif);--zlg-fb:var(--m-font-body,"Noto Sans","Segoe UI",system-ui,sans-serif);--zlg-ease:cubic-bezier(0.2,0,0,1);position:relative;scroll-margin-top:112px;padding:clamp(56px,8vw,104px) 0;background:var(--zlg-bg);color:var(--zlg-ink);font-family:var(--zlg-fb);font-size:16px;line-height:1.5}
.msm-zwemschool-lesgroep *{box-sizing:border-box}
.msm-zwemschool-lesgroep [hidden]{display:none!important}
.msm-zwemschool-lesgroep .zlg-wrap{width:min(1180px,100% - 32px);margin:0 auto}

/* Kop met de bal (orbital-type) links van de h2 */
.msm-zwemschool-lesgroep .zlg-head{display:grid;grid-template-columns:140px minmax(0,1fr);gap:28px;align-items:center;max-width:860px;margin:0 0 28px}
.msm-zwemschool-lesgroep .zlg-orb{position:relative;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle at 38% 32%,var(--zlg-s) 0,color-mix(in srgb,var(--zlg-a) 85%,var(--zlg-ink)) 72%);box-shadow:0 18px 40px -22px color-mix(in srgb,var(--zlg-ink) 55%,transparent);overflow:hidden}
.msm-zwemschool-lesgroep .zlg-orb-fallback{position:absolute;inset:0;display:grid;place-items:center;color:var(--zlg-s);font:700 15px/1 var(--zlg-fd);letter-spacing:.14em;text-transform:uppercase}
.msm-zwemschool-lesgroep .zlg-orb.is-live .zlg-orb-fallback{display:none}
.msm-zwemschool-lesgroep .zlg-orb.is-live{background:color-mix(in srgb,var(--zlg-a) 92%,var(--zlg-ink))}
.msm-zwemschool-lesgroep .zlg-orb .orbital-type{position:absolute;inset:0;isolation:isolate;width:100%;height:100%;min-height:0;overflow:hidden}
.msm-zwemschool-lesgroep .zlg-orb .orbital-type__content{position:relative;z-index:10;width:100%;height:100%}
.msm-zwemschool-lesgroep .zlg-kicker{margin:0 0 8px;color:var(--zlg-a);font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.msm-zwemschool-lesgroep .zlg-title{margin:0;font:700 clamp(34px,5vw,58px)/1.04 var(--zlg-fd);letter-spacing:-.015em;color:var(--zlg-ink);text-wrap:balance}
.msm-zwemschool-lesgroep .zlg-intro{margin:12px 0 0;max-width:60ch;color:var(--zlg-mu);font-size:18px}

/* Leeftijdspills */
.msm-zwemschool-lesgroep .zlg-ages{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 18px}
.msm-zwemschool-lesgroep .zlg-ages-label{margin-right:4px;font-size:13px;font-weight:700;color:var(--zlg-mu);letter-spacing:.06em;text-transform:uppercase}
.msm-zwemschool-lesgroep .zlg-age{min-height:44px;padding:9px 18px;border:1px solid var(--zlg-l);border-radius:999px;background:var(--zlg-s);color:var(--zlg-ink);font:600 15px/1.2 var(--zlg-fb);cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.msm-zwemschool-lesgroep .zlg-age:hover{border-color:var(--zlg-p)}
.msm-zwemschool-lesgroep .zlg-age[aria-pressed="true"]{border-color:var(--zlg-p);background:var(--zlg-p);color:var(--zlg-s)}
.msm-zwemschool-lesgroep .zlg-age:focus-visible,.msm-zwemschool-lesgroep .zlg-switch:focus-visible,.msm-zwemschool-lesgroep .zlg-card-btn:focus-visible,.msm-zwemschool-lesgroep .zlg-dialog-close:focus-visible,.msm-zwemschool-lesgroep .zlg-dialog-cta:focus-visible,.msm-zwemschool-lesgroep summary:focus-visible{outline:3px solid color-mix(in srgb,var(--zlg-a) 70%,transparent);outline-offset:3px}

/* De hub: center-flow vult het vlak, de knooppunten en het midden zijn echte DOM */
.msm-zwemschool-lesgroep .zlg-hub{position:relative;min-height:560px;margin:0 0 16px;border:1px solid var(--zlg-l);border-radius:28px;background:color-mix(in srgb,var(--zlg-s) 60%,var(--zlg-bg));overflow:hidden}
.msm-zwemschool-lesgroep .zlg-flow{position:absolute;inset:0;z-index:1}
.msm-zwemschool-lesgroep .zlg-flow:empty{display:none}
/* originele center-flow.css (gescoped) */
.msm-zwemschool-lesgroep .center-flow-container{position:relative;width:100%;height:100%;overflow:hidden}
.msm-zwemschool-lesgroep .center-flow-svg,.msm-zwemschool-lesgroep .center-flow-container>svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}
.msm-zwemschool-lesgroep .center-flow-node{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center}
.msm-zwemschool-lesgroep .center-flow-node-dot{width:.75rem;height:.75rem;border-radius:9999px}
.msm-zwemschool-lesgroep .center-flow-center{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;transition:color 300ms}
.msm-zwemschool-lesgroep .center-flow-icon-wrapper{display:flex;align-items:center;justify-content:center}
.msm-zwemschool-lesgroep .center-flow-icon{width:100%;height:100%}
/* eigen kleur voor hub en knooppunten (de bron zet wit vast) */
.msm-zwemschool-lesgroep .center-flow-node,.msm-zwemschool-lesgroep .center-flow-center{background:var(--zlg-s)!important}
.msm-zwemschool-lesgroep .center-flow-node{overflow:visible}
.msm-zwemschool-lesgroep .center-flow-node-dot,.msm-zwemschool-lesgroep .center-flow-icon-wrapper{display:none}
/* knooppunten: 60 px beeld met label en schakelaar eronder */
.msm-zwemschool-lesgroep .zlg-nodes{position:relative;z-index:2;display:flex;flex-wrap:wrap;justify-content:center;gap:96px 44px;padding:40px 24px 120px}
.msm-zwemschool-lesgroep .zlg-nodes:empty{display:none}
.msm-zwemschool-lesgroep .zlg-node{position:relative;width:60px;height:60px;flex:0 0 60px}
.msm-zwemschool-lesgroep .zlg-node-img{display:block;width:60px;height:60px;padding:5px}
.msm-zwemschool-lesgroep .zlg-node-img img{display:block;width:100%;height:100%;object-fit:contain}
.msm-zwemschool-lesgroep .zlg-node-under{position:absolute;top:calc(100% + 8px);left:50%;width:132px;transform:translateX(-50%);display:grid;justify-items:center;gap:6px;text-align:center}
.msm-zwemschool-lesgroep .zlg-node-label{font-size:12.5px;font-weight:700;line-height:1.25;color:var(--zlg-ink)}
.msm-zwemschool-lesgroep .zlg-switch{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:2px 8px 2px 2px;border:1px solid var(--zlg-l);border-radius:999px;background:var(--zlg-s);color:var(--zlg-mu);font:600 11px/1 var(--zlg-fb);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:border-color .2s,color .2s}
.msm-zwemschool-lesgroep .zlg-switch-track{position:relative;display:block;width:34px;height:20px;border-radius:999px;background:var(--zlg-l);transition:background-color .2s}
.msm-zwemschool-lesgroep .zlg-switch-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--zlg-s);box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .2s var(--zlg-ease)}
.msm-zwemschool-lesgroep .zlg-switch[aria-checked="true"]{border-color:var(--zlg-p);color:var(--zlg-p)}
.msm-zwemschool-lesgroep .zlg-switch[aria-checked="true"] .zlg-switch-track{background:var(--zlg-p)}
.msm-zwemschool-lesgroep .zlg-switch[aria-checked="true"] .zlg-switch-knob{transform:translateX(14px)}
.msm-zwemschool-lesgroep .zlg-node.is-on .zlg-node-img{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--zlg-p) 55%,transparent))}
/* het midden */
.msm-zwemschool-lesgroep .zlg-center{position:relative;z-index:2;display:grid;place-items:center;gap:4px;width:120px;height:120px;margin:0 auto 40px;padding:10px;border-radius:35px;text-align:center}
.msm-zwemschool-lesgroep .center-flow-center .zlg-center{margin:0;width:100%;height:100%}
.msm-zwemschool-lesgroep .zlg-center-label{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--zlg-mu)}
.msm-zwemschool-lesgroep .zlg-center-name{font:700 17px/1.1 var(--zlg-fd);color:var(--zlg-ink)}
/* uitkomst in tekst (aria-live) */
.msm-zwemschool-lesgroep .zlg-result{margin:0 0 32px;padding:16px 20px;border-left:4px solid var(--zlg-p);border-radius:0 16px 16px 0;background:var(--zlg-s);font-size:17px;color:var(--zlg-ink)}
.msm-zwemschool-lesgroep .zlg-result-next{color:var(--zlg-mu)}

/* card-11 (block-port): paneel met binnenvlak, kop met statuswoord, bijschriftregel,
   gelinieerde regels, dl met eindregel en een knop over de volle breedte */
.msm-zwemschool-lesgroep .zlg-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.msm-zwemschool-lesgroep .zlg-card{position:relative;display:flex;min-width:0;flex-direction:column;overflow:hidden;border-radius:10px;border:1px solid color-mix(in srgb,var(--zlg-ink) 10%,transparent);background:color-mix(in srgb,var(--zlg-s) 70%,var(--zlg-bg));color:var(--zlg-ink);transition:border-color .2s,box-shadow .2s}
.msm-zwemschool-lesgroep .zlg-card.is-match{border-color:var(--zlg-p);box-shadow:0 0 0 2px var(--zlg-p)}
.msm-zwemschool-lesgroep .zlg-card-body{display:flex;min-width:0;flex:1;flex-direction:column;overflow:hidden;margin:4px 4px 4px;border-radius:6px;border:1px solid color-mix(in srgb,var(--zlg-ink) 8%,transparent);background:var(--zlg-s)}
.msm-zwemschool-lesgroep .zlg-card-img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.msm-zwemschool-lesgroep .zlg-card-head{padding:16px;border-bottom:1px solid color-mix(in srgb,var(--zlg-ink) 8%,transparent)}
.msm-zwemschool-lesgroep .zlg-card-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.msm-zwemschool-lesgroep .zlg-card-title{margin:0;min-width:0;font:600 18px/1.2 var(--zlg-fd);letter-spacing:-.015em;color:var(--zlg-ink);text-wrap:balance}
.msm-zwemschool-lesgroep .zlg-card-status{flex-shrink:0;font-size:14px;line-height:16px;font-weight:600;color:color-mix(in srgb,var(--zlg-ink) 80%,transparent);font-variant-numeric:tabular-nums}
.msm-zwemschool-lesgroep .zlg-card.is-match .zlg-card-status{color:var(--zlg-p)}
.msm-zwemschool-lesgroep .zlg-card-caption{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 0;font-size:12px;line-height:16px;color:color-mix(in srgb,var(--zlg-ink) 66%,transparent);font-variant-numeric:tabular-nums}
.msm-zwemschool-lesgroep .zlg-card-lines{list-style:none;margin:0;padding:4px 16px}
.msm-zwemschool-lesgroep .zlg-card-lines li{display:flex;min-height:40px;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid color-mix(in srgb,var(--zlg-ink) 8%,transparent)}
.msm-zwemschool-lesgroep .zlg-card-lines li:first-child{border-top:0}
.msm-zwemschool-lesgroep .zlg-line-text{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px}
.msm-zwemschool-lesgroep .zlg-line-title{font-size:14px;line-height:16px;font-weight:600;color:var(--zlg-ink)}
.msm-zwemschool-lesgroep .zlg-line-detail{font-size:12px;line-height:16px;color:color-mix(in srgb,var(--zlg-ink) 66%,transparent)}
.msm-zwemschool-lesgroep .zlg-line-amount{flex-shrink:0;font-size:14px;line-height:20px;color:color-mix(in srgb,var(--zlg-ink) 80%,transparent);font-variant-numeric:tabular-nums}
.msm-zwemschool-lesgroep .zlg-card-totals{display:grid;gap:6px;margin:0;padding:12px 16px;border-top:1px solid color-mix(in srgb,var(--zlg-ink) 8%,transparent)}
.msm-zwemschool-lesgroep .zlg-card-totals div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.msm-zwemschool-lesgroep .zlg-card-totals dt,.msm-zwemschool-lesgroep .zlg-card-totals dd{margin:0;font-size:14px;line-height:20px;color:color-mix(in srgb,var(--zlg-ink) 80%,transparent)}
.msm-zwemschool-lesgroep .zlg-card-totals dd{text-align:right}
.msm-zwemschool-lesgroep .zlg-card-total{padding-top:6px}
.msm-zwemschool-lesgroep .zlg-card-total dt{font-weight:600;color:var(--zlg-ink)}
.msm-zwemschool-lesgroep .zlg-card-total dd{font:600 16px/20px var(--zlg-fd);color:var(--zlg-ink)}
.msm-zwemschool-lesgroep .zlg-card-action{padding:12px 16px;border-top:1px solid color-mix(in srgb,var(--zlg-ink) 8%,transparent)}
.msm-zwemschool-lesgroep .zlg-card-action:has([hidden]){display:none}
.msm-zwemschool-lesgroep .zlg-card-btn{position:relative;display:inline-flex;width:100%;height:36px;align-items:center;justify-content:center;gap:8px;padding:0 16px;border:1px solid color-mix(in srgb,var(--zlg-ink) 12%,transparent);border-radius:6px;background:var(--zlg-s);color:var(--zlg-ink);box-shadow:0 1px 2px -1px rgba(0,0,0,.12);font:600 14px/16px var(--zlg-fb);white-space:nowrap;cursor:pointer;user-select:none;transition:color 120ms var(--zlg-ease),background-color 120ms var(--zlg-ease),border-color 120ms var(--zlg-ease),box-shadow 120ms var(--zlg-ease),scale 120ms var(--zlg-ease)}
.msm-zwemschool-lesgroep .zlg-card-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.msm-zwemschool-lesgroep .zlg-card-btn:hover{border-color:color-mix(in srgb,var(--zlg-ink) 32%,transparent);background:linear-gradient(to bottom,color-mix(in srgb,var(--zlg-ink) 3%,var(--zlg-s)),color-mix(in srgb,var(--zlg-ink) 3%,var(--zlg-s)))}
.msm-zwemschool-lesgroep .zlg-card-btn:active{scale:.98;box-shadow:inset 0 1px 2px rgba(0,0,0,.12);transition-duration:60ms}
.msm-zwemschool-lesgroep .zlg-more{margin:0;padding:0 16px 12px;font-size:14px}
.msm-zwemschool-lesgroep .zlg-more summary{cursor:pointer;padding:8px 0;font-weight:600;color:var(--zlg-a)}
.msm-zwemschool-lesgroep .zlg-more-body p{margin:8px 0 0;color:color-mix(in srgb,var(--zlg-ink) 80%,transparent)}
.msm-zwemschool-lesgroep .zlg-more-body strong{color:var(--zlg-ink)}

/* dialoog (eigen vanilla) */
.msm-zwemschool-lesgroep .zlg-dialog{width:min(560px,calc(100% - 32px));max-height:calc(100vh - 32px);padding:0;border:0;border-radius:16px;background:var(--zlg-s);color:var(--zlg-ink);box-shadow:0 25px 50px -12px rgba(0,0,0,.25);overflow:auto}
.msm-zwemschool-lesgroep .zlg-dialog::backdrop{background:color-mix(in srgb,var(--m-ink,#123b45) 55%,transparent)}
.msm-zwemschool-lesgroep .zlg-dialog-img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.msm-zwemschool-lesgroep .zlg-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px 0}
.msm-zwemschool-lesgroep .zlg-dialog-title{margin:0;font:700 28px/1.1 var(--zlg-fd)}
.msm-zwemschool-lesgroep .zlg-dialog-close{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--zlg-l);border-radius:50%;background:var(--zlg-bg);color:var(--zlg-ink);cursor:pointer}
.msm-zwemschool-lesgroep .zlg-dialog-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.msm-zwemschool-lesgroep .zlg-dialog-body{padding:12px 24px 0;font-size:16px}
.msm-zwemschool-lesgroep .zlg-dialog-body p{margin:10px 0 0;color:color-mix(in srgb,var(--zlg-ink) 85%,transparent)}
.msm-zwemschool-lesgroep .zlg-dialog-facts{display:grid;gap:4px;margin:14px 0 0;padding:12px 14px;border-radius:10px;background:var(--zlg-bg);font-size:14px}
.msm-zwemschool-lesgroep .zlg-dialog-facts div{display:flex;justify-content:space-between;gap:12px}
.msm-zwemschool-lesgroep .zlg-dialog-facts dt{font-weight:600}
.msm-zwemschool-lesgroep .zlg-dialog-facts dd{margin:0;text-align:right;color:var(--zlg-mu)}
.msm-zwemschool-lesgroep .zlg-dialog-actions{padding:20px 24px 24px}
.msm-zwemschool-lesgroep .zlg-dialog-cta{width:100%;min-height:48px;padding:12px 20px;border:0;border-radius:10px;background:var(--zlg-p);color:var(--zlg-s);font:700 16px/1.2 var(--zlg-fb);cursor:pointer}
.msm-zwemschool-lesgroep .zlg-dialog-cta:hover{background:color-mix(in srgb,var(--zlg-p) 88%,var(--zlg-ink))}
.msm-zwemschool-lesgroep .zlg-dialog-note{margin:10px 0 0;font-size:13px;color:var(--zlg-mu);text-align:center}
.msm-zwemschool-lesgroep .zlg-dialog.is-opening{animation:zlg-dialog-in .22s var(--zlg-ease)}
@keyframes zlg-dialog-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}

@media (max-width:767px){
.msm-zwemschool-lesgroep .zlg-head{grid-template-columns:88px minmax(0,1fr);gap:16px}
.msm-zwemschool-lesgroep .zlg-orb{width:88px;height:88px}
.msm-zwemschool-lesgroep .zlg-orb-fallback{font-size:10px}
.msm-zwemschool-lesgroep .zlg-intro{font-size:16px}
.msm-zwemschool-lesgroep .zlg-hub{min-height:640px;border-radius:20px}
.msm-zwemschool-lesgroep .zlg-nodes{gap:96px 20px;padding:28px 8px 110px}
.msm-zwemschool-lesgroep .zlg-node-under{width:112px}
.msm-zwemschool-lesgroep .zlg-node-label{font-size:12px}
.msm-zwemschool-lesgroep .zlg-result{font-size:15px}
}
@media (prefers-reduced-motion:reduce){
.msm-zwemschool-lesgroep .zlg-dialog.is-opening{animation:none}
.msm-zwemschool-lesgroep .zlg-age,.msm-zwemschool-lesgroep .zlg-switch,.msm-zwemschool-lesgroep .zlg-switch-track,.msm-zwemschool-lesgroep .zlg-switch-knob,.msm-zwemschool-lesgroep .zlg-card,.msm-zwemschool-lesgroep .zlg-card-btn,.msm-zwemschool-lesgroep .center-flow-center{transition:none}
}
