/* mvform look for muvamo (muvamo-design: Formularfeld, Knopf, Fokusrahmen, Farben; design-handwerk; 2026-10-26, round 2).
   One design per placement: contact (.mvf-plain) on linen, newsletter block (.mvf-l-hero) with the photo beside the text,
   newsletter in the blue page footer (.mvf-l-footer) without a box. Every colour pair is in kontrast-tabelle.md. */
.mvf{--ink:var(--mv-ink,#111);--sub:#5a5f69;--err:#a12b2b;--ok:#2f6b46;--fg:var(--ink);--muted:var(--sub);--btn:var(--mv-blue,#587abc);--btn-fg:#fff;--accent:var(--ink);
color:var(--fg);font-family:var(--mv-font-body);font-size:18px;line-height:1.6;-webkit-text-size-adjust:100%}
.mvf *,.mvf *::before,.mvf *::after{box-sizing:border-box}
.mvf .mvf-fields{gap:24px 16px}
.mvf label{font-size:15px;font-weight:700;line-height:1.4;color:var(--fg);margin:0 0 8px}
.mvf .mvf-optional{font-weight:500;color:var(--muted)}
.mvf .mvf-help{font-size:15px;line-height:1.5;color:var(--muted);margin:-4px 0 8px!important}
.mvf input:not([type=checkbox]):not([type=radio]),.mvf select{height:48px;padding:0 16px}
.mvf textarea{min-height:176px;padding:12px 16px;line-height:1.5}
.mvf input:not([type=checkbox]):not([type=radio]),.mvf textarea,.mvf select{font-size:18px;font-weight:500;color:var(--ink);background:#fff;border:1px solid var(--sub);border-radius:12px;transition:border-color .15s,box-shadow .15s}
@media (hover:hover) and (pointer:fine){.mvf input:not([type=checkbox]):hover,.mvf textarea:hover,.mvf select:hover{border-color:var(--ink)}}
.mvf input:focus-visible,.mvf textarea:focus-visible,.mvf select:focus-visible,.mvf .mvf-submit:focus-visible,.mvf a:focus-visible{outline:3px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 2px #fff}
.mvf input:disabled,.mvf textarea:disabled,.mvf select:disabled{background:#efefef;color:#5c5c5c}
/* A field with a mistake: red edge inside the white field (7.25:1 on white), so it shows on every ground. */
.mvf .mvf-has-error input:not([type=checkbox]):not([type=radio]),.mvf .mvf-has-error textarea,.mvf .mvf-has-error select{border-color:var(--err);box-shadow:inset 0 0 0 1px var(--err)}
.mvf .mvf-has-error input[type=checkbox]{outline:2px solid var(--err);outline-offset:1px}
/* Error at the field: a mark plus text, never colour alone. */
.mvf .mvf-error{display:flex;gap:8px;align-items:flex-start;font-size:15px;font-weight:700;line-height:1.4;color:var(--err);margin:8px 0 0!important}
.mvf-error::before,.mvf-success-title::before,.mvf-sent .mvf-submit-label::before{content:"";flex:none;width:18px;height:18px;margin-top:1px;background:currentColor;-webkit-mask:var(--mvf-icon) center/contain no-repeat;mask:var(--mvf-icon) center/contain no-repeat}
.mvf-error::before{--mvf-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1a11 11 0 1 0 0 22 11 11 0 0 0 0-22Zm1 17h-2v-2h2Zm0-4h-2V6h2Z'/%3E%3C/svg%3E")}
.mvf-success-title::before,.mvf-sent .mvf-submit-label::before{--mvf-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1a11 11 0 1 0 0 22 11 11 0 0 0 0-22Zm-1.6 15.6-4.3-4.3 1.4-1.4 2.9 2.9 6.2-6.2 1.4 1.4Z'/%3E%3C/svg%3E")}
.mvf input[type=checkbox]{width:24px;height:24px;margin:0;accent-color:var(--accent);flex:none;cursor:pointer}
.mvf-check label{font-weight:500;font-size:15px;line-height:1.5;margin:0;cursor:pointer}
.mvf-check a,.mvf .mvf-summary a{color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.mvf-actions{margin-top:32px}
.mvf .mvf-submit{min-height:48px;padding:8px 24px;border:0;border-radius:12px;background-color:var(--btn);color:var(--btn-fg);font-size:18px;font-weight:700;line-height:1.3;transition:background-color .2s,transform .15s;user-select:none;-webkit-user-select:none}
@media (hover:hover) and (pointer:fine){.mvf .mvf-submit:hover{background-image:linear-gradient(rgba(17,17,17,.1),rgba(17,17,17,.1))}}
.mvf .mvf-submit:active{background-image:linear-gradient(rgba(17,17,17,.2),rgba(17,17,17,.2));transform:scale(.97)}
.mvf-submit-label{display:inline-flex;gap:8px;align-items:center}
.mvf .mvf-submit.mvf-sent{background-color:var(--ok);background-image:none;color:#fff}
.mvf-sent .mvf-submit-label::before{animation:mvf-pop .47s var(--mvf-spring) both}
@keyframes mvf-pop{from{transform:scale(.4);opacity:0}}
.mvf .mvf-summary{border:1px solid var(--err);border-radius:15px;padding:16px;margin:0 0 24px;background:#fff;color:var(--ink)}
.mvf .mvf-summary-title{font-size:18px;font-weight:700;line-height:1.4;color:var(--err);margin:0!important}
.mvf .mvf-summary ul{margin:8px 0 0!important;padding:0 0 0 20px!important;list-style:disc}
.mvf .mvf-summary li{font-size:15px;line-height:1.5;margin:4px 0!important;padding:0!important}
.mvf .mvf-success{border:1px solid var(--ok);border-radius:15px;padding:24px;background:#fff;color:var(--ink)}
.mvf .mvf-success-title{display:flex;gap:8px;align-items:flex-start;font-size:18px;font-weight:700;line-height:1.4;color:var(--ok);margin:0!important}
.mvf-success-title::before{width:24px;height:24px;margin-top:0}
.mvf .mvf-success p:not(.mvf-success-title){font-size:18px;line-height:1.5;margin:8px 0 0 32px!important}
/* Long addresses (anna-lena.mueller@example.com at 320 px) break instead of sticking out. */
.mvf .mvf-success p,.mvf .mvf-error,.mvf .mvf-summary li{overflow-wrap:anywhere}
.mvf .mvf-noscript{border:1px solid var(--ink);border-radius:15px;padding:16px!important;margin:0 0 24px!important;font-size:18px;line-height:1.5;color:var(--ink);background:#fff}
@media (prefers-reduced-motion:reduce){.mvf .mvf-submit:active{transform:none}.mvf-sent .mvf-submit-label::before{animation:none}}

/* ---------- Contact: linen surface, name and email side by side ---------- */
.mvf-plain{max-width:48rem;background:var(--mv-linen,#f4f0eb);border-radius:15px;padding:48px}
@media (max-width:767px){.mvf-plain{padding:32px 16px}}

/* ---------- Newsletter block: photo beside the text on linen ---------- */
.mvf-block{max-width:1080px;margin:0 auto;container:mvfb/inline-size}
.mvf-inner{position:relative;border-radius:15px;overflow:hidden}
.mvf-block .mvf-title{font-family:var(--mv-font-body);font-weight:700;color:var(--fg)!important;margin:0!important;padding:0!important;letter-spacing:0;text-wrap:balance}
.mvf-block .mvf-lead{color:var(--fg);margin:0!important;text-wrap:pretty}
.mvf-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--mvf-focus,50% 50%)}
.mvf-l-hero .mvf-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:640px;background:var(--mv-linen,#f4f0eb)}
.mvf-l-hero .mvf-media{position:relative;background:#1f2a44}
.mvf-l-hero .mvf-photo{position:absolute;inset:0}
.mvf-l-hero .mvf-body{align-self:center;padding:80px 56px}
.mvf-l-hero .mvf-head{margin:0 0 48px}
.mvf-l-hero .mvf-title{font-size:40px;line-height:1.1;color:var(--mv-blue,#587abc)!important}
.mvf-l-hero .mvf-lead{font-size:18px;line-height:1.6;margin-top:16px!important;max-width:30em}
@container mvfb (max-width:960px){.mvf-l-hero .mvf-body{padding:64px 40px}}
@container mvfb (max-width:767px){
.mvf-l-hero .mvf-inner{grid-template-columns:minmax(0,1fr);min-height:0}
.mvf-l-hero .mvf-media{aspect-ratio:4/3}
.mvf-l-hero .mvf-body{padding:32px 16px 48px}
.mvf-l-hero .mvf-head{margin-bottom:32px}
.mvf-l-hero .mvf-title{font-size:32px;line-height:1.15}}

/* ---------- Newsletter in the page footer: as the footer box on live (Michael, 26.10.2026) ----------
   The footer column is the peach box (theme and Divi: #f6d8c1, rounding 15, padding 30 / phone 20); the block itself
   draws nothing. Heading blue 34 px (phone 21), sentence 18 px, white fields without edge (rounding 3, 43 px high) with
   the label in the field, first and last name side by side, email below, button over the full width with a 2 px black
   edge. Focus ring, mistakes and thank-you stay those of the new block. */
.mvf-l-footer{max-width:none;margin:0;--fg:#000;--btn-fg:#000;--accent:var(--ink)}
.mvf-l-footer .mvf-inner{overflow:visible;border-radius:0;background:none}
.mvf-l-footer .mvf-head{margin:0}
.mvf-l-footer .mvf-title{font-size:34px;line-height:1.3;color:var(--mv-blue,#587abc)!important}
.mvf-l-footer .mvf-lead{font-size:18px;line-height:1.6;max-width:none}
.mvf-l-footer .mvf-fields{gap:14px 18px}
.mvf-l-footer .mvf-field:not(.mvf-type-consent)>label{position:absolute!important;width:1px;height:1px;margin:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mvf-l-footer input:not([type=checkbox]):not([type=radio]){height:43px;padding:0 14px;border:0;border-radius:3px;font-size:16px;font-weight:400;color:rgba(0,0,0,.85)}
.mvf-l-footer input::placeholder{color:rgba(0,0,0,.55);opacity:1}
.mvf-l-footer .mvf-check{align-items:flex-start}
.mvf-l-footer .mvf-check input[type=checkbox]{width:16px;height:16px;margin-top:3px}
.mvf-l-footer .mvf-check label{font-size:16px;font-weight:400;line-height:1.35}
.mvf-l-footer .mvf-check a{color:var(--mv-blue,#587abc);font-weight:400;text-decoration:none}
.mvf-l-footer .mvf-check a:hover,.mvf-l-footer .mvf-check a:focus-visible{text-decoration:underline}
.mvf-l-footer .mvf-actions{margin-top:22px}
.mvf-l-footer .mvf-submit{width:100%;min-height:50px;padding:6px 20px;background:transparent;color:#000;border:2px solid #000;border-radius:3px;font-size:20px;font-weight:500}
.mvf-l-footer .mvf-submit.mvf-sent{background-color:var(--ok);border-color:var(--ok);color:#fff}
@container mvfb (max-width:500px){.mvf-l-footer .mvf-title{font-size:21px}.mvf-l-footer .mvf-head{margin-bottom:0}.mvf-l-footer .mvf-fields{gap:14px}}

/* ---------- Home page (Michael, 26.10.2026): the big newsletter block over the full page width ----------
   Surface and photo reach the edges; heading, sentence and form keep a reading width. */
/* Only the innermost section around the block: the home page wraps all its sections in one outer section, which must keep its rows. */
body.home .et_pb_section:has(.mvf-l-hero):not(:has(.et_pb_section .mvf-l-hero)),body.home .et_pb_section:has(.mvf-l-hero):not(:has(.et_pb_section .mvf-l-hero))>.et_pb_row{width:100%!important;max-width:none!important;padding-left:0!important;padding-right:0!important}
body.home .et_pb_section:has(.mvf-l-hero):not(:has(.et_pb_section .mvf-l-hero)){padding-top:0!important;margin-top:0!important}
body.home .mvf-l-hero{max-width:none}
body.home .mvf-l-hero .mvf-inner{border-radius:0;min-height:720px}
/* Text edge flush with the page container of the home page (Divi rows: 90% wide, phone 93%); measure at most 640 px. */
body.home .mvf-l-hero .mvf-body{width:100%;max-width:none;padding:96px 5cqw 96px max(64px,calc(45cqw - 640px))}
@container mvfb (max-width:960px){body.home .mvf-l-hero .mvf-body{padding:64px 5cqw 64px 40px}}
@container mvfb (max-width:767px){body.home .mvf-l-hero .mvf-inner{min-height:0}body.home .mvf-l-hero .mvf-body{max-width:none;padding:32px 3.5cqw 48px}}
