/* Service components are scoped so shop and account forms retain their styles. */
.oz-faq__nav { display:flex; flex-wrap:wrap; gap:var(--oz-space-sm); }
.oz-faq__nav a { display:inline-flex; align-items:center; min-height:44px; padding:.6rem 1rem; border:1px solid var(--oz-color-border); border-radius:var(--oz-radius-pill); color:var(--oz-context-accent); background:var(--oz-color-surface); font-weight:var(--oz-font-weight-semibold); }
.oz-faq__nav a:hover { background:var(--oz-context-soft); border-color:var(--oz-context-accent); }
.oz-faq__nav a:focus-visible,.oz-faq summary:focus-visible { outline:3px solid var(--oz-context-accent); outline-offset:4px; }
.oz-faq { display:grid; gap:var(--oz-section-spacing); }
.oz-faq__groups { display:grid; gap:var(--oz-section-spacing); }
.oz-faq__category,.oz-faq__items { display:grid; gap:var(--oz-space-md); }
.oz-faq__category h2 { margin:0 0 var(--oz-space-sm); }
.oz-faq__item { border:1px solid var(--oz-color-border); border-radius:var(--oz-radius-large); overflow:visible; background:var(--oz-color-background); }
.oz-faq summary { display:flex; align-items:center; justify-content:space-between; gap:var(--oz-space-md); min-height:64px; padding:var(--oz-space-lg); cursor:pointer; list-style:none; border-radius:var(--oz-radius-large); }
.oz-faq summary::-webkit-details-marker { display:none; }
.oz-content-page .oz-faq summary h3 { font-size:clamp(1rem,.94rem + .3vw,1.25rem); line-height:1.4; margin:0; }
.oz-faq summary:hover,.oz-faq details[open] summary { background:var(--oz-context-soft); }
.oz-faq__indicator { flex-shrink:0; font-size:1.5rem; color:var(--oz-context-accent); }
.oz-faq details[open] .oz-faq__indicator { transform:rotate(45deg); }
.oz-faq__answer { padding:var(--oz-space-lg); max-width:80ch; }
.oz-faq__answer p:last-child { margin-bottom:0; }
.oz-faq__answer a { color:var(--oz-context-accent); text-decoration:underline; text-underline-offset:.2em; }
.oz-faq__category,.oz-faq__item { scroll-margin-top:8rem; }
/* Contactformulier (28-09-2026): vult de kaart; velden uit Ozobot → Contact → Formulier. */
.oz-contact { max-width:none; width:100%; }
.oz-contact__form { display:grid; gap:var(--oz-space-lg); position:relative; }
.oz-contact__form p, .oz-content-body .oz-contact p, .oz-contact p { max-width:none; }
.oz-contact__form p { margin:0; }
.oz-contact__required { font-size:var(--oz-font-size-small); color:var(--oz-color-text-muted); }
.oz-contact__field { min-width:0; display:grid; gap:var(--oz-space-xs); align-content:start; }
.oz-contact__field input,.oz-contact__field select,.oz-contact__field textarea { width:100%; }
.oz-contact__form label, .oz-contact__choices legend { display:block; font-weight:700; color:var(--oz-color-heading); }
.oz-contact__req { color:var(--oz-color-primary); }
.oz-contact__help, .oz-contact__when { font-size:var(--oz-font-size-small); color:var(--oz-color-text-muted); }
.oz-contact__field > .oz-contact__help { order:2; }
.oz-contact__form :is(input,select,textarea,button):focus-visible { outline:3px solid var(--oz-context-accent); outline-offset:3px; }
.oz-contact__form > button { justify-self:start; min-height:48px; }
.oz-contact__form [hidden] { display:none!important; }
.oz-contact__trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.oz-contact__errors,.oz-contact__success { padding:var(--oz-space-lg); border:2px solid var(--oz-context-accent); border-radius:var(--oz-radius-large); margin-bottom:var(--oz-space-lg); background:var(--oz-context-soft); }
.oz-contact__errors { border-color:var(--oz-color-error); background:var(--oz-color-error-surface); }
.oz-contact__errors h3,.oz-contact__success h3 { margin:0 0 var(--oz-space-xs); }
.oz-contact__errors ul { margin:0; padding-left:1.25rem; }
.oz-contact a,.oz-contact-details a { color:var(--oz-context-accent); text-decoration:underline; text-underline-offset:.2em; }
.oz-contact__direct { margin-top:var(--oz-space-lg); }
.oz-field-error { color:var(--oz-color-error); font-size:var(--oz-font-size-small); font-weight:700; }
/* Keuzerondjes en vinkjes als optiekaartjes. */
.oz-contact__choices { border:0; margin:0; padding:0; min-width:0; display:grid; gap:var(--oz-space-xs); }
.oz-contact__choices legend { padding:0; margin-bottom:var(--oz-space-xs); }
.oz-contact__options { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr)); gap:var(--oz-space-sm); }
.oz-contact .oz-contact__choice { display:flex; align-items:center; gap:var(--oz-space-sm); min-height:48px; padding:.75rem 1rem; border:1px solid var(--oz-color-border); border-radius:var(--oz-form-radius); background:var(--oz-color-background); font-weight:400; cursor:pointer; transition:border-color var(--oz-duration-fast,.16s) ease, box-shadow var(--oz-duration-fast,.16s) ease; }
.oz-contact .oz-contact__choice input { width:1.125rem; height:1.125rem; min-height:0; margin:0; flex-shrink:0; accent-color:var(--oz-color-primary); }
.oz-contact .oz-contact__choice:hover { border-color:var(--oz-color-primary); }
.oz-contact .oz-contact__choice:has(input:checked) { border-color:var(--oz-color-primary); box-shadow:inset 0 0 0 1px var(--oz-color-primary); background:color-mix(in srgb,var(--oz-color-primary) 6%,var(--oz-color-background)); }
.oz-contact .oz-contact__choice:has(input:focus-visible) { outline:3px solid var(--oz-context-accent); outline-offset:2px; }
/* Bestanden: de (onzichtbare) invoer ligt over de hele zone, dus klikken én slepen werken native. */
.oz-contact__drop { position:relative; border:2px dashed var(--oz-color-border); border-radius:var(--oz-radius-large); background:var(--oz-color-background); transition:border-color var(--oz-duration-fast,.16s) ease, background-color var(--oz-duration-fast,.16s) ease; }
.oz-contact__drop:hover,.oz-contact__drop.is-dragging { border-color:var(--oz-color-primary); background:color-mix(in srgb,var(--oz-color-primary) 5%,var(--oz-color-background)); }
.oz-contact__drop:has(input:focus-visible) { outline:3px solid var(--oz-context-accent); outline-offset:3px; }
.oz-contact .oz-contact__drop .oz-contact__file-input { position:absolute; inset:0; width:100%; height:100%; min-height:0; opacity:0; cursor:pointer; padding:0; border:0; }
.oz-contact__drop-text { display:flex; flex-direction:column; align-items:center; gap:.25rem; padding:var(--oz-space-lg); text-align:center; color:var(--oz-color-text-muted); pointer-events:none; }
.oz-contact__drop-text svg { color:var(--oz-color-primary); }
.oz-contact__drop-text strong { color:var(--oz-color-primary); }
.oz-contact__drop-text small { font-size:var(--oz-font-size-small); }
.oz-contact__files { list-style:none; margin:0; padding:0 var(--oz-space-md); display:grid; gap:var(--oz-space-2xs); position:relative; z-index:1; }
.oz-contact__files:not(:empty) { padding-bottom:var(--oz-space-md); }
.oz-contact__files li { display:flex; justify-content:space-between; align-items:center; gap:var(--oz-space-sm); padding:.5rem .75rem; border-radius:var(--oz-radius-small); background:var(--oz-color-surface); font-size:var(--oz-font-size-small); overflow-wrap:anywhere; }
.oz-contact__files li.oz-field-error { background:var(--oz-color-error-surface); }
.oz-contact .oz-contact__files .oz-contact__file-remove { min-height:32px; padding:0 .5rem; border:0; background:none; color:var(--oz-color-error); font:inherit; font-weight:700; text-decoration:underline; cursor:pointer; }
.oz-contact__order-other { display:grid; gap:var(--oz-space-xs); margin-top:var(--oz-space-sm); }
.oz-contact__info-title { font-weight:700; color:var(--oz-color-heading); }
.oz-contact__info { padding:var(--oz-space-md); border-radius:var(--oz-form-radius); background:var(--oz-color-background); border-left:4px solid var(--oz-color-primary); }
@media (prefers-reduced-motion: no-preference) {
 .oz-contact__field.is-revealed { animation:oz-disclose var(--oz-duration,.24s) var(--oz-ease,ease); }
}
@media (min-width:48rem) {
 .oz-contact__form { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:var(--oz-space-lg); }
 .oz-contact__form > * { grid-column:1/-1; }
 .oz-contact__form > .oz-contact__field--half { grid-column:auto; }
}
.oz-content-page .oz-contact .oz-contact__form :is(input:not([type=radio],[type=checkbox],[type=file]),select,textarea) { border:1px solid var(--oz-color-border); border-radius:var(--oz-form-radius); font:inherit; padding:.75rem 1rem; min-height:48px; background:var(--oz-color-background); color:var(--oz-color-ink); }
.oz-content-page .oz-contact .oz-contact__form [aria-invalid="true"] { border-color:var(--oz-color-error); }
.oz-content-page .oz-contact .oz-contact__form > button.oz-button--primary { background:var(--oz-color-primary); color:var(--oz-color-on-primary); }
.oz-content-page .oz-contact .oz-contact__form > button.oz-button--primary:hover { background:var(--oz-color-primary-hover); }
.oz-content-page .oz-education-hero .elementor-button { background:var(--oz-color-primary); color:var(--oz-color-on-primary); }
.oz-content-page .oz-education-hero .elementor-button:hover { background:var(--oz-color-primary-hover); }
.oz-content-page :is(.oz-faq,.oz-contact,.oz-contact-details) a:not(.oz-button):not(.button):not(.wp-block-button__link):not(.elementor-button) { color:var(--oz-context-accent); }
