/* NOVA-spraakagent: ORB, timer, meldingen en contact-pop-up. Alles met voorvoegsel nova-. */
.nova-orb{position:relative;display:grid;place-items:center;transform:scale(var(--nova-schaal,1));transform-origin:50% 50%;will-change:transform}
.nova-orb::before{content:"";position:absolute;inset:-12%;border-radius:50%;background:radial-gradient(closest-side,rgba(143,217,205,.75),rgba(143,217,205,0));opacity:var(--nova-gloed,0);pointer-events:none;z-index:0}
.nova-orb .cta-orb{position:relative;z-index:1}
.nova-orb.nova-rustig{transition:opacity .4s}
.nova-orb.nova-rustig::before{opacity:0}
.nova-orb.nova-rustig.nova-spreekt::before{opacity:.45}
.nova-timer{margin:-8px 0 0;font-family:var(--kopfont);font-weight:700;font-size:14px;letter-spacing:.06em;color:var(--zacht);font-variant-numeric:tabular-nums}
.nova-timer[hidden],.nova-melding[hidden]{display:none}
.nova-melding{margin:0;max-width:46ch;text-align:center;font-size:16px;line-height:1.5;color:var(--kop)}
.nova-melding a{font-weight:700;white-space:nowrap}
[data-nova-knop][aria-disabled="true"]{opacity:.7;cursor:progress}

.nova-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(11,26,30,.55);overflow-y:auto}
.nova-dialog{position:relative;width:min(560px,100%);max-height:calc(100vh - 32px);overflow-y:auto;background:var(--wit,#fff);color:var(--inkt,#0B1A1E);border-radius:40px 40px 40px 0;box-shadow:0 30px 80px rgba(11,26,30,.35);padding:clamp(22px,4vw,40px);display:flex;flex-direction:column;gap:18px;font-family:var(--tekstfont)}
.nova-dialog:focus{outline:none}
.nova-dialog h2{font-family:var(--kopfont);font-size:clamp(22px,3vw,28px);font-weight:800;color:var(--kop);margin:0;padding-right:44px}
.nova-sluit{position:absolute;top:16px;right:16px;width:40px;height:40px;border:0;border-radius:50%;background:var(--papier,#F4F6F5);color:var(--kop);font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center}
.nova-sluit:hover{background:var(--mint-l,#D8EFEB)}
.nova-form{display:flex;flex-direction:column;gap:16px;background:transparent;border-radius:0;box-shadow:none;padding:0}
.nova-keuze{border:0;margin:0;padding:0;display:flex;gap:8px}
.nova-keuze legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.nova-keuze label{flex:1;position:relative;margin:0}
.nova-keuze input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.nova-keuze span{display:flex;align-items:center;justify-content:center;min-height:48px;border:1.5px solid var(--teal);border-radius:24px 24px 24px 6px;font-family:var(--kopfont);font-weight:700;font-size:15px;color:var(--teal);background:transparent}
.nova-keuze input:checked+span{background:var(--teal);color:#fff}
.nova-keuze input:focus-visible+span{outline:3px solid var(--rood);outline-offset:3px}
.nova-veld{display:flex;flex-direction:column;gap:6px}
.nova-veld label{font-size:14px;font-weight:600;color:var(--inkt)}
.nova-form input[type="text"],.nova-form input[type="email"]{height:48px}
/* Ruim voor de samenvatting van NOVA (ca. 320 px). Op een laag scherm en op een telefoon krimpt het mee, zodat Verstuur
   in beeld blijft of met een korte scroll in de pop-up bereikbaar is. */
.nova-form textarea{height:clamp(160px,42vh,320px);min-height:160px;resize:vertical}
@media (max-width:767.98px){.nova-form textarea{height:clamp(160px,32vh,320px)}}
.nova-uitleg{margin:0;font-size:16px;line-height:1.5;color:var(--inkt)}
.nova-transcript{margin:0;font-size:14px;line-height:1.4;color:var(--zacht)}
.nova-val{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.nova-fout{margin:0;color:var(--rood);font-weight:600;font-size:15px}
.nova-ok{margin:0;font-weight:700;color:var(--teal);font-size:18px}
.nova-fout[hidden],.nova-ok[hidden]{display:none}
.nova-acties{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.nova-acties .knop{min-height:52px}
.nova-acties button[disabled]{opacity:.6;cursor:progress}
.nova-pdf{align-self:flex-start}

/* Eventplan "Jouw event" (nova.js, client tool werk_eventplan_bij). .nova-podium en .nova-kolom tellen niet mee in de
   opmaak (display:contents): zonder plan, of op een smalle kaart, staat alles onder elkaar zoals in het sjabloon en komt
   het lijstje onder de knop, zodat knop en timer niet verspringen. Is de kaart breed genoeg (en het scherm geen telefoon),
   dan staat het lijstje naast bol, timer en knop. */
.nova-podium,.nova-kolom{display:contents}
[data-nova-stem].nova-met-plan{container:nova-stem/inline-size}
.nova-plan{box-sizing:border-box;width:100%;max-width:420px;padding:20px 22px 22px;background:var(--papier,#F4F6F5);border-radius:24px 24px 24px 0;text-align:left}
.nova-plan[hidden]{display:none}
.nova-plan .nova-plan-kop{margin:0 0 14px;font-family:var(--kopfont);font-size:18px;font-weight:800;line-height:1.2;color:var(--kop)}
.nova-plan .nova-plan-lijst{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.nova-plan .nova-plan-punt{display:flex;align-items:flex-start;gap:12px;margin:0;padding:0}
.nova-plan-vink{flex:none;position:relative;box-sizing:border-box;width:22px;height:22px;margin-top:1px;border:2px solid #B9C9C8;border-radius:50%;background:var(--wit,#fff);transition:background-color .2s,border-color .2s}
.nova-plan-vink::after{content:"";position:absolute;left:5px;top:1.5px;width:5px;height:10px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg);opacity:0}
.nova-plan-klaar .nova-plan-vink{background:var(--teal);border-color:var(--teal)}
.nova-plan-klaar .nova-plan-vink::after{opacity:1}
.nova-plan-tekst{display:flex;flex-direction:column;gap:1px;min-width:0}
.nova-plan .nova-plan-label{font-family:var(--kopfont);font-size:15px;font-weight:700;line-height:1.4;color:var(--zacht)}
.nova-plan .nova-plan-klaar .nova-plan-label{color:var(--kop)}
.nova-plan .nova-plan-waarde{font-size:14px;line-height:1.4;color:var(--zacht);overflow-wrap:anywhere}
.nova-plan-waarde:empty{display:none}
@media (min-width:768px){
  @container nova-stem (min-width:600px){
    .nova-podium{display:flex;align-items:center;justify-content:center;gap:clamp(28px,4vw,56px);width:100%}
    .nova-kolom{display:flex;flex-direction:column;align-items:center;gap:24px;flex:0 1 auto;min-width:0}
    .nova-plan{flex:0 1 380px;min-width:260px;max-width:400px}
  }
}
@media (prefers-reduced-motion:reduce){.nova-plan-vink{transition:none}}
