/* Trafmo Terminbuchung */
.tb-widget{
	--tb-accent:#1C24E0;
	--tb-accent-dark:#141BB4;
	--tb-ink:#1f2430;
	--tb-muted:#5b616e;
	--tb-line:#e4e6ef;
	--tb-soft:#eef0fe;
	max-width:640px;margin:0 auto;
	font-family:inherit;color:var(--tb-ink);
	background:#fff;border:1px solid var(--tb-line);border-radius:18px;
	box-shadow:0 18px 50px -28px rgba(20,27,180,.35);
	padding:clamp(20px,4vw,34px);
}
.tb-widget *{box-sizing:border-box}

/* Ansprechpartner */
.tb-host{display:flex;align-items:center;gap:13px;justify-content:center;margin:0 0 20px;padding:0 0 18px;border-bottom:1px solid var(--tb-line)}
.tb-host-img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:0 0 auto;box-shadow:0 0 0 3px var(--tb-soft)}
.tb-host-txt{display:flex;flex-direction:column;line-height:1.3;text-align:left}
.tb-host-lead{font-size:.72rem;color:var(--tb-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.tb-host-name{font-weight:800;color:var(--tb-ink);font-size:1.02rem}
.tb-host-role{font-weight:400;color:var(--tb-muted)}

/* progress dots */
.tb-steps{display:flex;gap:10px;justify-content:center;margin:0 0 22px}
.tb-dot{width:34px;height:5px;border-radius:99px;background:var(--tb-line);transition:background .25s}
.tb-dot.is-active{background:var(--tb-accent)}
.tb-dot.is-done{background:var(--tb-accent-dark)}

.tb-h{font-size:clamp(1.15rem,2.6vw,1.5rem);line-height:1.25;margin:0 0 6px;text-align:center;font-weight:800}
.tb-sub{text-align:center;color:var(--tb-muted);margin:0 0 18px;font-size:.95rem}
.tb-loading{text-align:center;color:var(--tb-muted);padding:24px 0}
.tb-error{text-align:center;color:#b32d2e;background:#fdecec;border-radius:12px;padding:16px}

.tb-back{background:none;border:none;color:var(--tb-accent);font-weight:600;cursor:pointer;padding:10px 10px;margin:0 -10px 6px;font-size:.9rem}
.tb-back:hover{text-decoration:underline}

/* step 1 – types */
.tb-types{display:grid;gap:14px;margin-top:8px}
.tb-type{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;
	text-align:left;background:#fff;border:2px solid var(--tb-line);border-radius:14px;
	padding:18px 18px 16px;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .05s}
.tb-type:hover{border-color:var(--tb-accent);box-shadow:0 10px 26px -18px rgba(20,27,180,.5)}
.tb-type:active{transform:translateY(1px)}
.tb-type-ic{color:var(--tb-accent);display:inline-flex}
.tb-type-label{font-weight:700;font-size:1.05rem}
.tb-type-hint{color:var(--tb-muted);font-size:.9rem;line-height:1.4}
.tb-type-dur{font-size:.8rem;color:var(--tb-accent);font-weight:700;letter-spacing:.02em}
.tb-badge{position:absolute;top:14px;right:14px;background:var(--tb-accent);color:#fff;
	font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
	padding:4px 9px;border-radius:99px}

/* step 2 – days & times */
.tb-days{display:flex;gap:8px;overflow-x:auto;padding-bottom:12px;margin:4px 0 22px;border-bottom:1px solid var(--tb-line);-webkit-overflow-scrolling:touch}
.tb-day{flex:0 0 auto;background:#fff;border:1.5px solid var(--tb-line);border-radius:99px;
	padding:12px 16px;font-size:.9rem;font-weight:600;color:var(--tb-muted);cursor:pointer;white-space:nowrap}
.tb-day.is-active{background:var(--tb-accent);border-color:var(--tb-accent);color:#fff}
.tb-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px}
.tb-time{background:var(--tb-soft);border:1.5px solid transparent;border-radius:10px;
	padding:13px 0;font-weight:700;color:var(--tb-accent);cursor:pointer;transition:all .15s}
.tb-time:hover{border-color:var(--tb-accent);background:#fff}

/* step 3 – form */
.tb-summary{background:var(--tb-soft);border-radius:12px;padding:12px 16px;text-align:center;margin:0 0 18px;line-height:1.4}
.tb-form{display:grid;gap:13px}
.tb-fld{display:flex;flex-direction:column;gap:5px;font-size:.9rem;font-weight:600;color:var(--tb-ink)}
.tb-fld input,.tb-fld textarea{font:inherit;font-size:16px;font-weight:400;padding:11px 13px;border:1.5px solid var(--tb-line);
	border-radius:10px;background:#fff;color:var(--tb-ink);width:100%}
.tb-fld input:focus,.tb-fld textarea:focus{outline:none;border-color:var(--tb-accent);box-shadow:0 0 0 3px rgba(28,36,224,.12)}
.tb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.tb-accept{display:flex;gap:9px;align-items:flex-start;font-size:.86rem;color:var(--tb-muted);line-height:1.45}
.tb-accept input{margin-top:1px;flex:0 0 auto;width:22px;height:22px}
.tb-accept span{flex:1;min-width:0}
.tb-accept a{color:var(--tb-accent);text-decoration:underline;white-space:nowrap}
.tb-formerror{color:#b32d2e;font-size:.88rem;margin:2px 0 0;min-height:1px}
.tb-submit{background:var(--tb-accent);color:#fff;border:none;border-radius:11px;
	padding:14px 20px;font-weight:800;font-size:1rem;cursor:pointer;transition:background .18s}
.tb-submit:hover{background:var(--tb-accent-dark)}
.tb-submit:disabled{opacity:.65;cursor:default}
.tb-submit-note{text-align:center;font-size:.82rem;color:var(--tb-muted);margin:-4px 0 0;font-weight:600}

/* success */
.tb-success{text-align:center;padding:8px 0}
.tb-check{width:64px;height:64px;border-radius:50%;background:var(--tb-soft);color:var(--tb-accent);
	font-size:2rem;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.tb-succ-when{font-size:1.05rem;margin:0 0 12px;line-height:1.5}
.tb-succ-meet{margin:0 0 14px}
.tb-callout{display:flex;align-items:center;justify-content:center;gap:10px;
	background:var(--tb-soft);color:var(--tb-accent);font-weight:800;font-size:1.05rem;
	border:1px solid rgba(28,36,224,.18);border-radius:12px;padding:14px 18px;margin:4px 0 14px}
.tb-callout-ic{display:inline-flex;flex:0 0 auto}
.tb-callout-ic svg{width:22px;height:22px}
.tb-meetlink{display:flex;align-items:center;gap:8px;justify-content:center;flex-wrap:wrap;
	background:var(--tb-soft);border-radius:10px;padding:10px 12px;margin:4px 0 6px}
.tb-meet-url{color:var(--tb-accent);font-weight:600;text-decoration:none;word-break:break-all;text-align:left}
.tb-meet-url:hover{text-decoration:underline}
.tb-copy{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
	border:1px solid var(--tb-line);background:#fff;border-radius:8px;color:var(--tb-accent);cursor:pointer;transition:all .15s}
.tb-copy:hover{border-color:var(--tb-accent)}
.tb-copy.is-copied{color:#1a7f37;border-color:#1a7f37}

@media(max-width:480px){
	.tb-widget{padding:20px 16px;border-radius:14px}
	.tb-days{padding-bottom:16px;margin-bottom:26px}
	.tb-times{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}
	.tb-time{padding:13px 0}
}
