/* Funnel pop-up on the markup of wavio-funnel, replacing the plugin's stylesheet: the Hofstätter rules, mapped to the Bruckmühle tokens */
.wavio-funnel{--white:var(--paper);--r:var(--rr);--pill:var(--rr);--dim:rgb(0 0 0/.6);--ink-2:rgb(0 0 0/.65);--ink-3:rgb(0 0 0/.4);--line:rgb(0 0 0/.12);--line-2:var(--ink);--ctl-line:var(--ink);--tint:var(--cta);--green:var(--ink);--green-2:var(--ink);--green-soft:var(--karte);--red:#c00;--ctl:44px;--ctl-l:52px;--fs-small:var(--t-s);--fs-ui:var(--t-b);--fs-body:var(--t-b);width:min(100% - 40px,640px);max-width:none;max-height:none;padding:0;overflow:hidden;border:0;border-radius:var(--r);background:var(--white);color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.35);height:min(680px,100dvh - 40px)}
.wavio-funnel::backdrop{background:var(--dim)}
.wavio-funnel__box{max-height:none;display:flex;flex-direction:column;padding:28px 40px 32px;overflow:hidden;height:100%}
.wavio-funnel__hp{position:absolute;left:-9999px}
.wavio-funnel__head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:16px}
.wavio-funnel__head > :is(img,strong){display:none}
.wavio-funnel__name{grid-row:1;font-size:var(--fs-small);font-weight:600;color:var(--ink-2)}
.wavio-funnel__close{grid-row:1;grid-column:2;width:var(--ctl);height:var(--ctl);margin-right:-12px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:none;color:var(--ink);font-size:0}
.wavio-funnel__close::before{content:"";width:22px;height:22px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222.2%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M6 6l12 12M18 6L6 18%22/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222.2%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M6 6l12 12M18 6L6 18%22/%3E%3C/svg%3E") center/contain no-repeat}
.wavio-funnel__close:hover{background:var(--tint)}
.wavio-funnel__progress{grid-row:2;grid-column:1 / -1;display:flex;flex-wrap:wrap;margin-top:8px}
.wavio-funnel__progress i{flex:1 1 1px;height:6px;background:var(--line);transition:background-color .3s ease}
.wavio-funnel__progress i:first-child{border-radius:3px 0 0 3px}
.wavio-funnel__progress i:last-of-type{border-radius:0 3px 3px 0}
.wavio-funnel__progress i:is(.on,.done){background:var(--green)}
.wavio-funnel__progress span{flex:0 0 100%;margin-top:10px;font-size:var(--fs-small);font-weight:600;color:var(--green-2)}
.wavio-funnel__form{display:flex;flex:1;flex-direction:column;min-height:0}
.wavio-funnel__step{flex:1;margin-top:24px;min-height:0;overflow:auto}
.wavio-funnel__title{padding-top:.2em;font:400 calc(var(--t-h)*1.2)/1.15 var(--disp);text-transform:lowercase}
.wavio-funnel__sub{margin-top:6px;font-size:var(--fs-small);line-height:1.5;color:var(--ink-2);white-space:pre-line}
.wavio-funnel__cards{display:grid;grid-template-columns:1fr;gap:8px;margin-top:20px;grid-auto-rows:1fr}
.wavio-funnel__card{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr);align-content:center;column-gap:14px;min-height:56px;padding:12px 16px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--white);cursor:pointer}
.wavio-funnel__card::before{content:"";grid-row:1 / span 2;width:20px;height:20px;margin-top:1px;box-sizing:border-box;border:2px solid var(--ctl-line);border-radius:50%;background:var(--white)}
.wavio-funnel__card:has([type="checkbox"])::before{border-radius:4px}
.wavio-funnel__card input{position:absolute;opacity:0}
.wavio-funnel__card b{font-size:var(--t-b);font-weight:500}
.wavio-funnel__card small{grid-column:2;margin-top:2px;font-size:var(--fs-small);line-height:1.4;color:var(--ink-2)}
.wavio-funnel__card:hover{border-color:var(--ink-3)}
.wavio-funnel__card:has(:checked){border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:var(--green-soft)}
.wavio-funnel__card:has([type="radio"]:checked)::before{border:6px solid var(--green)}
.wavio-funnel__card:has([type="checkbox"]:checked)::before{border:0;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cpath d=%22M5 12.5l4.5 4.5L19 7.5%22 fill=%22none%22 stroke=%22%23fff%22 stroke-width=%223%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") center/14px no-repeat}
.wavio-funnel__card:has(:focus-visible){outline:2px solid var(--green);outline-offset:2px}
.wavio-funnel__slider{margin-top:20px}
.wavio-funnel__count{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;font-size:var(--t-b);color:var(--ink-2)}
.wavio-funnel__count output{margin-right:6px;font-size:var(--t2);font-weight:700;line-height:1;letter-spacing:-.04em;color:var(--ink)}
.wavio-funnel__steps{display:flex;gap:8px}
.wavio-funnel__steps button{width:var(--ctl);height:var(--ctl);padding:0;border:1px solid var(--line-2);border-radius:50%;background:var(--white);color:var(--ink);font-size:22px;font-weight:500;line-height:1}
.wavio-funnel__steps button:hover{border-color:var(--ink-3)}
.wavio-funnel__slider input{width:100%;height:28px;margin:17px 0 7px;background:none;-webkit-appearance:none;appearance:none;cursor:pointer}
.wavio-funnel__slider input::-webkit-slider-runnable-track{height:6px;border-radius:var(--pill);background:linear-gradient(var(--green),var(--green)) 0 / var(--p) 100% no-repeat,var(--line)}
.wavio-funnel__slider input::-moz-range-track{height:6px;border-radius:var(--pill);background:var(--line)}
.wavio-funnel__slider input::-moz-range-progress{height:6px;border-radius:var(--pill);background:var(--green)}
.wavio-funnel__slider input::-webkit-slider-thumb{width:28px;height:28px;margin-top:-11px;border:2px solid var(--green);border-radius:50%;background:var(--white);box-shadow:0 4px 12px rgba(0,0,0,.14);-webkit-appearance:none;appearance:none}
.wavio-funnel__slider input::-moz-range-thumb{width:24px;height:24px;border:2px solid var(--green);border-radius:50%;background:var(--white);box-shadow:0 4px 12px rgba(0,0,0,.14)}
.wavio-funnel__minmax{display:flex;justify-content:space-between;font-size:var(--fs-small);color:var(--ink-2)}
.wavio-funnel__dates,.wavio-funnel__fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:16px;margin-top:20px}
:is(.wavio-funnel__dates,.wavio-funnel__fields) label{display:flex;flex-direction:column;gap:8px;font-size:var(--fs-small);font-weight:600}
.wavio-funnel__input,.wavio-funnel__dates input{box-sizing:border-box;width:100%;height:var(--ctl-l);padding:0 16px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--white);color:var(--ink);font-size:var(--fs-ui);font-weight:500}
textarea.wavio-funnel__input{height:auto;min-height:140px;padding:14px 16px;line-height:1.55;resize:vertical}
.wavio-funnel__step > .wavio-funnel__input{margin-top:20px}
.wavio-funnel__input:focus,.wavio-funnel__dates input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(18,135,66,.16)}
.wavio-funnel__dates input{-webkit-appearance:none;appearance:none}
.wavio-funnel__alt summary{min-height:var(--ctl);display:inline-flex;align-items:center;margin-top:8px;font-size:var(--fs-small);font-weight:700;color:var(--green-2);cursor:pointer}
.wavio-funnel__bezug{display:flex;align-items:center;gap:12px;margin-top:20px;padding:14px 16px;border-radius:var(--r);background:var(--green-soft);font-size:var(--t-b);font-weight:700}
.wavio-funnel__bezug::before{content:"";flex:none;width:22px;height:22px;background:var(--green);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cpath d=%22M5 12.5l4.5 4.5L19 7.5%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222.4%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cpath d=%22M5 12.5l4.5 4.5L19 7.5%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222.4%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") center/contain no-repeat}
.wavio-funnel__bezug img{display:none}
.wavio-funnel__bezug div{display:flex;flex-direction:column}
.wavio-funnel__bezug small{display:none}
.wavio-funnel__drop{position:relative;min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;margin-top:20px;padding:24px;border:1px dashed var(--line-2);border-radius:var(--r);background:var(--tint);text-align:center}
.wavio-funnel__drop:is(:hover,:focus-within){border-color:var(--green)}
.wavio-funnel__drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.wavio-funnel__drop span{font-size:var(--fs-small);color:var(--ink-2)}
.wavio-funnel__upload ul{display:grid;gap:6px;margin-top:12px}
.wavio-funnel__upload li{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:var(--r);background:var(--tint);overflow-wrap:anywhere}
.wavio-funnel__upload li button{border:0;background:none;font-size:18px}
.wavio-funnel [role="alert"]{margin-top:16px;color:var(--red);font-size:var(--fs-small);font-weight:600}
.wavio-funnel__summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);column-gap:16px;margin-top:20px;font-size:var(--fs-ui)}
.wavio-funnel__summary > *{padding:12px 0;border-top:1px solid var(--line)}
.wavio-funnel__summary > :nth-child(-n+2){border-top:0}
.wavio-funnel__summary dt{color:var(--ink-2)}
.wavio-funnel__summary dd{font-weight:700;overflow-wrap:anywhere}
.wavio-funnel__privacy{display:flex;align-items:flex-start;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid var(--line);font-size:var(--fs-small);line-height:1.5;cursor:pointer}
.wavio-funnel__privacy input{flex:none;width:22px;height:22px;margin:0;border:2px solid var(--ctl-line);border-radius:4px;background:var(--white);-webkit-appearance:none;appearance:none;cursor:pointer}
.wavio-funnel__privacy input:checked{border-color:var(--green);background:var(--green) url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cpath d=%22M5 12.5l4.5 4.5L19 7.5%22 fill=%22none%22 stroke=%22%23fff%22 stroke-width=%223%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") center/14px no-repeat}
.wavio-funnel__privacy a{color:var(--ink);font-weight:600;text-decoration-color:var(--green);text-underline-offset:3px}
.wavio-funnel .is-invalid{outline:2px solid var(--red);outline-offset:2px}
.wavio-funnel__nav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line);flex:none}
.wavio-funnel__back{min-height:var(--ctl);padding:0;border:0;background:none;color:var(--ink);font-size:var(--fs-ui);font-weight:700}
.wavio-funnel__back:hover{color:var(--green)}
.wavio-funnel__next{height:var(--ctl-l);display:inline-flex;align-items:center;gap:8px;margin-left:auto;padding:0 28px;border:0;border-radius:var(--pill);background:var(--cta);color:var(--ink);font-size:var(--t-b);font-weight:600;white-space:nowrap;transition:background-color var(--ease)}
.wavio-funnel__next:hover{background:var(--cta-h)}
.wavio-funnel__next:disabled{opacity:.5;cursor:wait}
.wavio-funnel__done{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:28px}
.wavio-funnel__check{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:var(--green-soft);color:var(--green);font-size:28px;font-weight:700}
.wavio-funnel__done .wavio-funnel__sub{font-size:var(--fs-body);line-height:1.65}
.wavio-funnel__done .wavio-funnel__next{height:var(--ctl);margin:4px 0 0;font-size:var(--fs-ui)}
@keyframes wavio-funnel-in{from{opacity:0;translate:0 16px}}
/* Script focus only announces the step; a ring around plain text would read as a control */
.wavio-funnel__step:focus,.wavio-funnel__title:focus{outline:none}
.wavio-funnel__next span{transition:translate .35s var(--ease)}
.wavio-funnel__next:hover span{translate:3px 0}
@media (max-width:760px){
  .wavio-funnel{width:100%;height:100dvh;max-height:none;border-radius:0}
  .wavio-funnel__box{height:100%;max-height:none;padding:16px 20px 20px}
  .wavio-funnel__nav .wavio-funnel__next{flex:1;justify-content:center}
}
@media (prefers-reduced-motion:no-preference){
  .wavio-funnel[open]{animation:wavio-funnel-in .3s ease-out}
}
