/* Einwilligungsbanner und Kontaktformular-Platzhalter (Dimi_2). Farben aus den Tokens von v2.css. */
.dm-consent { position: fixed; z-index: 60; left: 8px; right: 8px; bottom: 8px; max-width: 34rem; max-height: calc(100svh - 16px); overflow: auto; padding: 10px 14px 0; background: var(--paper); color: var(--ink); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 12px 40px rgba(9, 26, 44, .18); font-size: 14px; line-height: 1.4; }
.dm-consent[hidden] { display: none; }
.dm-consent p { margin: 0 0 6px; }
.dm-consent .dm-consent-h { font-weight: 600; font-size: 1.0625rem; }
.dm-consent .dm-consent-h:focus { outline: none; }
.dm-consent a { color: var(--ink); text-decoration: underline; text-underline-offset: .18em; }
/* Kompakt: Text vollständig sichtbar; nur wenn die Höhe nicht reicht, scrollt der Text, die beiden Knöpfe bleiben unten angeheftet */
.dm-consent-actions { position: sticky; bottom: 0; z-index: 1; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px; padding: 8px 0 10px; background: var(--paper); border-top: 1px solid var(--line); }
.dm-consent-actions button, .dm-hs-load { flex: 1 1 10rem; min-height: 44px; padding: 0 18px; font: inherit; font-weight: 500; color: var(--white); background: var(--navy, var(--ink)); border: 2px solid var(--navy, var(--ink)); border-radius: 999px; cursor: pointer; }
.dm-consent-actions button { flex-basis: 7rem; padding: 0 8px; }
.dm-consent-actions button:hover, .dm-hs-load:hover:not(:disabled) { background: var(--petrol); border-color: var(--petrol); }
.dm-consent :focus-visible, .dm-hs :focus-visible { outline: 2px solid var(--ocker); outline-offset: 2px; }
.dm-hs-load:disabled { opacity: .6; cursor: progress; }
.dm-hs { max-width: 46rem; margin-inline: auto; text-align: center; min-height: 14rem; }
.dm-hs .dm-hs-load { flex: none; min-width: 14rem; }
.dm-hs-note, .dm-hs-alt { color: var(--muted); font-size: .9375rem; }
.dm-hs-intro { margin: 0 0 20px; }
.dm-hs-status { min-height: 1.5em; margin: 8px 0; }
.dm-hs-status.is-err { color: var(--error); }
.dm-hs.is-loaded { text-align: left; }
.dm-hs.is-loaded :is(.dm-hs-load, .dm-hs-note, .dm-hs-intro) { display: none; }
/* Querformat: volle Breite, damit der Text weniger Zeilen braucht; höchstens 85 % der Höhe */
@media (orientation: landscape) and (max-height: 520px) { .dm-consent { max-width: none; max-height: 85svh; } }
@media (min-width: 834px) { .dm-consent { left: auto; right: 24px; bottom: 24px; } }
.dm-consent-state { font-size: .9375rem; color: var(--muted); }
.dm-consent-state:empty { display: none; }
.dm-hs.is-loaded:not(.is-unconfirmed) .dm-hs-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.dm-hs-target:focus { outline: 2px solid var(--ocker); outline-offset: 4px; }
/* Paket gc (T-022, Variante C): Karte um das HubSpot-Formular wie in der Vorschau (vorschau-test.css .sim-form), ohne gestrichelten Testrahmen.
   Das Formular selbst ist ein v4-Iframe von hsforms.net; Felder, Button und Farben darin gestaltet nur das HubSpot-Portal. */
.dm-hs-target:not(:empty) { max-width: 40rem; margin: 24px auto; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius, 16px); background: var(--paper); color: var(--ink); text-align: left; }
.dm-hs-target iframe { display: block; width: 100%; border: 0; border-radius: 10px; background: var(--white); }
@media (max-width: 480px) { .dm-hs-target:not(:empty) { padding: 16px; margin-inline: 0; } }
