.sw-office-form { --form-line: rgba(201, 167, 101, .25); max-width: 1080px; margin: 0 auto; color: var(--ink, #f0e7d8); }
.sw-office-form *, .sw-office-form *::before, .sw-office-form *::after { box-sizing: border-box; }
.sw-office-form { font-family:var(--sans, sans-serif); }
.sw-office-form :is(h3, h4) { font-family:var(--serif, Georgia, serif); font-weight:400; }
.sw-form-option-description { display:block; margin-top:12px; color:var(--muted, #ac9e89); font:400 15px/1.6 var(--sans, sans-serif); }
.sw-office-form [data-field-key="anlass"] .sw-form-option-title { font-family:var(--serif, Georgia, serif); }
.sw-office-form [hidden] { display: none !important; }
.sw-office-form .sw-form-group { padding: clamp(24px, 4vw, 42px) 0; border-bottom: 1px solid var(--form-line); }
.sw-office-form .sw-form-group h3 { margin: 0 0 12px; font-size: clamp(24px, 3vw, 36px); line-height: 1.15; }
.sw-office-form .sw-form-intro { margin: 0 0 24px; max-width: 66ch; line-height: 1.65; color: var(--ink-soft, #d4c8b5); }
.sw-office-form .sw-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.sw-office-form .sw-form-field { min-width: 0; margin: 0; padding: 0; border: 0; }
.sw-office-form fieldset.sw-form-field, .sw-office-form .sw-form-tours, .sw-office-form [data-field-type="textarea"], .sw-office-form [data-field-key="dsgvo"] { grid-column: 1 / -1; }
.sw-office-form label, .sw-office-form legend { display: block; margin-bottom: 9px; font-size: 15px; line-height: 1.5; color: inherit; }
.sw-office-form legend { float: none; width: 100%; padding: 0; }
.sw-office-form input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]), .sw-office-form select, .sw-office-form textarea { width: 100%; min-height: 48px; padding: 13px 15px; border: 1px solid var(--form-line); border-radius: 3px; background: rgba(255, 255, 255, .045); color: inherit; font: inherit; font-size: 16px; }
.sw-office-form input::placeholder, .sw-office-form textarea::placeholder { color: var(--muted, #ac9e89); opacity: .9; }
.sw-office-form select option { background: #1a1914; color: #f0e7d8; }
/* Keep the real OS picker, but let Safari honor the dropdown's CSS box. */
.sw-office-form select:not([multiple]):not([size]), .sw-office-form select:not([multiple])[size="1"] {
  -webkit-appearance: none; appearance: none; min-height: 48px; line-height: 1.25; padding-inline-end: 42px;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 21px) 50%, calc(100% - 16px) 50%;
  background-size: 5px 5px; background-repeat: no-repeat;
}
.sw-office-form textarea { min-height: 108px; resize: vertical; }
.sw-office-form :is(input, select, textarea, button, a):focus-visible { outline: 2px solid var(--gold, #c9a765); outline-offset: 4px; }
.sw-office-form .sw-form-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.sw-office-form .sw-form-option { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 14px; margin: 0; border: 1px solid var(--form-line); border-radius: 3px; cursor: pointer; }
.sw-office-form .sw-form-option:has(input:checked) { border-color: var(--gold, #c9a765); background: rgba(201, 167, 101, .10); }
.sw-office-form input:is([type="radio"], [type="checkbox"]) { flex: 0 0 auto; width: 20px; height: 20px; accent-color: var(--gold, #c9a765); margin: 0; }
.sw-office-form .sw-form-consent { display: flex; gap: 12px; align-items: flex-start; min-height: 44px; }
.sw-office-form .sw-form-hint { min-height: 0; margin: 8px 0 0; color: var(--muted, #ac9e89); font-size: 13px; line-height: 1.55; }
.sw-office-form .sw-form-hint:empty { display: none; }
.sw-office-form .sw-form-local { padding: 15px 18px; border-left: 2px solid var(--gold, #c9a765); background: rgba(201, 167, 101, .07); font-size: 14px; line-height: 1.6; }
.sw-office-form .sw-form-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.sw-office-form .sw-form-feedback { margin: 24px 0; padding: 0; line-height: 1.65; }
.sw-office-form .sw-form-feedback:empty { margin: 0; }
.sw-office-form .sw-form-feedback.is-error { color: #f3b6a7; }
.sw-office-form .sw-form-submit { min-height: 48px; margin: 28px 0 0; }
.sw-office-form .sw-form-submit:disabled { cursor: default; opacity: .65; }
.sw-office-form .sw-form-progress { margin: 30px 0; scroll-margin-top: 150px; }
.sw-form-progress-caption { display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:18px; font:12px/1.6 var(--sans, sans-serif); letter-spacing:.18em; text-transform:uppercase; color:var(--muted, #ac9e89); }
.sw-form-progress-caption strong { color:var(--gold-hi, #e1c384); }
.sw-form-progress-caption [data-wizard-title] { text-align:right; letter-spacing:0; text-transform:none; color:var(--gold-hi, #e1c384); font:italic 22px/1.3 var(--serif, Georgia, serif); }
.sw-form-progress progress { display:block; appearance:none; width:100%; height:5px; overflow:hidden; border:0; border-radius:4px; background:rgba(255,255,255,.1); color:var(--gold, #c9a765); }
.sw-form-progress progress::-webkit-progress-bar { background:rgba(255,255,255,.1); border-radius:4px; }
.sw-form-progress progress::-webkit-progress-value { background:var(--gold-hi, #e1c384); border-radius:4px; }
.sw-form-progress progress::-moz-progress-bar { background:var(--gold-hi, #e1c384); border-radius:4px; }
.sw-office-form.sw-form-wizard .sw-form-group { padding:clamp(24px, 5vw, 64px); border:1px solid var(--form-line); border-radius:22px; background:linear-gradient(140deg, rgba(201,167,101,.09), rgba(255,255,255,.025)); }
.sw-office-form.sw-form-wizard .sw-form-group h3 { margin-bottom:24px; font-size:clamp(28px, 3.4vw, 44px); outline:none; }
.sw-office-form.sw-form-wizard .sw-form-option { border-radius:12px; }
.sw-office-form.sw-form-wizard [data-form-group="anlass"] .sw-form-option { min-height:100px; padding:22px; font-size:clamp(17px, 1.7vw, 22px); }
.sw-office-form .sw-form-actions { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-top:28px; }
.sw-office-form .sw-form-actions .btn { min-height:48px; width:auto; max-width:100%; margin:0; }
.sw-office-form .sw-form-actions [data-wizard-next], .sw-office-form .sw-form-actions [type="submit"] { margin-left:auto; }
.sw-office-form .sw-form-back { border:1px solid var(--form-line); background:transparent; color:inherit; }
.sw-office-form .sw-form-actions button:disabled { opacity:.65; cursor:default; }
@media (max-width:600px) {
  .sw-office-form .sw-form-progress { scroll-margin-top:115px; }
  .sw-form-progress-caption { letter-spacing:.08em; font-size:11px; }
  .sw-form-progress-caption [data-wizard-title] { font-size:18px; }
  .sw-office-form.sw-form-wizard .sw-form-group { padding:24px 18px; border-radius:16px; }
  .sw-office-form.sw-form-wizard [data-form-group="anlass"] .sw-form-option { min-height:76px; padding:18px 14px; }
  .sw-office-form .sw-form-actions .btn { padding-inline:22px; }
}
.sw-form-summary { margin: 0 0 28px; }
.sw-form-summary section + section { margin-top: 24px; }
.sw-form-summary h4 { margin: 0 0 10px; font-size: 20px; line-height: 1.3; }
.sw-form-summary :is(dl, dt, dd) { margin: 0; }
.sw-form-summary dl > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 6px 24px; padding-block: 9px; border-bottom: 1px solid var(--form-line); overflow-wrap: anywhere; white-space: pre-wrap; }
@media (max-width: 600px) {
  .sw-office-form .sw-form-grid, .sw-office-form .sw-form-options { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .sw-office-form .sw-form-submit { width: 100%; }
  .sw-office-form .sw-form-group { padding: 28px 0; }
}
@media (forced-colors: active) {
  .sw-office-form select:not([multiple]):not([size]), .sw-office-form select:not([multiple])[size="1"] {
    -webkit-appearance: auto; appearance: auto; background-image: none; padding-inline-end: 15px;
    background-color: Canvas; color: CanvasText; border-color: ButtonText;
  }
}
