/* mvform: structure only, neutral. The look of a site comes from sites/<site>/style.css (2026-10-26). */
.mvf{max-width:40rem}
.mvf [hidden]{display:none!important}
.mvf-form{container:mvff/inline-size}
.mvf-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.mvf-field{grid-column:1/-1;min-width:0;margin:0}
/* Turnstile box (1.6.1): the field gap above it when Cloudflare shows it. Hidden it has no height, so this margin collapses
   into the margin above the button and the gap there stays as the site set it; no negative margin needed. */
.mvf-captcha{margin-top:16px}
.mvf-fold{display:contents}
@container mvff (min-width:400px){.mvf-half{grid-column:auto}}
/* Groups and composite fields (1.1.0): a fieldset with its own two-column grid, no frame of its own (the site styles it). */
.mvf fieldset.mvf-group,.mvf fieldset.mvf-composite{border:0;padding:0;margin:0;min-width:0}
.mvf-group-fields,.mvf-parts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.mvf-group>legend,.mvf-composite>legend{padding:0}
/* Box to tick with a heading of its own (1.4.0, "legend"). */
.mvf fieldset.mvf-has-legend{border:0;padding:0;margin:0;min-width:0}
.mvf-has-legend>legend{padding:0}
@container mvff (max-width:399px){.mvf-parts .mvf-half,.mvf-group-fields .mvf-half{grid-column:1/-1}}
.mvf label{display:block}
.mvf input:not([type=checkbox]):not([type=radio]),.mvf textarea,.mvf select{display:block;width:100%;box-sizing:border-box;font:inherit;margin:0}
.mvf textarea{resize:vertical}
.mvf p{margin:0;padding:0!important}
.mvf-check{display:flex;gap:12px;align-items:flex-start}
.mvf-check label{display:inline}
/* Required star (1.3.0, mode "stern"); the site sets the colour with --mvf-required-color. */
.mvf-required{color:var(--mvf-required-color,#d63637);font-weight:400}
.mvf-hp{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.mvf-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.mvf-submit[aria-disabled=true]{cursor:progress}
.mvf-spinner{display:none;width:1em;height:1em;box-sizing:border-box;border:2px solid currentColor;border-right-color:transparent;border-radius:50%}
.mvf-busy .mvf-spinner{display:inline-block;animation:mvf-spin .8s linear infinite}
.mvf-sent .mvf-spinner{display:none}
@keyframes mvf-spin{to{transform:rotate(360deg)}}
/* Spring, damping 1.0, response 0.35 s (design-handwerk, Bewegung). Hidden state only in "from". */
.mvf{--mvf-spring:linear(0,.099,.285,.47,.624,.741,.825,.884,.924,.951,.968,.98,.987,.992,.995,.997,1)}
@keyframes mvf-in{from{opacity:0;transform:translateY(12px)}}
@keyframes mvf-fade{from{opacity:0}}
.mvf-enter,.mvf-unfold .mvf-fold>*,.mvf-unfold .mvf-actions{animation:mvf-in .47s var(--mvf-spring) both}
.mvf-unfold .mvf-fold>:nth-child(2){animation-delay:.04s}.mvf-unfold .mvf-fold>:nth-child(3),.mvf-unfold .mvf-actions{animation-delay:.08s}
@media (prefers-reduced-motion:reduce){
.mvf-busy .mvf-spinner{animation:none;border-right-color:currentColor;opacity:.6}
.mvf-enter,.mvf-unfold .mvf-fold>*,.mvf-unfold .mvf-actions{animation:mvf-fade .2s ease-out both;animation-delay:0s}}
.mvf-summary:focus,.mvf-success:focus{outline:none}
