:root{--iwfp-blue:#263DB6;--iwfp-ink:#101426;--iwfp-muted:#667085;--iwfp-line:#e4e8f2;--iwfp-bg:#f6f8ff;--iwfp-card:#fff;--iwfp-green:#1bbf5a;--iwfp-red:#c93030}
.iwfp-v2{font-family:Inter,system-ui,Arial,sans-serif;color:var(--iwfp-ink);padding:clamp(16px,2vw,28px);border:1px solid rgba(38,61,182,.14);border-radius:24px;background:radial-gradient(800px 360px at 0 0,rgba(38,61,182,.09),transparent 60%),var(--iwfp-bg)}
.iwfp-head{margin-bottom:18px}.iwfp-kicker{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--iwfp-muted)}.iwfp-head h1,.iwfp-head h2{margin:0 0 8px;font-size:clamp(27px,3vw,38px)}.iwfp-head p{margin:0;color:var(--iwfp-muted)}
.iwfp-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0;margin:20px 0;list-style:none}.iwfp-stepper li{display:flex;gap:9px;align-items:center;padding:12px;border:1px solid rgba(38,61,182,.16);border-radius:14px;background:#fff;color:var(--iwfp-muted);font-weight:750;font-size:13px}.iwfp-stepper li span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:rgba(38,61,182,.1);color:var(--iwfp-blue)}.iwfp-stepper li.is-active{background:var(--iwfp-blue);color:#fff}.iwfp-stepper li.is-active span{background:rgba(255,255,255,.18);color:#fff}.iwfp-stepper li.is-done span{background:var(--iwfp-green);color:#fff}
.iwfp-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:22px;align-items:start}.iwfp-step{display:none}.iwfp-step.is-active{display:block}.iwfp-card,.iwfp-price{background:var(--iwfp-card);border:1px solid rgba(16,20,38,.08);border-radius:18px;box-shadow:0 14px 38px rgba(16,20,38,.08)}.iwfp-card{overflow:hidden}.iwfp-card-head{padding:20px 20px 12px}.iwfp-card-head h3{margin:0 0 5px}.iwfp-card-head p{margin:0;color:var(--iwfp-muted)}.iwfp-subhead{padding-top:8px;border-top:1px solid var(--iwfp-line);margin-top:8px}
.iwfp-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 20px 20px}.iwfp-grid .span-2{grid-column:1/-1}.iwfp-grid label,.iwfp-notes{display:grid;gap:6px}.iwfp-grid label>span,.iwfp-notes>span{font-size:13px;font-weight:760}.iwfp-v2 input,.iwfp-v2 select,.iwfp-v2 textarea{width:100%;box-sizing:border-box;min-height:46px;border:1px solid rgba(16,20,38,.16);border-radius:12px;background:#fff;padding:11px 12px;font:inherit}.iwfp-v2 textarea{resize:vertical}.iwfp-v2 input:focus,.iwfp-v2 select:focus,.iwfp-v2 textarea:focus{outline:0;border-color:var(--iwfp-blue);box-shadow:0 0 0 4px rgba(38,61,182,.1)}.iwfp-v2 .is-invalid{border-color:var(--iwfp-red)!important}.iwfp-v2 small{color:var(--iwfp-muted)}.iwfp-input-unit{position:relative}.iwfp-input-unit b{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--iwfp-muted)}
.iwfp-secondary,.iwfp-v2 button{border:1px solid var(--iwfp-blue);border-radius:999px;padding:11px 17px;font-weight:800;cursor:pointer}.iwfp-v2 button:not(.iwfp-secondary){background:var(--iwfp-blue);color:#fff}.iwfp-secondary{background:#fff;color:var(--iwfp-blue);margin:0 20px 18px}.iwfp-optional{padding-top:4px;border-top:1px dashed var(--iwfp-line)}
.iwfp-services{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 20px 20px}.iwfp-service{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:9px;padding:13px;border:1px solid var(--iwfp-line);border-radius:13px}.iwfp-service>input[type=checkbox]{width:18px;height:18px;min-height:0;accent-color:var(--iwfp-green)}.iwfp-service>input[type=number]{grid-column:1/-1}.iwfp-service.iwfp-checkbox{grid-template-columns:auto 1fr}.iwfp-confirmations{display:grid;gap:12px;padding:0 20px 20px}.iwfp-confirmations label{display:flex;gap:10px;align-items:flex-start}.iwfp-confirmations input{width:18px;height:18px;min-height:0;accent-color:var(--iwfp-green)}.iwfp-notes{padding:0 20px 20px}.iwfp-final-note{margin:0 20px 20px;padding:13px;border-radius:12px;background:#fff8e6;color:#5b4610}
.iwfp-nav{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:15px}.iwfp-nav .iwfp-secondary{margin:0}.iwfp-error{flex:1 0 100%;order:-1;color:var(--iwfp-red);font-size:13px;font-weight:700;line-height:1.45}
.iwfp-price{position:sticky;top:20px;padding:20px}.iwfp-price-head{display:flex;justify-content:space-between;align-items:center}.iwfp-price-head h3{margin:0}.iwfp-price-head span{padding:6px 9px;border-radius:999px;background:rgba(38,61,182,.1);color:var(--iwfp-blue);font-size:12px;font-weight:800}.iwfp-price-status{margin:14px 0;padding:10px;border-radius:10px;background:var(--iwfp-bg);color:var(--iwfp-muted);font-size:13px}.iwfp-price-items{display:grid;gap:7px}.iwfp-price-items>div,.iwfp-price-totals>div{display:flex;justify-content:space-between;gap:12px}.iwfp-price-items span{display:grid}.iwfp-price-items small{font-size:11px}.iwfp-price-totals{display:grid;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--iwfp-line)}.iwfp-price-totals .grand{font-size:18px;padding:10px 0;border-top:1px solid var(--iwfp-line);border-bottom:1px solid var(--iwfp-line)}
@media(max-width:1000px){.iwfp-layout{grid-template-columns:1fr}.iwfp-price{position:static}}@media(max-width:720px){.iwfp-stepper{grid-template-columns:1fr 1fr}.iwfp-grid,.iwfp-services{grid-template-columns:1fr}.iwfp-grid .span-2{grid-column:auto}.iwfp-stepper li{font-size:12px}}
.iwfp-dropdown{margin:0 20px 18px;border:1px solid var(--iwfp-line);border-radius:14px;background:#fff;overflow:hidden}.iwfp-dropdown summary{cursor:pointer;padding:14px 16px;font-weight:800;color:var(--iwfp-blue);list-style:none}.iwfp-dropdown summary::-webkit-details-marker{display:none}.iwfp-dropdown summary:after{content:"⌄";float:right;transition:transform .18s ease}.iwfp-dropdown[open] summary:after{transform:rotate(180deg)}.iwfp-dropdown[open] summary{border-bottom:1px solid var(--iwfp-line)}.iwfp-dropdown .iwfp-grid,.iwfp-dropdown .iwfp-services{padding-top:16px}.iwfp-inline-info{margin:15px 20px 0;padding:12px 14px;border-radius:11px;background:var(--iwfp-bg);color:var(--iwfp-muted);font-size:13px}.iwfp-service small{grid-column:1/-1;line-height:1.35}.iwfp-price-items>div{padding:5px 0;border-bottom:1px solid rgba(228,232,242,.65)}

/* Alpha 4: einheitliche Felder, Hilfetexte und direkte Preisänderung */
.iwfp-grid > label{
  grid-template-rows:auto 48px minmax(34px,auto);
  align-content:start;
}
.iwfp-grid > label.span-2{
  grid-template-rows:auto 48px minmax(0,auto);
}
.iwfp-v2 input:not([type="checkbox"]):not([type="radio"]),
.iwfp-v2 select{
  height:48px;
  min-height:48px;
  padding:0 13px;
}
.iwfp-v2 textarea{
  min-height:132px;
  padding:12px 13px;
}
.iwfp-input-unit,
.iwfp-input-unit input{
  height:48px;
}
.iwfp-grid small,
.iwfp-service small,
.iwfp-notes small{
  display:block;
  min-height:34px;
  font-size:12px;
  line-height:1.4;
}
.iwfp-services{
  align-items:stretch;
}
.iwfp-service{
  grid-template-columns:20px minmax(0,1fr);
  grid-template-rows:auto minmax(42px,auto) 48px;
  align-content:start;
  min-height:145px;
}
.iwfp-service > span{
  font-weight:760;
  line-height:1.3;
}
.iwfp-service > small{
  grid-column:1/-1;
  min-height:42px;
}
.iwfp-service > input[type="number"]{
  grid-column:1/-1;
  height:48px;
  min-height:48px;
}
.iwfp-service > input[type="number"][hidden]{
  display:none !important;
}
.iwfp-service.iwfp-checkbox{
  grid-template-rows:auto minmax(42px,auto);
}
.iwfp-price-row{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:8px 0 !important;
}
.iwfp-price-info{
  min-width:0;
}
.iwfp-price-label{
  display:block;
  font-weight:650;
  line-height:1.3;
}
.iwfp-price-detail{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:3px;
}
.iwfp-price-detail small{
  min-height:0;
  font-size:11px;
  color:var(--iwfp-muted);
}
.iwfp-edit-price{
  min-height:0 !important;
  height:auto !important;
  padding:2px 8px !important;
  border:1px solid rgba(38,61,182,.25) !important;
  border-radius:999px !important;
  background:#fff !important;
  color:var(--iwfp-blue) !important;
  font-size:11px !important;
  font-weight:800 !important;
  line-height:1.5 !important;
  box-shadow:none !important;
}
.iwfp-edit-price:hover{
  background:rgba(38,61,182,.07) !important;
}
@media(max-width:720px){
  .iwfp-grid > label,
  .iwfp-grid > label.span-2{
    grid-template-rows:auto 48px auto;
  }
  .iwfp-service{
    min-height:0;
  }
}

.iwfp-v2 .iwfp-help-link{
  color:var(--iwfp-primary,#263DB6);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:2px;
}
.iwfp-v2 .iwfp-help-link:hover,
.iwfp-v2 .iwfp-help-link:focus{
  text-decoration-thickness:2px;
}


/* Alpha 6: ruhigere Typografie in der Live-Preisübersicht */
.iwfp-price-items{
  gap:3px;
}
.iwfp-price-row{
  padding:6px 0 !important;
}
.iwfp-price-label{
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  font-size:13px;
  font-weight:560;
  line-height:1.28;
  letter-spacing:-.01em;
  color:rgba(16,20,38,.88);
}
.iwfp-price-detail{
  margin-top:2px;
  gap:5px;
}
.iwfp-price-detail small{
  font-size:10.5px;
  font-weight:450;
  line-height:1.35;
  color:rgba(102,112,133,.88);
}
.iwfp-price-row > strong{
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  font-size:13px;
  font-weight:650;
  line-height:1.25;
  color:rgba(16,20,38,.9);
  font-variant-numeric:tabular-nums;
}
.iwfp-edit-price{
  padding:1px 7px !important;
  font-size:10px !important;
  font-weight:700 !important;
}
.iwfp-price-status{
  font-size:12px;
  line-height:1.45;
  background:rgba(38,61,182,.055);
  color:rgba(73,82,104,.92);
}
.iwfp-price-head h3{
  font-size:17px;
  font-weight:700;
}
.iwfp-price-head span{
  font-size:10.5px;
  font-weight:750;
}
.iwfp-booking-success{text-align:center;padding:34px!important}.iwfp-success-icon{width:58px;height:58px;border-radius:999px;background:#1bbf5a;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;margin-bottom:14px}.iwfp-booking-success h2{color:#263DB6;margin:0 0 14px}.iwfp-booking-success p{margin:8px 0;line-height:1.55}
.iwfp-maintenance{padding:12px 16px;border-radius:12px;margin-bottom:14px;font-weight:700;background:#fff0f0;border:1px solid #e4a5a5;color:#8b1d1d}.iwfp-order-summary{margin:18px 20px;padding:16px;border:1px solid rgba(38,61,182,.2);border-radius:14px;background:#f7f9ff}.iwfp-order-summary p{margin:6px 0 0;color:var(--iwfp-muted)}.iwfp-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.cf-turnstile{margin:18px 20px}.iwfp-legal-note{font-size:12px;color:var(--iwfp-muted)}

/* Europa-Hinweise und Länderlogik */
.iwfp-modal[hidden]{display:none!important}
body.iwfp-modal-open{overflow:hidden}
.iwfp-modal{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;padding:20px}
.iwfp-modal-backdrop{position:absolute;inset:0;background:rgba(10,18,45,.58);backdrop-filter:blur(4px)}
.iwfp-modal-card{position:relative;width:min(620px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:22px;padding:28px;box-shadow:0 28px 90px rgba(8,15,40,.35);border:1px solid rgba(38,61,182,.16)}
.iwfp-modal-x{position:absolute;right:14px;top:12px;width:38px;height:38px;border:0;border-radius:50%;background:#263DB6;color:#fff;cursor:pointer;display:grid;place-items:center;padding:0;margin:0;box-sizing:border-box;font:700 27px/1 Arial,sans-serif}
.iwfp-modal-x span{display:block;width:100%;text-align:center;line-height:1;transform:translateY(-1px)}
.iwfp-modal-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:999px;background:rgba(38,61,182,.1);color:#263DB6;font-weight:800;font-size:20px;margin-bottom:14px}
.iwfp-modal-card h3{margin:0 44px 12px 0;color:#0c1020;font-size:24px}
.iwfp-modal-text{color:#4f5870;line-height:1.55}
.iwfp-modal-text p{margin:0 0 12px}
.iwfp-modal-text ul{margin:12px 0 0;padding-left:20px}
.iwfp-modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.iwfp-modal-primary,.iwfp-modal-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border-radius:999px;font-weight:750;text-decoration:none!important;cursor:pointer}
.iwfp-modal-primary{background:#263DB6;color:#fff;border:1px solid #263DB6;text-decoration:none!important}
.iwfp-modal-primary:hover,.iwfp-modal-primary:focus{color:#fff;filter:brightness(.96);text-decoration:none!important}
.iwfp-modal-secondary{background:#fff;color:#263DB6;border:1px solid rgba(38,61,182,.28);text-decoration:none!important}
.iwfp-modal-secondary:hover,.iwfp-modal-secondary:focus{color:#263DB6;background:#f5f7ff;text-decoration:none!important}
.iwfp-material.is-disabled{border-color:rgba(167,88,0,.28);background:#fffaf0}
.iwfp-material.is-disabled summary{color:#8a4b00}
.iwfp-material.is-disabled .iwfp-service{opacity:.55}
.iwfp-form select:disabled{background:#f1f3f7;color:#72798a;cursor:not-allowed}
@media(max-width:640px){.iwfp-modal-card{padding:22px 18px}.iwfp-modal-actions{flex-direction:column}.iwfp-modal-primary,.iwfp-modal-secondary{width:100%}}

/* Durchsuchbare Länderauswahl: erst ab zwei Zeichen */
.iwfp-country-field{position:relative}
.iwfp-country-suggestions[hidden]{display:none!important}
.iwfp-country-suggestions{position:absolute;left:0;right:0;top:78px;z-index:80;max-height:260px;overflow:auto;padding:6px;background:#fff;border:1px solid rgba(14,25,55,.16);border-radius:14px;box-shadow:0 18px 42px rgba(14,25,55,.18)}
.iwfp-country-option{width:100%;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:0;border-radius:10px;background:#fff;color:#0c1020;text-align:left;cursor:pointer;font:inherit}
.iwfp-country-option:hover,.iwfp-country-option:focus{background:#f3f6ff;outline:none}
.iwfp-country-option span{font-size:14px;font-weight:700}
.iwfp-country-option small{margin:0;color:#6a7285;font-size:12px;font-weight:700}

/* Deutschland-only: keine Länderauswahl */
.iwfp-country-suggestions,.iwfp-country-field{display:none!important}

/* Sichtbare Nettopreise beim Verpackungsmaterial */
.iwfp-service .iwfp-material-price{
  color:#263DB6;
  font-size:12px;
  font-weight:800;
  line-height:1.3;
  margin-top:1px;
}

/* Integrierter Materialshop im Festpreisrechner */
.iwfp-product-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:16px;
}
.iwfp-product-card{
  display:grid;
  grid-template-columns:118px minmax(0,1fr);
  gap:14px;
  padding:14px;
  border:1px solid rgba(14,25,55,.10);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 22px rgba(14,25,55,.06);
  min-width:0;
}
.iwfp-product-image-wrap{
  width:118px;
  height:118px;
  border-radius:13px;
  overflow:hidden;
  background:#f6f8ff;
  display:flex;
  align-items:center;
  justify-content:center;
}
.iwfp-product-image{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  padding:8px;
}
.iwfp-product-body{min-width:0;display:flex;flex-direction:column;gap:7px}
.iwfp-product-body h4{margin:0;color:var(--iwfp-ink,#0c1020);font-size:15px;line-height:1.25}
.iwfp-product-body p{margin:0;color:var(--iwfp-muted,#5f677a);font-size:12.5px;line-height:1.4}
.iwfp-product-prices{display:flex;flex-direction:column;gap:2px;margin-top:auto}
.iwfp-product-prices strong{font-size:14px;color:#263DB6}
.iwfp-product-min{font-size:11.5px;color:#6b7280;line-height:1.3}
.iwfp-qty-control{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:4px;
}
.iwfp-v2 .iwfp-qty-control input[type="number"]{
  flex:0 0 62px;
  width:62px!important;
  min-width:62px!important;
  max-width:62px!important;
  min-height:30px!important;
  height:30px!important;
  text-align:center;
  padding:3px 5px!important;
  border-radius:7px!important;
  font-variant-numeric:tabular-nums;
  -moz-appearance:textfield;
}
.iwfp-qty-control input::-webkit-outer-spin-button,
.iwfp-qty-control input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.iwfp-v2 button.iwfp-qty-btn,
.iwfp-v2 button.iwfp-qty-btn:not(.iwfp-secondary){
  flex:0 0 28px!important;
  width:28px!important;
  min-width:28px!important;
  max-width:28px!important;
  height:28px!important;
  min-height:28px!important;
  max-height:28px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid rgba(38,61,182,.35)!important;
  border-radius:7px!important;
  background:#f6f8ff!important;
  color:#263DB6!important;
  box-shadow:none!important;
  font-size:16px!important;
  line-height:1!important;
  font-weight:800!important;
  cursor:pointer;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.iwfp-v2 button.iwfp-qty-btn:hover,
.iwfp-v2 button.iwfp-qty-btn:focus{
  background:#eef1ff!important;
  border-color:rgba(38,61,182,.65)!important;
  color:#263DB6!important;
}
.iwfp-material-services{margin-top:16px}
@media(max-width:900px){.iwfp-product-grid{grid-template-columns:1fr}}
@media(max-width:520px){
  .iwfp-product-card{grid-template-columns:88px minmax(0,1fr);gap:12px}
  .iwfp-product-image-wrap{width:88px;height:88px}
}

/* 3.0.7: sichtbarer Arbeitsstatus bei Preisberechnung und Buchung */
.iwfp-working[hidden]{display:none!important}
body.iwfp-working-open{overflow:hidden}
.iwfp-working{position:fixed;inset:0;z-index:1000000;display:grid;place-items:center;padding:20px}
.iwfp-working-backdrop{position:absolute;inset:0;background:rgba(10,18,45,.38);backdrop-filter:blur(3px)}
.iwfp-working-card{position:relative;display:flex;width:min(390px,calc(100vw - 40px));min-height:190px;align-items:center;justify-content:center;flex-direction:column;gap:10px;padding:28px 24px;border:1px solid rgba(38,61,182,.15);border-radius:22px;background:#fff;box-shadow:0 28px 90px rgba(8,15,40,.28);text-align:center}
.iwfp-working-card strong{color:#18204a;font-size:18px;line-height:1.35}
.iwfp-working-card>span:last-child{max-width:290px;color:#667085;font-size:13px;line-height:1.5}
.iwfp-working-spinner{width:48px;height:48px;margin-bottom:4px;border:4px solid rgba(38,61,182,.16);border-top-color:#263DB6;border-radius:50%;animation:iwfp-spin .72s linear infinite}
@keyframes iwfp-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.iwfp-working-spinner{animation-duration:1.6s}}

/* 3.0.9: ruhige Zahlungsdarstellung und klar ausgerichtete Beträge */
.iwfp-price-totals .iwfp-payment-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  padding:11px 12px;
  border:1px solid rgba(38,61,182,.10);
  border-radius:12px;
  background:rgba(38,61,182,.035);
}
.iwfp-payment-copy{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:2px;
}
.iwfp-payment-copy>strong{
  color:rgba(16,20,38,.92);
  font-size:13px;
  font-weight:750;
  line-height:1.3;
}
.iwfp-payment-copy>small{
  color:var(--iwfp-muted);
  font-size:11px;
  line-height:1.35;
}
.iwfp-payment-amount{
  align-self:center;
  color:#18204a;
  font-size:15px;
  font-weight:800;
  line-height:1.2;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
@media(max-width:420px){
  .iwfp-price-totals .iwfp-payment-row{gap:10px;padding:10px}
  .iwfp-payment-amount{font-size:14px}
}

/* 3.0.12: konsequente Mobile-Optimierung */
.iwfp-v2,
.iwfp-v2 *{
  box-sizing:border-box;
}
.iwfp-v2{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:clip;
}
.iwfp-layout,
.iwfp-form,
.iwfp-card,
.iwfp-grid,
.iwfp-services,
.iwfp-service,
.iwfp-dropdown,
.iwfp-product-grid,
.iwfp-product-card,
.iwfp-product-body,
.iwfp-price{
  min-width:0;
  max-width:100%;
}
.iwfp-v2 img,
.iwfp-v2 svg,
.iwfp-v2 video,
.iwfp-v2 iframe{
  max-width:100%;
}
.iwfp-price-close,
.iwfp-mobile-price-bar,
.iwfp-price-backdrop{
  display:none;
}

@media(max-width:1000px){
  body.iwfp-mobile-price-open{
    overflow:hidden;
    overscroll-behavior:none;
  }
  .iwfp-v2{
    padding-bottom:calc(92px + env(safe-area-inset-bottom,0px));
  }
  .iwfp-price{
    position:fixed;
    z-index:100002;
    top:auto;
    right:auto;
    bottom:calc(8px + env(safe-area-inset-bottom,0px));
    left:50%;
    width:min(560px,calc(100% - 24px));
    max-height:min(82dvh,760px);
    overflow:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:18px;
    border-radius:22px;
    transform:translate(-50%,calc(100% + 48px));
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:transform .24s ease,opacity .2s ease,visibility 0s linear .24s;
  }
  .iwfp-price.is-mobile-open{
    transform:translate(-50%,0);
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:transform .24s ease,opacity .2s ease;
  }
  .iwfp-price-head{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto 44px;
    gap:10px;
    align-items:center;
  }
  .iwfp-v2 button.iwfp-price-close,
  .iwfp-v2 button.iwfp-price-close:not(.iwfp-secondary){
    display:inline-flex;
    width:44px;
    min-width:44px;
    max-width:44px;
    height:44px;
    min-height:44px;
    max-height:44px;
    align-items:center;
    justify-content:center;
    margin:0;
    padding:0;
    border:1px solid rgba(38,61,182,.18);
    border-radius:50%;
    background:#f5f7ff;
    color:#263DB6;
    box-shadow:none;
    font:700 27px/1 Arial,sans-serif;
  }
  .iwfp-price-backdrop{
    position:fixed;
    inset:0;
    z-index:100001;
    display:block;
    background:rgba(10,18,45,.55);
    backdrop-filter:blur(3px);
  }
  .iwfp-price-backdrop[hidden]{
    display:none!important;
  }
  .iwfp-v2 button.iwfp-mobile-price-bar,
  .iwfp-v2 button.iwfp-mobile-price-bar:not(.iwfp-secondary){
    position:fixed;
    right:10px;
    bottom:calc(8px + env(safe-area-inset-bottom,0px));
    left:10px;
    z-index:99990;
    display:flex;
    width:auto;
    min-height:66px;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin:0;
    padding:10px 12px 10px 16px;
    border:1px solid rgba(38,61,182,.2);
    border-radius:18px;
    background:#fff;
    color:#101426;
    box-shadow:0 15px 42px rgba(11,20,55,.24);
    text-align:left;
  }
  .iwfp-mobile-price-copy{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:1px;
  }
  .iwfp-mobile-price-copy small{
    min-height:0;
    color:#667085;
    font-size:11px;
    font-weight:700;
    line-height:1.3;
  }
  .iwfp-mobile-price-copy strong{
    overflow:hidden;
    color:#18204a;
    font-size:20px;
    font-weight:850;
    line-height:1.15;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
  }
  .iwfp-mobile-price-action{
    display:inline-flex;
    min-height:44px;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:0 14px;
    border-radius:999px;
    background:#263DB6;
    color:#fff;
    font-size:13px;
    font-weight:800;
    white-space:nowrap;
  }
  .iwfp-calculating .iwfp-mobile-price-action{
    opacity:.78;
  }
  .iwfp-keyboard-open .iwfp-mobile-price-bar,
  .iwfp-is-complete .iwfp-mobile-price-bar{
    display:none!important;
  }
}

@media(max-width:720px){
  .iwfp-v2{
    padding:12px 12px calc(88px + env(safe-area-inset-bottom,0px));
    border-radius:18px;
  }
  .iwfp-head{
    margin-bottom:14px;
  }
  .iwfp-head h1,
  .iwfp-head h2{
    font-size:clamp(25px,8vw,32px);
    line-height:1.12;
  }
  .iwfp-head p{
    font-size:14px;
    line-height:1.5;
  }
  .iwfp-stepper{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin:16px 0;
  }
  .iwfp-stepper li{
    min-width:0;
    min-height:54px;
    gap:9px;
    padding:10px 11px;
    font-size:13px;
    line-height:1.25;
  }
  .iwfp-stepper li span{
    width:30px;
    min-width:30px;
    height:30px;
  }
  .iwfp-stepper{
    scroll-margin-top:88px;
  }
  .iwfp-card,
  .iwfp-price{
    border-radius:16px;
  }
  .iwfp-card-head{
    padding:17px 15px 10px;
  }
  .iwfp-card-head h3{
    font-size:19px;
    line-height:1.25;
  }
  .iwfp-card-head p{
    font-size:13px;
    line-height:1.45;
  }
  .iwfp-grid,
  .iwfp-services{
    gap:12px;
    padding:0 15px 17px;
  }
  .iwfp-grid > label,
  .iwfp-grid > label.span-2{
    grid-template-rows:auto 52px auto;
    gap:7px;
  }
  .iwfp-grid small,
  .iwfp-service small,
  .iwfp-notes small{
    min-height:0;
    font-size:12px;
    line-height:1.45;
  }
  .iwfp-v2 input:not([type="checkbox"]):not([type="radio"]),
  .iwfp-v2 select{
    height:52px;
    min-height:52px;
    padding:0 13px;
    font-size:16px;
  }
  .iwfp-v2 textarea{
    min-height:136px;
    padding:12px 13px;
    font-size:16px;
    line-height:1.45;
  }
  .iwfp-input-unit,
  .iwfp-input-unit input{
    height:52px;
  }
  .iwfp-dropdown{
    margin:0 15px 16px;
    border-radius:13px;
  }
  .iwfp-dropdown summary{
    display:flex;
    min-height:52px;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:13px 14px;
    font-size:14px;
    line-height:1.35;
  }
  .iwfp-dropdown summary:after{
    float:none;
    flex:0 0 auto;
  }
  .iwfp-inline-info{
    margin:12px 14px 0;
    padding:11px 12px;
    font-size:12.5px;
    line-height:1.45;
  }
  .iwfp-service{
    grid-template-columns:26px minmax(0,1fr);
    grid-template-rows:auto auto 52px;
    min-height:0;
    gap:8px 10px;
    padding:14px;
    border-radius:13px;
    cursor:pointer;
  }
  .iwfp-service > input[type="checkbox"]{
    width:24px;
    height:24px;
    min-height:24px;
    margin:0;
  }
  .iwfp-service > span{
    align-self:center;
    font-size:14px;
  }
  .iwfp-service > small{
    min-height:0;
  }
  .iwfp-service > input[type="number"]{
    height:52px;
    min-height:52px;
  }
  .iwfp-service.iwfp-checkbox{
    grid-template-rows:auto auto;
  }
  .iwfp-confirmations{
    gap:2px;
    padding:0 15px 17px;
  }
  .iwfp-confirmations label{
    min-height:48px;
    gap:11px;
    align-items:flex-start;
    padding:9px 0;
    font-size:13px;
    line-height:1.48;
  }
  .iwfp-confirmations input{
    width:24px;
    min-width:24px;
    height:24px;
    min-height:24px;
    margin:0;
  }
  .iwfp-notes{
    padding:0 15px 17px;
  }
  .iwfp-order-summary{
    margin:16px 15px;
    padding:14px;
  }
  .iwfp-final-note{
    margin:0 15px 17px;
    padding:13px;
    font-size:13px;
    line-height:1.45;
  }
  .cf-turnstile{
    max-width:calc(100% - 30px);
    margin:16px 15px;
    overflow:hidden;
  }
  .iwfp-secondary,
  .iwfp-v2 button{
    min-height:48px;
    padding:12px 17px;
    font-size:15px;
  }
  .iwfp-nav{
    display:grid;
    grid-template-columns:minmax(92px,.72fr) minmax(0,1.28fr);
    gap:10px;
    align-items:stretch;
    margin-top:14px;
  }
  .iwfp-nav button{
    width:100%;
    margin:0;
    line-height:1.25;
  }
  .iwfp-nav [data-back][hidden] + [data-next]{
    grid-column:1/-1;
  }
  .iwfp-error{
    grid-column:1/-1;
    order:-1;
    width:100%;
    font-size:13px;
    line-height:1.42;
  }
  .iwfp-v2 button.iwfp-qty-btn,
  .iwfp-v2 button.iwfp-qty-btn:not(.iwfp-secondary){
    flex:0 0 44px!important;
    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;
    height:44px!important;
    min-height:44px!important;
    max-height:44px!important;
    border-radius:10px!important;
    font-size:21px!important;
  }
  .iwfp-v2 .iwfp-qty-control input[type="number"]{
    flex:0 0 60px;
    width:60px!important;
    min-width:60px!important;
    max-width:60px!important;
    height:44px!important;
    min-height:44px!important;
    padding:3px 5px!important;
    font-size:16px;
  }
  .iwfp-qty-control{
    gap:8px;
    flex-wrap:nowrap;
  }
  .iwfp-edit-price{
    min-height:36px!important;
    padding:7px 11px!important;
    font-size:12px!important;
  }
  .iwfp-modal{
    padding:12px;
  }
  .iwfp-modal-card{
    max-height:calc(100dvh - 24px);
    padding:22px 17px calc(20px + env(safe-area-inset-bottom,0px));
    border-radius:18px;
  }
  .iwfp-modal-card h3{
    font-size:21px;
    line-height:1.25;
  }
  .iwfp-modal-primary,
  .iwfp-modal-secondary{
    min-height:48px;
  }
  .iwfp-working{
    padding:12px;
  }
  .iwfp-working-card{
    width:min(390px,calc(100vw - 24px));
    min-height:178px;
    padding:24px 18px;
  }
}

@media(max-width:520px){
  .iwfp-product-grid{
    gap:12px;
  }
  .iwfp-product-card{
    grid-template-columns:72px minmax(0,1fr);
    gap:11px;
    padding:12px;
    border-radius:14px;
  }
  .iwfp-product-image-wrap{
    width:72px;
    height:72px;
    border-radius:11px;
  }
  .iwfp-product-image{
    padding:5px;
  }
  .iwfp-product-body{
    gap:6px;
  }
  .iwfp-product-body h4{
    font-size:14px;
  }
  .iwfp-product-body p{
    font-size:12px;
  }
  .iwfp-product-min{
    font-size:11px;
  }
  .iwfp-price{
    bottom:calc(6px + env(safe-area-inset-bottom,0px));
    width:calc(100% - 12px);
    max-height:calc(100dvh - 12px - env(safe-area-inset-bottom,0px));
    padding:16px;
    border-radius:19px;
  }
  .iwfp-price-head{
    grid-template-columns:minmax(0,1fr) auto 44px;
  }
  .iwfp-price-head > span{
    display:none;
  }
  .iwfp-price-status{
    margin:12px 0;
  }
  .iwfp-price-totals .grand{
    font-size:17px;
  }
  .iwfp-v2 button.iwfp-mobile-price-bar,
  .iwfp-v2 button.iwfp-mobile-price-bar:not(.iwfp-secondary){
    right:6px;
    bottom:calc(6px + env(safe-area-inset-bottom,0px));
    left:6px;
    min-height:64px;
    padding:9px 10px 9px 14px;
    border-radius:16px;
  }
  .iwfp-mobile-price-copy strong{
    font-size:19px;
  }
  .iwfp-mobile-price-action{
    padding:0 12px;
  }
}

@media(max-width:360px){
  .iwfp-v2{
    padding-right:9px;
    padding-left:9px;
  }
  .iwfp-stepper li{
    padding:9px;
    font-size:12.5px;
  }
  .iwfp-card-head{
    padding-right:13px;
    padding-left:13px;
  }
  .iwfp-grid,
  .iwfp-services,
  .iwfp-confirmations,
  .iwfp-notes{
    padding-right:13px;
    padding-left:13px;
  }
  .iwfp-dropdown{
    margin-right:13px;
    margin-left:13px;
  }
  .iwfp-product-card{
    grid-template-columns:64px minmax(0,1fr);
    gap:9px;
    padding:10px;
  }
  .iwfp-product-image-wrap{
    width:64px;
    height:64px;
  }
  .iwfp-qty-control{
    gap:6px;
  }
  .iwfp-v2 button.iwfp-qty-btn,
  .iwfp-v2 button.iwfp-qty-btn:not(.iwfp-secondary){
    flex-basis:42px!important;
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
  }
  .iwfp-v2 .iwfp-qty-control input[type="number"]{
    flex-basis:54px;
    width:54px!important;
    min-width:54px!important;
    max-width:54px!important;
    height:42px!important;
    min-height:42px!important;
  }
  .iwfp-mobile-price-action{
    padding:0 10px;
    font-size:12.5px;
  }
}

@media (prefers-reduced-motion:reduce){
  .iwfp-price{
    transition:none!important;
  }
}


/* 3.0.12 mobile touch refinements */
@media(max-width:1000px){
  .iwfp-nav button{
    min-height:48px;
  }
  .iwfp-v2 input,
  .iwfp-v2 select,
  .iwfp-v2 textarea,
  .iwfp-v2 button,
  .iwfp-v2 summary{
    scroll-margin-bottom:104px;
  }
}
@media(max-width:720px){
  .iwfp-edit-price{
    min-height:44px!important;
    padding:8px 12px!important;
  }
}
@media(max-width:360px){
  .iwfp-v2 button.iwfp-qty-btn,
  .iwfp-v2 button.iwfp-qty-btn:not(.iwfp-secondary){
    flex-basis:44px!important;
    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;
    height:44px!important;
    min-height:44px!important;
    max-height:44px!important;
  }
  .iwfp-v2 .iwfp-qty-control input[type="number"]{
    height:44px!important;
    min-height:44px!important;
  }
}

/* 3.0.13: harter Schutz gegen horizontales Verschieben auf Mobilgeräten */
html.iwfp-page-active,
body.iwfp-page-active{
  max-width:100%!important;
  overflow-x:hidden!important;
  overscroll-behavior-x:none;
}
@supports (overflow:clip){
  html.iwfp-page-active,
  body.iwfp-page-active{
    overflow-x:clip!important;
  }
}
body.iwfp-page-active{
  position:relative;
}
.iwfp-v2{
  overflow-x:hidden;
  overscroll-behavior-x:none;
  touch-action:pan-y pinch-zoom;
}
@supports (overflow:clip){
  .iwfp-v2{
    overflow-x:clip;
  }
}
.iwfp-v2 > *,
.iwfp-layout,
.iwfp-form,
.iwfp-step,
.iwfp-card,
.iwfp-card-head,
.iwfp-grid,
.iwfp-grid > *,
.iwfp-services,
.iwfp-services > *,
.iwfp-stepper,
.iwfp-stepper > *,
.iwfp-nav,
.iwfp-nav > *,
.iwfp-dropdown,
.iwfp-product-grid,
.iwfp-product-card,
.iwfp-price-totals,
.iwfp-price-row{
  min-width:0;
  max-width:100%;
}
@media(max-width:1000px){
  .iwfp-v2 button.iwfp-mobile-price-bar,
  .iwfp-v2 button.iwfp-mobile-price-bar:not(.iwfp-secondary){
    max-width:calc(100vw - 20px)!important;
  }
  .iwfp-price{
    max-width:calc(100vw - 24px)!important;
  }
}
@media(max-width:520px){
  .iwfp-v2 button.iwfp-mobile-price-bar,
  .iwfp-v2 button.iwfp-mobile-price-bar:not(.iwfp-secondary){
    max-width:calc(100vw - 12px)!important;
  }
  .iwfp-price{
    max-width:calc(100vw - 12px)!important;
  }
}

/* 3.0.14: echter Smartphone-Viewport, kompakter Stepper und unclipped Preis-Portal */
.iwfp-v2{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
.iwfp-stepper li b{
  min-width:0;
  font:inherit;
  font-weight:inherit;
  color:inherit;
}
.iwfp-price,
.iwfp-price *,
.iwfp-mobile-price-bar,
.iwfp-mobile-price-bar *{
  box-sizing:border-box;
}

@media(max-width:1000px){
  body > .iwfp-price{
    width:min(560px,calc(100vw - 16px))!important;
    max-width:calc(100vw - 16px)!important;
  }
  body > .iwfp-price-backdrop{
    position:fixed;
    inset:0;
    z-index:100001;
    display:block;
    background:rgba(10,18,45,.55);
    backdrop-filter:blur(3px);
  }
  body > .iwfp-price-backdrop[hidden]{
    display:none!important;
  }
  body > button.iwfp-mobile-price-bar,
  body > button.iwfp-mobile-price-bar:not(.iwfp-secondary){
    position:fixed!important;
    right:max(8px,env(safe-area-inset-right,0px))!important;
    bottom:calc(8px + env(safe-area-inset-bottom,0px))!important;
    left:max(8px,env(safe-area-inset-left,0px))!important;
    z-index:99990!important;
    display:flex!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    min-height:56px!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    margin:0!important;
    padding:7px 7px 7px 13px!important;
    border:1px solid rgba(38,61,182,.2)!important;
    border-radius:15px!important;
    background:#fff!important;
    color:#101426!important;
    box-shadow:0 12px 34px rgba(11,20,55,.22)!important;
    text-align:left!important;
    font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif!important;
    line-height:1.2!important;
    touch-action:manipulation;
  }
  body > .iwfp-mobile-price-bar .iwfp-mobile-price-copy{
    display:flex;
    min-width:0;
    flex:1 1 auto;
    flex-direction:row;
    align-items:baseline;
    gap:6px;
    overflow:hidden;
  }
  body > .iwfp-mobile-price-bar .iwfp-mobile-price-copy small{
    flex:0 0 auto;
    min-height:0;
    margin:0;
    color:#667085;
    font-size:12px;
    font-weight:750;
    line-height:1.2;
    white-space:nowrap;
  }
  body > .iwfp-mobile-price-bar .iwfp-mobile-price-copy strong{
    min-width:0;
    overflow:hidden;
    color:#18204a;
    font-size:18px;
    font-weight:850;
    line-height:1.15;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
  }
  body > .iwfp-mobile-price-bar .iwfp-mobile-price-action{
    display:inline-flex;
    min-width:88px;
    min-height:42px;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    gap:5px;
    padding:0 12px;
    border-radius:999px;
    background:#263DB6;
    color:#fff;
    font-size:13px;
    font-weight:800;
    white-space:nowrap;
  }
  body.iwfp-keyboard-open > .iwfp-mobile-price-bar,
  body.iwfp-is-complete > .iwfp-mobile-price-bar{
    display:none!important;
  }
  body > .iwfp-price button.iwfp-price-close,
  body > .iwfp-price button.iwfp-price-close:not(.iwfp-secondary){
    display:inline-flex;
    width:44px;
    min-width:44px;
    max-width:44px;
    height:44px;
    min-height:44px;
    max-height:44px;
    align-items:center;
    justify-content:center;
    margin:0;
    padding:0;
    border:1px solid rgba(38,61,182,.18);
    border-radius:50%;
    background:#f5f7ff;
    color:#263DB6;
    box-shadow:none;
    font:700 27px/1 Arial,sans-serif;
  }
}

@media(max-width:520px){
  .iwfp-v2{
    width:calc(100vw - 16px)!important;
    max-width:calc(100vw - 16px)!important;
    margin-left:calc(50% - 50vw + 8px)!important;
    margin-right:calc(50% - 50vw + 8px)!important;
    padding:11px 10px calc(78px + env(safe-area-inset-bottom,0px))!important;
    border-radius:17px;
    overflow:hidden!important;
    contain:inline-size;
  }
  .iwfp-v2 > *,
  .iwfp-head,
  .iwfp-head > *,
  .iwfp-layout,
  .iwfp-form,
  .iwfp-step,
  .iwfp-card,
  .iwfp-grid,
  .iwfp-grid > *,
  .iwfp-services,
  .iwfp-services > *,
  .iwfp-dropdown,
  .iwfp-dropdown > *,
  .iwfp-product-grid,
  .iwfp-product-card,
  .iwfp-product-card > *,
  .iwfp-nav{
    min-width:0!important;
    max-width:100%!important;
  }
  .iwfp-head h1,
  .iwfp-head h2{
    max-width:100%;
    margin-bottom:9px;
    font-size:clamp(27px,8.1vw,31px)!important;
    line-height:1.08!important;
    letter-spacing:-.025em;
    white-space:normal!important;
    overflow-wrap:break-word;
    word-break:normal;
  }
  .iwfp-kicker{
    max-width:100%;
    margin-bottom:7px;
    font-size:10px!important;
    line-height:1.25;
    letter-spacing:.105em!important;
    white-space:normal;
    overflow-wrap:break-word;
  }
  .iwfp-head > p:last-child{
    max-width:100%;
    font-size:13.5px;
    line-height:1.48;
    white-space:normal;
    overflow-wrap:break-word;
  }
  .iwfp-stepper{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:5px!important;
    width:100%;
    margin:14px 0!important;
  }
  .iwfp-stepper li{
    display:flex;
    min-width:0!important;
    min-height:62px!important;
    flex-direction:column;
    justify-content:center;
    gap:4px!important;
    padding:7px 2px!important;
    border-radius:12px;
    text-align:center;
    overflow:hidden;
  }
  .iwfp-stepper li span{
    width:28px!important;
    min-width:28px!important;
    height:28px!important;
    flex:0 0 28px;
    font-size:13px;
  }
  .iwfp-stepper li b{
    display:block;
    width:100%;
    min-width:0;
    overflow:hidden;
    font-size:0!important;
    line-height:1.08;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .iwfp-stepper li b::after{
    content:attr(data-short);
    font-size:10.5px;
    font-weight:800;
    letter-spacing:-.01em;
  }
  .iwfp-card-head{
    padding:16px 13px 10px!important;
  }
  .iwfp-grid,
  .iwfp-services,
  .iwfp-confirmations,
  .iwfp-notes{
    padding-right:13px!important;
    padding-left:13px!important;
  }
  .iwfp-grid input,
  .iwfp-grid select,
  .iwfp-grid textarea,
  .iwfp-input-unit{
    max-width:100%!important;
    min-width:0!important;
  }
  .iwfp-dropdown{
    margin-right:13px!important;
    margin-left:13px!important;
  }
  body > .iwfp-price{
    right:8px!important;
    bottom:calc(8px + env(safe-area-inset-bottom,0px))!important;
    left:8px!important;
    width:auto!important;
    max-width:none!important;
    transform:translateY(calc(100% + 48px))!important;
  }
  body > .iwfp-price.is-mobile-open{
    transform:translateY(0)!important;
  }
}

@media(max-width:340px){
  .iwfp-v2{
    width:calc(100vw - 10px)!important;
    max-width:calc(100vw - 10px)!important;
    margin-left:calc(50% - 50vw + 5px)!important;
    margin-right:calc(50% - 50vw + 5px)!important;
    padding-right:8px!important;
    padding-left:8px!important;
  }
  .iwfp-stepper{
    gap:4px!important;
  }
  .iwfp-stepper li{
    min-height:60px!important;
    padding-right:1px!important;
    padding-left:1px!important;
  }
  .iwfp-stepper li b::after{
    font-size:9.7px;
  }
  body > .iwfp-mobile-price-bar .iwfp-mobile-price-copy small{
    font-size:11px;
  }
  body > .iwfp-mobile-price-bar .iwfp-mobile-price-copy strong{
    font-size:16.5px;
  }
  body > .iwfp-mobile-price-bar .iwfp-mobile-price-action{
    min-width:78px;
    padding:0 10px;
    font-size:12.5px;
  }
}

/* 3.0.15: zentrale, ruhige Erfolgsansicht nach verbindlicher Speicherung */
.iwfp-v2.iwfp-is-complete{
  display:grid;
  min-height:clamp(430px,62vh,640px);
  place-items:center;
  padding:clamp(22px,4vw,52px)!important;
  background:
    radial-gradient(520px 260px at 50% 10%,rgba(27,191,90,.09),transparent 68%),
    radial-gradient(760px 360px at 0 0,rgba(38,61,182,.08),transparent 60%),
    var(--iwfp-bg);
}
.iwfp-v2.iwfp-is-complete > .iwfp-head,
.iwfp-v2.iwfp-is-complete > .iwfp-stepper,
.iwfp-v2.iwfp-is-complete > .iwfp-price-backdrop,
.iwfp-v2.iwfp-is-complete > .iwfp-mobile-price-bar,
.iwfp-v2.iwfp-is-complete .iwfp-price,
.iwfp-v2.iwfp-is-complete .iwfp-nav,
.iwfp-v2.iwfp-is-complete .iwfp-working{
  display:none!important;
}
.iwfp-v2.iwfp-is-complete .iwfp-layout{
  display:block;
  width:min(780px,100%);
  margin:auto;
}
.iwfp-v2.iwfp-is-complete .iwfp-form{
  width:100%;
  margin:0;
}
.iwfp-booking-success{
  position:relative;
  width:100%;
  max-width:780px;
  overflow:hidden;
  padding:clamp(30px,5vw,56px)!important;
  border:1px solid rgba(38,61,182,.13)!important;
  border-radius:24px!important;
  background:linear-gradient(180deg,#fff 0%,#fcfdff 100%)!important;
  box-shadow:0 24px 70px rgba(16,20,38,.11)!important;
  text-align:center;
}
.iwfp-booking-success::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:5px;
  background:linear-gradient(90deg,#1bbf5a,#263DB6);
}
.iwfp-booking-success:focus{
  outline:none;
}
.iwfp-success-icon{
  width:72px;
  height:72px;
  margin:0 auto 16px;
  border:7px solid rgba(27,191,90,.13);
  border-radius:50%;
  background:#1bbf5a;
  color:#fff;
  display:grid;
  place-items:center;
  font-size:37px;
  font-weight:850;
  line-height:1;
  box-shadow:0 12px 30px rgba(27,191,90,.22);
}
.iwfp-success-eyebrow{
  margin:0 0 9px!important;
  color:#168b43;
  font-size:12px;
  font-weight:850;
  letter-spacing:.12em;
  line-height:1.2!important;
  text-transform:uppercase;
}
.iwfp-booking-success h2{
  max-width:680px;
  margin:0 auto 16px!important;
  color:#263DB6;
  font-size:clamp(26px,3.4vw,38px);
  font-weight:820;
  letter-spacing:-.025em;
  line-height:1.16;
  text-wrap:balance;
}
.iwfp-booking-success p{
  max-width:660px;
  margin-right:auto!important;
  margin-left:auto!important;
}
.iwfp-success-lead{
  margin-top:0!important;
  margin-bottom:18px!important;
  color:#172033;
  font-size:clamp(17px,2vw,20px);
  font-weight:760;
  line-height:1.45!important;
}
.iwfp-success-copy{
  margin-top:0!important;
  margin-bottom:20px!important;
  color:#4f5870;
  font-size:15.5px;
  line-height:1.7!important;
}
.iwfp-success-copy strong{
  color:#172033;
  overflow-wrap:anywhere;
}
.iwfp-success-refs{
  display:flex;
  max-width:660px;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  margin:0 auto 18px;
}
.iwfp-success-refs span{
  padding:8px 12px;
  border:1px solid rgba(38,61,182,.14);
  border-radius:999px;
  background:#f5f7ff;
  color:#263DB6;
  font-size:12.5px;
  font-weight:780;
}
.iwfp-success-note{
  display:inline-flex;
  width:auto;
  max-width:100%;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:0!important;
  margin-bottom:0!important;
  padding:11px 15px;
  border:1px solid #e4e8f2;
  border-radius:12px;
  background:#f8f9fc;
  color:#596176;
  font-size:13px;
  font-weight:680;
  line-height:1.45!important;
}
.iwfp-success-note::before{
  content:"✉";
  color:#263DB6;
  font-size:16px;
}
body.iwfp-is-complete > .iwfp-price,
body.iwfp-is-complete > .iwfp-price-backdrop,
body.iwfp-is-complete > .iwfp-mobile-price-bar{
  display:none!important;
}
@media(max-width:720px){
  .iwfp-v2.iwfp-is-complete{
    min-height:calc(100svh - 130px);
    padding:16px 10px!important;
  }
  .iwfp-booking-success{
    padding:30px 20px 26px!important;
    border-radius:19px!important;
  }
  .iwfp-success-icon{
    width:64px;
    height:64px;
    border-width:6px;
    font-size:32px;
  }
  .iwfp-booking-success h2{
    font-size:clamp(25px,8vw,32px);
  }
  .iwfp-success-copy{
    font-size:14.5px;
    line-height:1.62!important;
  }
  .iwfp-success-note{
    display:flex;
    width:100%;
  }
}

/* 3.0.16: animierte Terminverfügbarkeitsanzeige */
.iwfp-date-field{grid-template-rows:auto 48px auto auto!important}
.iwfp-availability[hidden]{display:none!important}
.iwfp-availability{
  position:relative;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:12px;
  align-items:center;
  margin-top:2px;
  padding:13px 14px;
  border:1px solid rgba(38,61,182,.22);
  border-radius:14px;
  overflow:hidden;
  background:#f5f7ff;
  color:#263DB6;
  box-shadow:0 8px 22px rgba(16,20,38,.06);
  animation:iwfpAvailabilityIn .34s cubic-bezier(.2,.75,.25,1) both;
}
.iwfp-availability:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0;
  background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.75) 48%,transparent 76%);
  transform:translateX(-110%);
}
.iwfp-availability-icon{
  position:relative;
  z-index:1;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(38,61,182,.12);
  color:#263DB6;
  font-size:23px;
  font-weight:900;
  line-height:1;
}
.iwfp-availability-copy{position:relative;z-index:1;display:grid;gap:3px;min-width:0}
.iwfp-availability-copy strong{font-size:14px;line-height:1.3;font-weight:820;color:inherit}
.iwfp-availability-copy small{min-height:0!important;margin:0;font-size:12px;line-height:1.45;color:rgba(45,56,82,.82)}
.iwfp-availability[data-state="checking"]:before{opacity:1;animation:iwfpAvailabilityShimmer 1.35s ease-in-out infinite}
.iwfp-availability[data-state="checking"] .iwfp-availability-icon:before{
  content:"";
  width:20px;
  height:20px;
  border:3px solid rgba(38,61,182,.22);
  border-top-color:#263DB6;
  border-radius:50%;
  animation:iwfpAvailabilitySpin .72s linear infinite;
}
.iwfp-availability[data-state="available"]{border-color:rgba(27,191,90,.34);background:#effbf4;color:#087a36}
.iwfp-availability[data-state="available"] .iwfp-availability-icon{background:#1bbf5a;color:#fff;animation:iwfpAvailabilityPop .42s cubic-bezier(.18,.9,.28,1.35) both}
.iwfp-availability[data-state="available"] .iwfp-availability-icon:before{content:"✓"}
.iwfp-availability[data-state="available"] .iwfp-availability-copy small{color:#356348}
.iwfp-availability[data-state="unavailable"]{border-color:rgba(201,48,48,.30);background:#fff4f4;color:#a71f1f;animation:iwfpAvailabilityIn .3s ease both,iwfpAvailabilityNudge .34s ease .12s both}
.iwfp-availability[data-state="unavailable"] .iwfp-availability-icon{background:#c93030;color:#fff}
.iwfp-availability[data-state="unavailable"] .iwfp-availability-icon:before{content:"×";transform:translateY(-1px)}
.iwfp-availability[data-state="unavailable"] .iwfp-availability-copy small{color:#764646}
.iwfp-availability[data-state="error"]{border-color:rgba(184,116,0,.32);background:#fff8e8;color:#8b5800}
.iwfp-availability[data-state="error"] .iwfp-availability-icon{background:#d88900;color:#fff}
.iwfp-availability[data-state="error"] .iwfp-availability-icon:before{content:"!"}
.iwfp-availability[data-state="error"] .iwfp-availability-copy small{color:#735b31}
.iwfp-date-field input[data-availability-state="checking"]{border-color:#263DB6;box-shadow:0 0 0 4px rgba(38,61,182,.09)}
.iwfp-date-field input[data-availability-state="available"]{border-color:#1bbf5a;box-shadow:0 0 0 4px rgba(27,191,90,.10)}
.iwfp-date-field input[data-availability-state="unavailable"]{border-color:#c93030;box-shadow:0 0 0 4px rgba(201,48,48,.08)}
.iwfp-date-hint{min-height:0!important}
@keyframes iwfpAvailabilityIn{from{opacity:0;transform:translateY(-7px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes iwfpAvailabilitySpin{to{transform:rotate(360deg)}}
@keyframes iwfpAvailabilityShimmer{0%{transform:translateX(-110%)}65%,100%{transform:translateX(110%)}}
@keyframes iwfpAvailabilityPop{0%{transform:scale(.72)}70%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes iwfpAvailabilityNudge{0%,100%{transform:translateX(0)}35%{transform:translateX(-3px)}70%{transform:translateX(3px)}}
@media(max-width:720px){
  .iwfp-date-field{grid-template-rows:auto 48px auto auto!important}
  .iwfp-availability{grid-template-columns:38px minmax(0,1fr);gap:10px;padding:12px}
  .iwfp-availability-icon{width:38px;height:38px;font-size:21px}
}
@media(prefers-reduced-motion:reduce){
  .iwfp-availability,.iwfp-availability:before,.iwfp-availability-icon,.iwfp-availability-icon:before{animation:none!important}
}



/* 3.0.19: Mobile Preisleiste nur im sichtbaren Rechnerbereich */
@media(max-width:1000px){
  .iwfp-v2 button.iwfp-mobile-price-bar,
  .iwfp-v2 button.iwfp-mobile-price-bar:not(.iwfp-secondary),
  body > button.iwfp-mobile-price-bar,
  body > button.iwfp-mobile-price-bar:not(.iwfp-secondary){
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(calc(100% + 24px))!important;
    transition:transform .28s cubic-bezier(.2,.75,.25,1),opacity .2s ease,visibility 0s linear .28s!important;
  }
  .iwfp-v2 button.iwfp-mobile-price-bar.iwfp-mobile-price-visible,
  .iwfp-v2 button.iwfp-mobile-price-bar.iwfp-mobile-price-visible:not(.iwfp-secondary),
  body > button.iwfp-mobile-price-bar.iwfp-mobile-price-visible,
  body > button.iwfp-mobile-price-bar.iwfp-mobile-price-visible:not(.iwfp-secondary){
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translateY(0)!important;
    transition:transform .28s cubic-bezier(.2,.75,.25,1),opacity .2s ease!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .iwfp-mobile-price-bar{transition:none!important}
}


/* 3.0.22: getrennte, international nutzbare Telefonnummer */
.iwfp-grid > .iwfp-field{
  display:grid;
  grid-template-rows:auto 48px minmax(34px,auto);
  align-content:start;
  gap:6px;
  min-width:0;
}
.iwfp-grid > .iwfp-field > span{
  font-size:13px;
  font-weight:760;
}
.iwfp-phone-inputs{
  display:grid;
  grid-template-columns:86px minmax(0,1fr);
  gap:9px;
  width:100%;
  min-width:0;
  height:48px;
}
.iwfp-phone-inputs .iwfp-phone-code,
.iwfp-phone-inputs .iwfp-phone-number{
  width:100%;
  min-width:0;
  height:48px;
  min-height:48px;
}
.iwfp-phone-inputs .iwfp-phone-code{
  padding-right:9px;
  padding-left:9px;
  text-align:center;
  font-weight:750;
}
@media(max-width:720px){
  .iwfp-grid > .iwfp-field{
    grid-template-rows:auto 52px auto;
    gap:7px;
  }
  .iwfp-phone-inputs{
    grid-template-columns:82px minmax(0,1fr);
    height:52px;
  }
  .iwfp-phone-inputs .iwfp-phone-code,
  .iwfp-phone-inputs .iwfp-phone-number{
    height:52px;
    min-height:52px;
    font-size:16px;
  }
}
@media(max-width:360px){
  .iwfp-phone-inputs{
    grid-template-columns:76px minmax(0,1fr);
    gap:7px;
  }
  .iwfp-phone-inputs .iwfp-phone-code{
    padding-right:6px;
    padding-left:6px;
  }
}
