/* SwissDream / Alpenträumli – Anfrageformular v1.3.2 */
.swa-form{
  --swa-ink:#5a5048;
  --swa-muted:#81776e;
  --swa-soft:#a99f96;
  --swa-line:#ddd8d2;
  --swa-line-strong:#cfc8c1;
  --swa-paper:#fbfaf7;
  --swa-accent:#5b514a;
  --swa-accent-dark:#443c36;
  --swa-selection:#514941;
  --swa-busy:#d9d2c8;
  --swa-free:#fffefa;
  width:100%;
  max-width:1120px;
  margin:0 auto;
  color:var(--swa-ink);
  font-family:inherit;
  font-size:16px;
  line-height:1.65;
  text-align:left;
}
.swa-form *, .swa-form *::before, .swa-form *::after{box-sizing:border-box}
.swa-form fieldset{min-width:0;padding:0;border:0;margin:0}
.swa-form legend{float:none;width:100%;padding:0}
.swa-shell{display:grid;grid-template-columns:190px minmax(0,1fr);gap:48px;align-items:start}
.swa-aside{padding-top:4px;color:var(--swa-muted)}
.swa-aside-block{margin:0 0 44px}
.swa-aside-kicker{margin:0 0 27px;color:var(--swa-soft);font-size:10px;line-height:1;letter-spacing:.32em;text-transform:uppercase}
.swa-aside-contact{display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.swa-aside-contact strong{font-size:15px;font-weight:400;color:var(--swa-muted);margin-bottom:5px}
.swa-aside-info p{margin:0 0 16px;font-size:13px;line-height:1.85}
.swa-main{min-width:0}
.swa-intro{margin:0 0 42px;padding:0 0 18px;border-bottom:1px solid var(--swa-line)}
.swa-intro h2{margin:0 0 8px;color:var(--swa-ink);font-size:24px;line-height:1.3;font-weight:400;letter-spacing:.11em;text-transform:uppercase}
.swa-intro p{max-width:760px;margin:0;color:var(--swa-muted);font-size:13px;line-height:1.75}
.swa-step{margin:0 0 38px;padding:0;border-top:0}
.swa-step legend{display:flex;align-items:center;gap:12px;margin:0 0 30px;color:var(--swa-soft);font-size:10px;line-height:1;letter-spacing:.28em;font-weight:400;text-transform:uppercase;white-space:nowrap}
.swa-step legend::after{content:"";height:1px;background:var(--swa-line);flex:1;margin-top:1px}
.swa-step legend span{display:inline;font-size:10px;color:var(--swa-soft);font-weight:400;letter-spacing:.28em;width:auto;height:auto;border:0;border-radius:0;background:none}
.swa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 28px}
.swa-grid > label,.swa-step-contact > label:not(.swa-check){min-width:0}
.swa-form label{display:block;margin:0;color:var(--swa-muted);font-size:13px;line-height:1.4}
.swa-form label > input:not([type=checkbox]),
.swa-form label > select,
.swa-form label > textarea{display:block;width:100%;margin:8px 0 0;border:0;border-bottom:1px solid var(--swa-line-strong);border-radius:0;background:transparent;color:var(--swa-ink);font:inherit;font-size:15px;line-height:1.45;outline:none;box-shadow:none;transition:border-color .2s ease,background-color .2s ease}
.swa-form label > input:not([type=checkbox]),.swa-form label > select{height:46px;padding:0 2px}
.swa-form label > textarea{min-height:104px;padding:12px 2px 10px;resize:vertical}
.swa-form label > input:not([type=checkbox]):focus,.swa-form label > select:focus,.swa-form label > textarea:focus{border-bottom-color:var(--swa-accent);background:rgba(91,81,74,.025);box-shadow:none}
.swa-form input::placeholder,.swa-form textarea::placeholder{color:#aaa29b;opacity:1}
.swa-step-contact > label:not(.swa-check){margin-top:28px}
.swa-step-contact .swa-grid + label{margin-top:28px}

/* Kalender */
.swa-cal-wrap{margin-top:0}
.swa-cal-head{display:flex;justify-content:space-between;align-items:center;margin:0 0 18px;gap:12px}
.swa-cal-head button{width:40px;height:40px;border:1px solid var(--swa-line);border-radius:0;background:transparent;color:var(--swa-ink);cursor:pointer;font:inherit;line-height:1}
.swa-cal-head button:hover{border-color:var(--swa-accent);color:var(--swa-accent)}
.swa-legend{font-size:9px;letter-spacing:.17em;text-transform:uppercase;color:var(--swa-soft);display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:center}
.swa-legend i{display:inline-block;width:11px;height:11px;border:1px solid var(--swa-line);margin-left:9px}
.swa-legend i:first-child{margin-left:0;background:var(--swa-free)}
.swa-legend i.busy{background:var(--swa-busy)}
.swa-legend i.sel{background:var(--swa-selection);border-color:var(--swa-selection)}
.swa-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:38px}
.swa-month-title{font-family:inherit;font-size:15px;letter-spacing:.04em;color:var(--swa-ink);margin:0 0 15px;text-align:left;font-weight:400}
.swa-grid7{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.swa-dow{font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:var(--swa-soft);padding:4px 0 8px}
.swa-day{display:flex;align-items:center;justify-content:center;aspect-ratio:1;font-size:12px;color:var(--swa-ink);background:transparent;border:1px solid transparent;font-family:inherit;padding:0;position:relative}
button.swa-day{cursor:pointer}
button.swa-day:hover:not(:disabled){border-color:var(--swa-line-strong)}
.swa-day.past{color:#c5bdb5}
.swa-day.busy{background:var(--swa-busy);color:#978e85;text-decoration:line-through}
.swa-day.busy-start{background:linear-gradient(135deg,var(--swa-free) 50%,var(--swa-busy) 50%)}
.swa-day.busy-end{background:linear-gradient(135deg,var(--swa-busy) 50%,var(--swa-free) 50%)}
.swa-day:disabled{cursor:not-allowed}
.swa-day.in{background:rgba(91,81,74,.07)}
.swa-day.sel{background:var(--swa-selection)!important;color:#fff!important;text-decoration:none}
.swa-cal-status{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;margin:0 0 18px;padding:10px 14px;border:0;border-bottom:1px solid var(--swa-line);color:var(--swa-muted);font-size:12px;background:transparent}
.swa-cal-status.swa-cal-error{flex-direction:column;gap:5px;text-align:center;border:1px solid var(--swa-line);background:var(--swa-paper)}
.swa-cal-error strong{font-weight:500;color:var(--swa-ink)}
.swa-cal-error span{font-size:11px;color:var(--swa-muted)}
.swa-cal-retry{margin-top:7px;border:1px solid var(--swa-accent);background:transparent;color:var(--swa-accent);padding:8px 14px;font:inherit;font-size:9px;letter-spacing:.17em;text-transform:uppercase;cursor:pointer}
.swa-cal-retry:hover{background:var(--swa-accent);color:#fff}
.swa-spinner{width:13px;height:13px;border:1px solid var(--swa-line);border-top-color:var(--swa-accent);border-radius:50%;animation:swa-spin .8s linear infinite}
.swa-calendar-disabled{opacity:.55}
@keyframes swa-spin{to{transform:rotate(360deg)}}

/* Zeitraum */
.swa-range{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:26px 0 0;border-top:1px solid var(--swa-line);border-bottom:1px solid var(--swa-line)}
.swa-range > div{padding:14px 18px;border-right:1px solid var(--swa-line)}
.swa-range > div:first-child{padding-left:0}.swa-range > div:last-child{border-right:0;padding-right:0}
.swa-range span{display:block;margin:0 0 4px;color:var(--swa-soft);font-size:9px;letter-spacing:.24em;text-transform:uppercase}.swa-range strong{display:block;color:var(--swa-ink);font-size:15px;font-weight:400}

/* Preisschätzung */
.swa-estimate{border-top:1px solid var(--swa-line);border-bottom:1px solid var(--swa-line);padding:22px 0;margin:-8px 0 40px;background:transparent}
.swa-estimate-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
.swa-estimate-head span{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--swa-soft)}
.swa-estimate-head strong{font-size:22px;font-weight:400;color:var(--swa-ink)}
.swa-estimate-detail{font-size:12px;color:var(--swa-muted);margin:6px 0 0}.swa-estimate-note{font-size:11px;color:var(--swa-muted);margin:13px 0 0;line-height:1.7}.swa-estimate[hidden]{display:none}
.swa-breakdown{width:100%;border-collapse:collapse;margin:16px 0 0;font-size:12px}.swa-breakdown td{padding:8px 0;border-top:1px solid var(--swa-line);vertical-align:top;color:var(--swa-muted)}.swa-breakdown td:last-child{text-align:right;white-space:nowrap;padding-left:16px;color:var(--swa-ink)}.swa-breakdown td span{display:block;color:var(--swa-ink)}.swa-breakdown td small{display:block;font-size:10px;color:var(--swa-muted);margin-top:2px}.swa-breakdown .swa-sub td{font-weight:500}.swa-breakdown .swa-total td{border-top:1px solid var(--swa-ink);font-size:16px;padding-top:12px;color:var(--swa-ink)}

/* Leistungen / Bedingungen */
.swa-options-static{color:var(--swa-muted);font-size:13px;line-height:1.85}.swa-options-static p{margin:0 0 10px}.swa-options-static strong{color:var(--swa-ink);font-weight:500}.swa-options{margin:18px 0 2px}.swa-extra-title{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--swa-soft);margin:18px 0 10px}.swa-extra-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 18px}.swa-extra{display:flex!important;align-items:center;gap:10px;margin:0!important;padding:10px 0;border-top:1px solid var(--swa-line);font-size:12px!important;color:var(--swa-muted)!important;cursor:pointer}.swa-extra input{margin:0;accent-color:var(--swa-accent)}.swa-extra span{display:flex;justify-content:space-between;align-items:baseline;gap:14px;width:100%}.swa-extra strong{font-weight:500;color:var(--swa-ink)}.swa-extra small{font-size:11px;color:var(--swa-ink);white-space:nowrap}.swa-extra-info{display:flex;gap:8px;flex-wrap:wrap;padding-top:12px;margin-top:6px;border-top:1px solid var(--swa-line);font-size:11px;color:var(--swa-muted)}.swa-extra-info strong{font-weight:500;color:var(--swa-ink)}
.swa-terms{border-top:1px solid var(--swa-line);margin:0 0 40px;padding:26px 0 0}.swa-terms-title{margin-bottom:11px;color:var(--swa-soft);font-size:9px;font-weight:400;letter-spacing:.28em;text-transform:uppercase}.swa-terms-text{color:var(--swa-muted);font-size:12px;line-height:1.8}

/* Kontakt */
.swa-step-contact{margin-bottom:20px}.swa-step-contact .swa-grid{grid-template-columns:1fr 1.25fr 1.25fr 1.25fr;gap:24px}.swa-step-contact > label:not(.swa-check){margin-top:28px}.swa-step-contact .swa-grid + label{margin-top:28px}
.swa-check{display:flex!important;align-items:flex-start;gap:10px;margin:26px 0 0!important;color:var(--swa-muted)!important;font-size:11.5px!important;line-height:1.7!important}.swa-check input{flex:0 0 auto;width:15px;height:15px;margin:2px 0 0;accent-color:var(--swa-accent)}.swa-check a{color:var(--swa-accent);text-decoration:none;border-bottom:1px solid var(--swa-line-strong);text-underline-offset:2px}.swa-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden}
.swa-submit{display:inline-flex;align-items:center;justify-content:center;min-width:250px;min-height:54px;margin-top:28px;padding:13px 30px;border:1px solid var(--swa-accent);border-radius:0;background:var(--swa-accent);color:#fff;font:inherit;font-size:9px;font-weight:500;letter-spacing:.25em;text-transform:uppercase;cursor:pointer;transition:background .2s ease,border-color .2s ease}.swa-submit:hover{background:var(--swa-accent-dark);border-color:var(--swa-accent-dark)}.swa-submit:disabled{opacity:.6;cursor:wait}
.swa-msg{padding:13px 16px;margin:22px 0 0;border:1px solid var(--swa-line);border-left:2px solid var(--swa-accent);background:#faf7f3;color:var(--swa-ink);font-size:12px}.swa-msg-err{border-left-color:#a5563e;color:#7a3a28;background:#faf3f0}.swa-msg-ok{border-left-color:#71845d;background:#f4f7f1}.swa-success{padding:38px 0;border-top:1px solid var(--swa-line)}.swa-success h3{margin:0 0 10px;color:var(--swa-ink);font-size:28px;font-weight:400}.swa-success p{margin:0;color:var(--swa-muted);font-size:13px}

@media (max-width:900px){
  .swa-form{max-width:100%}.swa-shell{grid-template-columns:1fr;gap:34px}.swa-aside{display:grid;grid-template-columns:1fr 1fr;gap:34px;padding-bottom:6px;border-bottom:1px solid var(--swa-line)}.swa-aside-block{margin:0}.swa-aside-kicker{margin-bottom:18px}
  .swa-step-contact .swa-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .swa-form{font-size:15px}.swa-shell{gap:28px}.swa-aside{grid-template-columns:1fr;gap:25px}.swa-intro{margin-bottom:32px}.swa-intro h2{font-size:20px;letter-spacing:.08em}.swa-grid,.swa-months,.swa-step-contact .swa-grid{grid-template-columns:1fr}.swa-range{grid-template-columns:1fr}.swa-range > div,.swa-range > div:first-child,.swa-range > div:last-child{border-right:0;border-bottom:1px solid var(--swa-line);padding:12px 0}.swa-range > div:last-child{border-bottom:0}.swa-submit{width:100%}.swa-step legend{letter-spacing:.22em}.swa-month-title{text-align:left}.swa-grid7{gap:1px}
}
