/* Shared form: Festzelt OS typography and gold, with the reference's side panel. */
html.contact-open { overflow:hidden; }
.contact-open-link { display:grid; place-items:center; width:var(--touch-target); height:var(--touch-target); border-radius:var(--radius-control); color:var(--ink); transition:background 160ms var(--ease-out),transform 120ms var(--ease-out); }
.contact-open-link svg { width:1.25em; height:1.25em; }
.contact-drawer { position:fixed; inset:0 0 0 auto; width:min(100%, 760px); height:100%; height:100dvh; max-height:100dvh; max-width:100%; margin:0; padding:0; border:0; border-radius:var(--radius-panel) 0 0 var(--radius-panel); background:var(--surface); color:var(--ink); overflow:auto; overscroll-behavior:contain; scrollbar-color:var(--muted) var(--surface); opacity:1; transform:translateX(0); transition:transform 200ms var(--ease-out),opacity 200ms var(--ease-out),display 200ms allow-discrete,overlay 200ms allow-discrete; }
.contact-drawer:not([open]) { opacity:0; transform:translateX(100%); }
@starting-style { .contact-drawer[open] { opacity:0; transform:translateX(100%); } }
.contact-drawer::backdrop { background:rgb(0 0 0 / .38); opacity:1; transition:opacity 200ms var(--ease-out),display 200ms allow-discrete,overlay 200ms allow-discrete; }
@starting-style { .contact-drawer[open]::backdrop { opacity:0; } }
.contact-drawer:not([open])::backdrop { opacity:0; }
.contact-close { position:absolute; z-index:1; top:var(--space-3); right:var(--space-3); width:var(--touch-target); height:var(--touch-target); display:grid; place-items:center; border:0; border-radius:var(--radius-control); color:#1d1d1f; background:rgb(255 255 255 / .5); transition:background 160ms var(--ease-out),transform 120ms var(--ease-out); }
.contact-card { color:var(--ink); background:var(--surface); }
main .contact-card { max-width:760px; margin-inline:auto; border-radius:var(--radius-panel); overflow:hidden; border:1px solid var(--line); }
.contact-card-head { display:flex; gap:var(--space-4); align-items:center; padding:var(--space-5) var(--space-6); background:var(--gold); color:#1d1d1f; }
.contact-drawer .contact-card-head { padding-right:var(--space-8); }
.contact-card-head>img { width:var(--space-8); height:var(--space-8); border-radius:50%; object-fit:cover; object-position:50% 25%; flex-shrink:0; }
.contact-card-head strong { display:block; font-size:1.125rem; line-height:1.4; }
.contact-card-head span { display:block; font-size:.875rem; }
.contact-card-links { display:flex; flex-wrap:wrap; column-gap:var(--space-4); font-size:.875rem; margin-top:var(--space-1); }
.contact-card-links a { display:inline-flex; align-items:center; min-height:26px; overflow-wrap:anywhere; }
.contact-card-body { padding:var(--space-5) var(--space-6) var(--space-6); }
.contact-card-body h2 { color:var(--ink); font-size:clamp(1.5rem, 3vw, 1.875rem); line-height:1.2; letter-spacing:-.03em; margin:0 0 var(--space-3); }
.contact-card-body .contact-intro { color:var(--muted); font-size:1rem; line-height:1.5; margin:0 0 var(--space-5); }
.contact-card .contact-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-4) var(--space-5); padding:0; background:none; border:0; }
.contact-form>label { display:flex; flex-direction:column; gap:var(--space-1); min-width:0; color:var(--muted); font-size:.8125rem; font-weight:500; }
.contact-form input:not([type=checkbox]),.contact-form select,.contact-form textarea { width:100%; min-width:0; min-height:var(--touch-target); border:0; border-bottom:1px solid var(--muted); border-radius:0; padding:var(--space-2) 0; background:transparent; color:var(--ink); font:400 1rem/1.5 var(--font); box-shadow:none; caret-color:var(--accent-text); }
.contact-form select { color-scheme:light dark; }
.contact-form option { background:var(--surface); color:var(--ink); }
.contact-form textarea { resize:vertical; }
.contact-form ::placeholder { color:var(--muted); opacity:1; }
.contact-form :is(input,textarea,select):focus-visible { outline:2px solid var(--focus); outline-offset:var(--space-1); }
.contact-form .contact-wide { grid-column:1/-1; }
.contact-form .demo-consent { flex-direction:row; align-items:flex-start; gap:var(--space-3); font-size:.8125rem; line-height:1.5; }
.contact-form .demo-consent input { accent-color:var(--accent-text); width:1.125rem; height:1.125rem; flex-shrink:0; margin:var(--space-1) 0 0; }
.contact-form a,.contact-load-error a { text-decoration:underline; text-underline-offset:.2em; }
.contact-form .contact-required,.contact-form .demo-hint { font-size:.8125rem; line-height:1.5; color:var(--muted); margin:0; }
.contact-form button[type=submit] { min-height:var(--touch-target); justify-content:space-between; background:var(--gold); color:#1d1d1f; border:0; box-shadow:none; margin:0; }
.contact-form button:disabled { opacity:.65; cursor:wait; transform:none; }
.contact-close:active,.contact-open-link:active { transform:scale(.97); }
.contact-load-error { padding:var(--space-8) var(--space-6); }
@media(hover:hover) and (pointer:fine) {
 .contact-open-link:hover { background:var(--sand); }
 .contact-close:hover { background:#fff; }
 .contact-form button[type=submit]:hover { background:var(--gold); filter:brightness(.95); transform:none; }
 .contact-card-links a:hover { text-decoration:underline; }
}
@media(max-width:600px) {
 .contact-drawer { border-radius:0; }
 .contact-card-head { padding:var(--space-5) var(--space-4); gap:var(--space-3); }
 .contact-card-head>img { width:var(--space-7); height:var(--space-7); }
 .contact-card-links { flex-direction:column; }
 .contact-card-body { padding:var(--space-5) var(--space-4); }
 .contact-card .contact-form { grid-template-columns:1fr; }
 .contact-card-head strong { font-size:1rem; }
}
@media(prefers-reduced-motion:reduce) {
 .contact-drawer,.contact-drawer:not([open]) { transform:none; }
 .contact-close:active,.contact-open-link:active { transform:none; }
}
/* Override legacy form margins and minimum heights, including hidden controls. */
.contact-card .contact-form>label { margin:0; }
.contact-card .contact-form :is(input:not([type=checkbox]),select,textarea) { margin:0; border-radius:0; background:transparent; }
.contact-card .contact-form input[type=checkbox] { min-height:0; height:1.125rem; width:1.125rem; }
.contact-card .contact-form [hidden] { display:none!important; }
.contact-card .contact-form textarea { min-height:var(--space-8); height:var(--space-8); }
.contact-card .contact-form .demo-status { margin:0; }
