/* HM V8.1 0.4.41 – scoped form refinements.
 * Existing site-local Bricolage Grotesque is reused; no font service is loaded.
 * Approved calculator and tariff-card layouts remain unchanged.
 */
body :is(.hmbr81-original,.hmbr81-v81-result-host) {
  --hmbr81-font-family:"Bricolage Grotesque",Arial,sans-serif;
  font-family:var(--hmbr81-font-family);
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) :is(input,select,textarea,button),
body dialog.hmbr81-help-dialog,
body dialog.hmbr81-help-dialog :is(p,li,button,h3) {
  font-family:"Bricolage Grotesque",Arial,sans-serif!important;
}

/* Only steps 3–5: compact controls, a stable border on focus and a clear error.
 * Padding is identical in all states, so neither content nor the next field moves.
 */
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app .hmbr81-app__field.hmbr81-float-field > :is(input,select) {
  height:48px!important;
  min-height:48px!important;
  border-width:1px!important;
  border-radius:4px!important;
  padding-top:8px!important;
  padding-bottom:8px!important;
  font-size:1rem!important;
  line-height:1.4!important;
  box-shadow:none!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app .hmbr81-app__field.hmbr81-float-field:focus-within > :is(input,select) {
  border-width:1px!important;
  border-color:#005e52!important;
  box-shadow:inset 0 0 0 1px #005e52!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app .hmbr81-app__field.hmbr81-float-field.has-error > :is(input,select) {
  border:1px solid #b71919!important;
  background:#f9dede!important;
  color:#432121!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app .hmbr81-app__field.hmbr81-float-field.has-error:focus-within > :is(input,select) {
  box-shadow:inset 0 0 0 1px #b71919!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app .hmbr81-app__error:empty {
  display:none!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app .has-error > .hmbr81-app__error:not(:empty) {
  display:block!important;
  position:relative!important;
  margin:0!important;
  padding:7px 10px 7px 32px!important;
  min-height:32px!important;
  border-radius:0 0 4px 4px;
  background:#b71919!important;
  color:#fff!important;
  font:500 .875rem/1.4 "Bricolage Grotesque",Arial,sans-serif!important;
  overflow-wrap:anywhere;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app .has-error > .hmbr81-app__error:not(:empty)::before {
  content:"!";
  position:absolute;
  left:10px;
  top:8px;
  width:15px;
  height:15px;
  border:1px solid currentColor;
  border-radius:50%;
  text-align:center;
  font:750 12px/14px "Bricolage Grotesque",Arial,sans-serif;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__hint-wrap > button.hmbr81-field-info {
  top:7px!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__hint-wrap--choice:not(.hmbr81-app__hint-wrap--holder) > button.hmbr81-field-info {
  top:-2px!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__hint-wrap--holder > button.hmbr81-field-info,
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__hint-wrap--iconfield > button.hmbr81-field-info {
  top:7px!important;
  right:43px!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__field-counter {
  top:16px!important;
}

/* Explanations augment the accepted cards; the card grid is not restyled. */
body :is(.hmbr81-original,.hmbr81-v81-result-host) button.hmbr81-content-info-button {
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  max-width:100%;
  min-height:40px!important;
  margin:7px 0 0!important;
  padding:7px 0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#005e52!important;
  box-shadow:none!important;
  font:600 .9rem/1.4 "Bricolage Grotesque",Arial,sans-serif!important;
  text-align:left!important;
  text-transform:none!important;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) button.hmbr81-content-info-button:hover {
  color:#00745e!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) button.hmbr81-content-info-button:focus-visible {
  outline:2px solid #005e52!important;
  outline-offset:3px!important;
}

/* Native details keeps the quote breakdown keyboard-accessible without scripts. */
body .hmbr81-original .hmbr81-progress__summary.hmbr81-price-overview {
  display:block;
  align-self:stretch;
  position:relative;
  min-width:0;
}
body .hmbr81-original .hmbr81-price-overview > summary.hmbr81-price-overview__toggle {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  list-style:none;
  min-height:44px;
  padding:4px 0;
  color:#005e52;
  cursor:pointer;
}
body .hmbr81-original .hmbr81-price-overview > summary::-webkit-details-marker { display:none; }
body .hmbr81-original .hmbr81-price-overview > summary::marker { content:""; }
body .hmbr81-original .hmbr81-price-overview > summary::after {
  content:"";
  width:8px;
  height:8px;
  flex:0 0 8px;
  margin:0 4px 4px 0;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg);
}
body .hmbr81-original .hmbr81-price-overview[open] > summary::after { transform:translateY(4px) rotate(225deg); }
body .hmbr81-original .hmbr81-price-overview > summary:focus-visible {
  outline:2px solid #005e52;
  outline-offset:2px;
  border-radius:4px;
}
body .hmbr81-original .hmbr81-price-overview__body {
  clear:both;
  padding:15px 16px;
  margin:7px 0 0;
  border:1px solid #d2e5db;
  border-radius:4px;
  background:#edf6f2;
  color:#193e34;
  font:400 .95rem/1.45 "Bricolage Grotesque",Arial,sans-serif;
}
body .hmbr81-original .hmbr81-price-overview__items {
  display:grid;
  gap:8px;
  list-style:none;
  padding:0!important;
  margin:0!important;
}
body .hmbr81-original .hmbr81-price-overview__items > li,
body .hmbr81-original .hmbr81-price-overview__total {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  min-width:0;
  overflow-wrap:anywhere;
}
body .hmbr81-original .hmbr81-price-overview__items > li > :last-child,
body .hmbr81-original .hmbr81-price-overview__total > :last-child {
  flex:0 0 auto;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
body .hmbr81-original .hmbr81-price-overview__total {
  margin-top:12px;
  padding-top:11px;
  border-top:1px solid #c9ddd2;
  color:#005e52;
  font-weight:750;
}
body dialog.hmbr81-help-dialog {
  border-radius:5px;
}
@media (max-width:620px) {
  body .hmbr81-original .hmbr81-price-overview > summary.hmbr81-price-overview__toggle { gap:8px; }
  body .hmbr81-original .hmbr81-price-overview__body { padding:12px; }
  body .hmbr81-original .hmbr81-price-overview__items > li,
  body .hmbr81-original .hmbr81-price-overview__total { gap:8px; }
}
/* A floated caption sits above the control; it does not need the input's
 * reserved icon space. Keep short captions and the required marker together. */
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app .hmbr81-app__field.hmbr81-float-field:is(.hmbr81-is-floated,:focus-within) > .hmbr81-app__field-label {
  max-width:calc(100% - 24px)!important;
  white-space:nowrap!important;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* v1.0.13: compact checkout, visible controls, readable text, reference-style SEPA.
   LAST stylesheet in the V8.1 chain; does not affect Original pricing/shortcodes. */
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app {
  color:#222222!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app :is(
  .hmbr81-app__intro,.hmbr81-app__minor,.hmbr81-app__field-label,
  .hmbr81-app__choice legend,.hmbr81-app__health p,.hmbr81-app__health li,
  .hmbr81-app__legal,.hmbr81-app__legal-section p,.hmbr81-app__legal-section h4,
  .hmbr81-app__legal-section h5,.hmbr81-app__payment h4,.hmbr81-app__person h4,
  .hmbr81-app__mandate h5,.hmbr81-app__mandate p,.hmbr81-app__check,
  .hmbr81-app__check em,.hmbr81-app__doc-list li,.hmbr81-app__review dt,
  .hmbr81-app__review dd,.hmbr81-app__summary-section,.hmbr81-app__summary-subhead,
  .hmbr81-app__bank-info strong,.hmbr81-app__bank-info span,
  .hmbr81-app__holder-label,.hmbr81-app__holder-value
 ) { color:#222222!important; }
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app .hmbr81-app__field input,
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app .hmbr81-app__field select,
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app .hmbr81-app__field select option {
  color:#222222!important;
}
/* The select chevron is visible even where WordPress/Elementor suppress native appearance.
   Native <select> behaviour and keyboard access are preserved. */
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app .hmbr81-app__field select,
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hm-of-calculator-content .hm-of-form select {
  appearance:none!important;-webkit-appearance:none!important;
  padding-right:74px!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12'%3E%3Cpath d='m2 2 7 7 7-7' stroke='%23222222' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E")!important;
  background-size:16px 11px!important;
  background-position:right 16px center!important;
  background-repeat:no-repeat!important;
}
/* Reserve a separate area for the help button, rather than drawing over chevrons. */
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__hint-wrap:has(> .hmbr81-app__field select) > button.hmbr81-field-info {
  right:48px!important;
}
/* Expanders have visible stateful arrows instead of missing default markers. */
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__explain {
  margin:12px 0 15px!important;
  padding:0!important;
  border:1px solid #d6e2db!important;
  border-radius:6px!important;
  background:#fff!important;
  color:#222222!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__explain > summary,
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__sepa-details > summary {
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  width:100%!important;min-height:45px!important;gap:12px!important;
  padding:11px 15px!important;box-sizing:border-box!important;
  border:0!important;list-style:none!important;cursor:pointer!important;
  font:650 1rem/1.45 "Bricolage Grotesque",Arial,sans-serif!important;
  color:#222222!important;background:#fff!important;text-decoration:none!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__explain > summary::-webkit-details-marker,
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__sepa-details > summary::-webkit-details-marker {display:none!important;}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__explain > summary::marker,
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__sepa-details > summary::marker {content:'';}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__toggle-chevron {
  display:block!important;flex:none!important;width:10px!important;height:10px!important;
  border-right:2px solid #222!important;border-bottom:2px solid #222!important;
  transform:translateY(-3px) rotate(45deg)!important;transition:transform .18s ease;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) details[open] > summary .hmbr81-app__toggle-chevron {
  transform:translateY(2px) rotate(225deg)!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__explain-inside {
  padding:8px 16px 16px!important;border-top:1px solid #ebeeec;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__explain-inside ul {margin:5px 0!important;}
/* HanseMerkur reference: clear, typographic SEPA without playful colored cards. */
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__mandate {
  display:block!important;max-width:900px!important;
  padding:4px 0 0!important;margin:20px 0 10px!important;
  background:#fff!important;border:0!important;border-radius:0!important;color:#222!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__mandate > h5 {
  color:#222222!important;font-weight:750!important;font-size:1.125rem!important;
  line-height:1.4!important;margin:0 0 16px!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__mandate p {
  color:#222222!important;font-size:1rem!important;
  line-height:1.58!important;margin:10px 0 18px!important;
  max-width:820px!important;white-space:pre-line!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__sepa-details {
  margin:12px 0!important;padding:0!important;background:#fff!important;
  border:1px solid #d6e2db!important;border-radius:6px!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__sepa-details > summary {
  color:#005e52!important;text-decoration:underline!important;
  text-underline-offset:3px!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__mandate-more {
  margin:0!important;padding:16px!important;border-top:1px solid #d6e2db!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__mandate-more p {
  color:#222!important;margin:0 0 14px!important;
}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__mandate-more p:last-child {margin-bottom:0!important;}
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__explain summary:focus-visible,
body :is(.hmbr81-original,.hmbr81-v81-result-host) .hmbr81-app__sepa-details summary:focus-visible {
  outline:2px solid #005e52!important;outline-offset:2px!important;
}
