/**
 * Datei: frontend.css
 * Pfad: /wp-content/plugins/dokusecur-calculator/assets/css/frontend.css
 * Zweck: Gestaltet das einseitige DokuSecur Anfrageformular im flachen Seitenlayout.
 * Zweck: Sorgt für klare Felder, getrennte Formularblöcke, Preisboxen und mobile Darstellung.
 * Zweck: Bleibt unabhängig vom aktiven WordPress-Theme.
 * Zweck: Nutzt neutrale Klassen mit dsc-Präfix zur Vermeidung von Konflikten.
 * Zweck: Unterstützt barrierearme Fokuszustände und ausreichend große Klickflächen.
 * Zweck: Hält das Formular bewusst leicht ohne externe CSS-Bibliothek.
 */

.dsc-calculator{
	--dsc-primary:#191C3B;
	--dsc-secondary:#FFBF00;
	--dsc-text:#191C3B;
	--dsc-muted:#5f6880;
	--dsc-border:#dfe5ee;
	--dsc-danger:#9c3439;
	--dsc-success:#0f7a3b;
	width:100%;
	max-width:none;
	margin:0;
	padding:0;
	box-sizing:border-box;
	font-family:inherit;
	color:var(--dsc-text);
	background:#fff;
}

.dsc-calculator *,
.dsc-calculator *::before,
.dsc-calculator *::after{
	box-sizing:border-box;
}

.dsc-calculator [hidden]{
	display:none !important;
}

/* Drei Hauptschritte wieder als getrennte Blöcke */
.dsc-form{
	display:grid;
	gap:28px;
	margin:0;
	padding: 0px;
	background:#E4E7EF;
}

.dsc-card{
	margin:0;
	padding:20px;
	background:#fff;
	border:1px solid #dfe7f1;
	border-radius:18px;
	box-shadow:none;
}

.dsc-card + .dsc-card{
	border-top:0;
}

.dsc-card-head{
	display:flex;
	align-items:flex-start;
	gap:12px;
	margin:0 0 18px;
}

.dsc-card-kicker{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:31px;
	height:31px;
	border-radius:999px;
	background:var(--dsc-primary);
	color:#fff;
	font-size:15px;
	font-weight:800;
	line-height:1;
	flex:0 0 auto;
}

.dsc-card h2{
	margin:0 0 4px;
	font-size:21px;
	line-height:1.2;
	letter-spacing:-.01em;
	color:var(--dsc-primary);
}

.dsc-card p,
.dsc-card-head p{
	margin:0;
	font-size:16px;
	line-height:1.45;
	color:var(--dsc-muted);
}

/* Grid */
.dsc-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:13px;
	margin:0 0 13px;
}

.dsc-grid--full{
	grid-template-columns:1fr;
}

.dsc-grid--double{
	grid-template-columns:repeat(2,minmax(0,1fr));
}

.dsc-grid--triple,
.dsc-grid--customer-main,
.dsc-grid--customer-contact{
	grid-template-columns:repeat(3,minmax(0,1fr));
}

.dsc-grid--zip-city{
	grid-template-columns:120px 1fr;
	gap:10px;
	margin-bottom:0;
}

.dsc-grid--customer-main .dsc-field,
.dsc-grid--customer-contact .dsc-field{
	margin-bottom:0;
}

/* Felder */
.dsc-field{
	display:grid;
	gap:6px;
	margin:0 0 13px;
}

.dsc-field span{
	font-size:14px;
	line-height:1.35;
	font-weight:750;
	color:var(--dsc-primary);
}

.dsc-field input,
.dsc-field select,
.dsc-field textarea{
	width:100%;
	min-height:43px;
	border:1px solid var(--dsc-border);
	border-radius:11px;
	padding:9px 12px;
	font:inherit;
	font-size:14px;
	color:#142033;
	background:#fff;
	transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.dsc-field textarea{
	min-height:96px;
	resize:vertical;
}

.dsc-field input:hover,
.dsc-field select:hover,
.dsc-field textarea:hover{
	border-color:#b9c8da;
}

.dsc-field input:focus,
.dsc-field select:focus,
.dsc-field textarea:focus{
	outline:none;
	border-color:var(--dsc-primary);
	box-shadow:0 0 0 3px rgba(25,28,59,.12);
}

.dsc-field input:-webkit-autofill,
.dsc-field select:-webkit-autofill,
.dsc-field textarea:-webkit-autofill{
	-webkit-box-shadow:0 0 0 1000px #fff inset;
	-webkit-text-fill-color:#142033;
}

.dsc-field--document-type{
	margin-top:14px;
}

/* Radios und Checkboxen */
.dsc-radio-group{
	display:grid;
	grid-template-columns:1fr;
	gap:8px;
}

.dsc-radio-group label{
	display:flex;
	align-items:center;
	gap:8px;
	min-height:0;
	padding:8px 10px;
	border:1px solid var(--dsc-border);
	border-radius:10px;
	background:#fff;
	cursor:pointer;
	font-size:14px;
	line-height:1.35;
}

.dsc-radio-group label:hover{
	border-color:var(--dsc-primary);
	background:#fff;
}

.dsc-radio-group input[type="radio"]{
	width:16px;
	height:16px;
	min-height:0;
	margin:0;
	accent-color:var(--dsc-primary);
	flex:0 0 auto;
}

.dsc-radio-group label > span{
	font-size:14px;
	line-height:1.3;
	font-weight:650;
	color:var(--dsc-primary);
}

.dsc-radio-group--billing{
	max-width:none;
}

.dsc-radio-group--billing label:has(input:disabled){
	opacity:.55;
	cursor:not-allowed;
}

.dsc-radio-group--billing [data-dsc-billing-pickup-text]{
	line-height:1.35;
}

.dsc-radio-group--stack{
	display:flex;
	flex-direction:column;
	gap:8px;
}

.dsc-checkbox{
	display:flex;
	align-items:flex-start;
	gap:10px;
	margin-top:9px;
	font-size:14px;
	line-height:1.45;
	color:#253247;
}

.dsc-checkbox input{
	width:18px;
	height:18px;
	margin-top:2px;
	accent-color:var(--dsc-primary);
	flex:0 0 auto;
}

.dsc-checkbox--broker-notice{
	margin:18px 0 8px;
	padding:12px 14px;
	border:1px solid #fde68a;
	border-radius:12px;
	background:#fffaf0;
	color:#3b2f12;
}

.dsc-checkbox--privacy{
	margin:10px 0 18px;
}

/* Linkbutton */
.dsc-link-button{
	appearance:none;
	display:inline-flex;
	align-items:center;
	min-height:34px;
	border:0;
	border-radius:9px;
	background:transparent;
	color:var(--dsc-primary);
	font-size:14px;
	font-weight:700;
	line-height:1.3;
	padding:4px 0;
	margin:0 0 13px;
	cursor:pointer;
}

.dsc-link-button:hover,
.dsc-link-button:focus{
	color:var(--dsc-primary);
	background:transparent;
	text-decoration:underline;
	outline:none;
}

/* Adressen */
.dsc-address-panel{
	border:1px solid #dbe6f3;
	background:#f7faff;
	border-radius:16px;
	padding:16px 18px;
	margin:0 0 18px;
}

.dsc-address-panel h3{
	margin:0 0 14px;
	font-size:16px;
	line-height:1.3;
	font-weight:800;
	color:var(--dsc-primary);
}

.dsc-grid--addresses{
	grid-template-columns:repeat(2,minmax(0,1fr));
	align-items:start;
}

.dsc-address-panel .dsc-grid--addresses{
	margin-bottom:0;
}

.dsc-address-column{
	display:grid;
	gap:14px;
}

.dsc-address-panel .dsc-field{
	margin-bottom:0;
}

.dsc-address-panel > .dsc-field{
	margin-bottom:14px;
}

.dsc-address-list{
	display:grid;
	grid-column:1 / -1;
	width:100%;
	gap:14px;
}

.dsc-address-row{
	display:grid;
	grid-template-columns:minmax(0,1fr) 43px 43px;
	gap:10px;
	align-items:end;
	width:100%;
	margin-bottom:10px;
}

.dsc-address-row--main{
	display:grid;
	grid-template-columns:minmax(0,1fr) 43px 43px;
	align-items:end;
	gap:10px;
	width:100%;
	margin-bottom:0;
}

.dsc-address-row .dsc-field{
	margin-bottom:0;
}

.dsc-address-row--full,
.dsc-address-panel .dsc-address-row--full{
	grid-template-columns:minmax(0,1fr) 43px 43px;
	grid-column:1 / -1;
	width:100%;
}

.dsc-address-panel .dsc-address-row--full .dsc-field{
	width:100%;
	min-width:0;
}

.dsc-address-panel .dsc-address-row--full input{
	width:100%;
	min-width:0;
}

.dsc-remove-address{
	align-self:end;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:43px;
	height:43px;
	border:1px solid #f1c7c9;
	border-radius:10px;
	background:#fff5f5;
	color:var(--dsc-danger);
	padding:0 14px;
	font-weight:800;
	cursor:pointer;
}

.dsc-remove-address:hover,
.dsc-remove-address:focus{
	background:var(--dsc-danger);
	border-color:var(--dsc-danger);
	color:#fff;
	outline:none;
}

.dsc-address-panel .dsc-add-address-button{
	align-self:end;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:43px;
	height:43px;
	min-width:43px;
	min-height:43px;
	border:1px solid #bbf7d0;
	border-radius:10px;
	background:#dcfce7;
	color:#166534;
	padding:0;
	font-size:24px;
	font-weight:900;
	line-height:1;
	text-decoration:none;
	cursor:pointer;
	transition:background .15s ease, border-color .15s ease, color .15s ease;
}

.dsc-address-panel .dsc-add-address-button:hover,
.dsc-address-panel .dsc-add-address-button:focus{
	background:#bbf7d0;
	border-color:#86efac;
	color:#14532d;
	text-decoration:none;
}

.dsc-address-button-placeholder{
	align-self:end;
	display:block;
	width:43px;
	height:43px;
	min-width:43px;
	min-height:43px;
	pointer-events:none;
}

.dsc-grid--addresses.dsc-addresses--no-pickup{
	grid-template-columns:1fr;
}

.dsc-grid--addresses.dsc-addresses--no-pickup > .dsc-address-column--delivery{
	order:1;
	width:100%;
}

.dsc-grid--addresses.dsc-addresses--no-pickup > .dsc-address-column--pickup{
	order:2;
	width:100%;
}

.dsc-grid--addresses.dsc-addresses--no-pickup [data-dsc-address-list]{
	margin-top:0;
}

.dsc-radio-group[data-dsc-delivery-wish] label > span{
	font-weight:400;
}

/* Termine, Zusatzleistungen und Rechnung */
.dsc-service-box,
.dsc-upload-notice,
.dsc-billing-extra{
	border:1px solid #dbe6f3;
	border-radius:16px;
	background:#fff;
	padding:16px 18px;
	box-shadow:none;
}

.dsc-service-box{
	margin-top:0;
}

.dsc-appointment-box{
	margin-top:0;
	margin-bottom:18px;
}

.dsc-service-box h3{
	margin:0 0 10px;
	font-size:16px;
	line-height:1.3;
	font-weight:800;
	color:var(--dsc-primary);
}

.dsc-service-box p{
	margin:0 0 10px;
	font-size:14px;
	line-height:1.45;
}

.dsc-upload-notice{
	font-size:14px;
	line-height:1.45;
}

.dsc-billing-extra{
	margin-bottom:16px;
}

/* Preis */
.dsc-price-box{
	border:1px solid #dbe6f3;
	border-radius:16px;
	background:#fff;
	padding:16px 18px;
}

.dsc-price-empty{
	color:#607086;
}

.dsc-price-lines{
	display:grid;
	gap:10px;
}

.dsc-price-line{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:16px;
	border-bottom:1px solid #e6edf5;
	padding:0 0 10px;
	font-size:15px;
}

.dsc-price-line:last-child{
	border-bottom:0;
	padding-bottom:0;
}

.dsc-price-distance{
	display:block;
	margin-top:3px;
	font-size:12px;
	font-weight:600;
	color:#64748b;
}

.dsc-price-line strong,
.dsc-price-line > span:last-child{
	font-weight:800;
	white-space:nowrap;
}

.dsc-admin-calc-detail{
	display:block;
	max-width:640px;
	margin-top:4px;
	font-size:12px;
	font-weight:500;
	line-height:1.35;
	color:#64748b;
}

.dsc-price-line--total{
	align-items:center;
	font-size:19px;
	font-weight:800;
	color:var(--dsc-success);
	padding-top:6px;
}

.dsc-price-line--total > span:first-child,
.dsc-price-line--total > span:last-child{
	color:#08783b;
}

.dsc-total-breakdown{
	display:flex;
	align-items:flex-end;
	justify-content:flex-end;
	gap:18px;
	text-align:right;
}

.dsc-total-part{
	display:flex;
	flex-direction:column;
	gap:2px;
	min-width:78px;
}

.dsc-total-part small{
	font-size:11px;
	line-height:1.2;
	font-weight:700;
	color:#64748b;
}

.dsc-total-part strong{
	font-size:17px;
	line-height:1.2;
	font-weight:800;
	color:var(--dsc-primary);
	white-space:nowrap;
}

.dsc-total-part--gross strong{
	font-size:21px;
	color:#08783b;
}

.dsc-price-note{
	margin-top:12px;
	padding:10px 12px;
	border:1px solid #fde68a;
	border-radius:12px;
	background:#fff;
	color:#92400e;
	font-size:13px;
	line-height:1.45;
}

.dsc-price-note--admin{
	border-color:#d63638;
	background:#fff;
	color:#8a2424;
}

/* Buttons */
.dsc-submit{
	appearance:none;
	width:auto;
	min-height:46px;
	border:0;
	border-radius:25px;
	background:var(--dsc-secondary);
	color:var(--dsc-primary);
	padding:12px 22px;
	font-weight:800;
	cursor:pointer;
	transition:background .15s ease, color .15s ease, box-shadow .15s ease;
}

.dsc-submit:hover,
.dsc-submit:focus{
	background:var(--dsc-primary);
	color:#fff;
	outline:none;
}

.dsc-submit:focus{
	box-shadow:0 0 0 3px rgba(255,191,0,.35);
}

/* Hinweise */
.dsc-notice{
	border-radius:12px;
	padding:14px 16px;
	margin-bottom:18px;
	font-weight:650;
}

.dsc-notice--success{
	background:#ecfdf3;
	border:1px solid #bbf7d0;
	color:#166534;
}

.dsc-notice--error{
	background:#fff5f5;
	border:1px solid #fecaca;
	color:#991b1b;
}

/* Kalender */
.dsc-datepicker{
	position:absolute;
	z-index:999999;
	width:238px;
	max-width:calc(100vw - 24px);
	border:1px solid var(--dsc-border);
	border-radius:11px;
	background:#fff;
	box-shadow:0 18px 42px rgba(25,28,59,.18);
	padding:8px;
	box-sizing:border-box;
	color:var(--dsc-primary);
}

.dsc-datepicker-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:6px;
	margin-bottom:6px;
}

.dsc-datepicker-head strong{
	font-size:12px;
	font-weight:800;
	text-transform:capitalize;
}

.dsc-datepicker-head button,
.dsc-datepicker-grid button{
	appearance:none;
	border:0;
	border-radius:7px;
	background:#f3f5f9;
	color:var(--dsc-primary);
	cursor:pointer;
	font:inherit;
}

.dsc-datepicker-head button{
	width:24px;
	height:24px;
	min-width:0;
	min-height:0;
	padding:0;
	font-size:16px;
	line-height:1;
}

.dsc-datepicker-head button:hover,
.dsc-datepicker-head button:focus,
.dsc-datepicker-grid button:hover,
.dsc-datepicker-grid button:focus{
	background:var(--dsc-secondary);
	color:var(--dsc-primary);
	outline:none;
}

.dsc-datepicker-grid{
	display:grid;
	grid-template-columns:repeat(7,1fr);
	gap:3px;
}

.dsc-datepicker-weekdays{
	margin-bottom:3px;
	font-size:9px;
	font-weight:800;
	color:#6b7280;
	text-align:center;
}

.dsc-datepicker-grid button,
.dsc-datepicker-empty{
	display:flex;
	align-items:center;
	justify-content:center;
	width:auto;
	min-width:0;
	height:24px;
	min-height:24px;
	padding:0;
	font-size:12px;
	line-height:1;
}

.dsc-datepicker-empty{
	background:transparent;
}

.dsc-datepicker button.dsc-datepicker-disabled,
.dsc-datepicker button:disabled{
	opacity:.35;
	cursor:not-allowed;
	background:#eef2f7;
	color:#94a3b8;
}

/* Responsive */
@media (max-width:900px){
	.dsc-grid,
	.dsc-grid--double,
	.dsc-grid--triple,
	.dsc-grid--customer-main,
	.dsc-grid--customer-contact,
	.dsc-grid--addresses{
		grid-template-columns:1fr;
	}
}

@media (max-width:720px){
	.dsc-calculator{
		width:100%;
		max-width:none;
		margin:0;
		padding:0;
	}

	.dsc-form{
		gap:24px;
	}

	.dsc-card{
		margin:0;
		padding:20px;
		border:0px;
		border-radius:18px;
		box-shadow:none;
		background:#fff;
	}

	.dsc-card-head{
		gap:12px;
	}

	.dsc-card-kicker{
		width:32px;
		height:32px;
		border-radius:999px;
	}

	.dsc-card h2{
		font-size:21px;
	}

	.dsc-field input,
	.dsc-field select,
	.dsc-field textarea{
		min-height:48px;
		font-size:16px;
		border-radius:11px;
	}

	.dsc-grid--zip-city{
		grid-template-columns:1fr 1fr;
	}

	.dsc-address-panel{
		padding:14px;
	}

	.dsc-address-panel .dsc-grid--addresses{
		display:grid;
		grid-template-columns:1fr;
		gap:14px;
	}

	.dsc-address-panel .dsc-address-column{
		display:block;
		width:100%;
	}

	.dsc-address-panel [data-dsc-pickup-wrap],
	.dsc-address-panel .dsc-field--address{
		width:100%;
	}

	.dsc-address-panel .dsc-address-list{
		grid-column:1 / -1;
		width:100%;
		display:grid;
		gap:12px;
		order:3;
	}

	.dsc-address-panel .dsc-add-address-button{
		width:44px;
		height:44px;
		min-width:44px;
		min-height:44px;
		max-width:44px;
		max-height:44px;
		margin-top:0;
		order:0;
		font-size:24px;
	}

	.dsc-address-panel .dsc-address-row--main{
		display:grid;
		grid-template-columns:minmax(0,1fr) 44px 44px;
		align-items:end;
		gap:8px;
		width:100%;
	}

	.dsc-address-panel .dsc-address-row--full{
		display:grid;
		grid-template-columns:minmax(0,1fr) 44px 44px;
		align-items:end;
		gap:8px;
		width:100%;
		grid-column:1 / -1;
	}

	.dsc-address-panel .dsc-address-row--full .dsc-field{
		width:100%;
		min-width:0;
		margin:0;
	}

	.dsc-address-panel .dsc-address-row--full input{
		width:100%;
		min-width:0;
	}

	.dsc-address-panel .dsc-address-button-placeholder{
		width:44px;
		height:44px;
		min-width:44px;
		min-height:44px;
		max-width:44px;
		max-height:44px;
	}

	.dsc-address-panel .dsc-remove-address{
		width:44px;
		height:44px;
		min-width:44px;
		min-height:44px;
		max-width:44px;
		max-height:44px;
		padding:0;
		margin:0;
		border-radius:10px;
		font-size:22px;
		line-height:1;
		display:inline-flex;
		align-items:center;
		justify-content:center;
	}

	.dsc-service-box,
	.dsc-upload-notice,
	.dsc-billing-extra,
	.dsc-price-box{
		padding:14px;
		border-radius:14px;
	}

	.dsc-price-line{
		gap:10px;
		align-items:flex-start;
	}

	.dsc-price-line--total{
		font-size:19px;
		align-items:flex-start;
	}

	.dsc-total-breakdown{
		width:100%;
		justify-content:space-between;
		gap:10px;
		text-align:left;
	}

	.dsc-total-part{
		min-width:0;
	}

	.dsc-admin-calc-detail{
		font-size:11px;
	}

	.dsc-submit{
		width:100%;
		border-radius:12px;
	}
}

/* Quick Price CTA */
.dsc-quick-price{
	--dsc-quick-primary:#191C3B;
	--dsc-quick-secondary:#FFBF00;
	--dsc-quick-border:#dfe5ee;
	--dsc-quick-muted:#64748b;
	width:100%;
	font-family:inherit;
	color:var(--dsc-quick-primary);
}

.dsc-quick-price *,
.dsc-quick-price *::before,
.dsc-quick-price *::after{
	box-sizing:border-box;
}

.dsc-quick-price__inner{
	display:grid;
	grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);
	gap:14px;
	align-items:end;
	width:100%;
	padding:16px;
	border:1px solid rgba(223,229,238,.95);
	border-radius:18px;
	background:rgba(255,255,255,.94);
	box-shadow:0 18px 45px rgba(15,23,42,.12);
	backdrop-filter:blur(8px);
}

.dsc-quick-price__form{
	display:grid;
	grid-template-columns:repeat(2,minmax(120px,1fr));
	gap:10px;
	align-items:end;
	min-width:0;
}

.dsc-quick-price__intro{
	grid-column:1 / -1;
	width:100%;
	min-width:0;
	margin:0 0 2px;
	font-size:16px;
	line-height:1.35;
	font-weight:700;
	color:var(--dsc-quick-primary);
	white-space:normal;
}

.dsc-quick-price__field span{
	font-size:12px;
	line-height:1.25;
	font-weight:800;
	color:var(--dsc-quick-primary);
}

.dsc-quick-price__field input{
	width:100%;
	min-height:46px;
	border:1px solid var(--dsc-quick-border);
	border-radius:12px;
	background:#fff;
	padding:10px 12px;
	font:inherit;
	font-size:16px;
	color:#142033;
}

.dsc-quick-price__field input:focus{
	outline:none;
	border-color:var(--dsc-quick-primary);
	box-shadow:0 0 0 3px rgba(25,28,59,.12);
}

.dsc-quick-price__calc,
.dsc-quick-price__booking{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:46px;
	border-radius:12px;
	padding:11px 18px;
	font:inherit;
	font-size:14px;
	font-weight:900;
	line-height:1.2;
	text-decoration:none;
	white-space:nowrap;
	cursor:pointer;
}

.dsc-quick-price__calc{
	border:1px solid #d8dee8;
	background:#fff;
	color:var(--dsc-quick-primary);
}

.dsc-quick-price__calc:hover,
.dsc-quick-price__calc:focus{
	background:#f1f5f9;
	border-color:#cbd5e1;
	color:var(--dsc-quick-primary);
	outline:none;
}

.dsc-quick-price__calc:disabled{
	opacity:.65;
	cursor:wait;
}

.dsc-quick-price__result{
	display:grid;
	grid-template-columns:minmax(0,1fr) auto;
	gap:10px;
	align-items:end;
}

.dsc-quick-price__pricewrap{
	display:grid;
	gap:6px;
}

.dsc-quick-price__label{
	font-size:12px;
	line-height:1.25;
	font-weight:800;
	color:var(--dsc-quick-primary);
}

.dsc-quick-price__pricebox{
	display:grid;
	align-items:center;
	min-height:46px;
	padding:10px 12px;
	border:1px solid #dbe6f3;
	border-radius:12px;
	background:#fff;
}

.dsc-quick-price__pricebox strong{
	font-size:20px;
	line-height:1.1;
	font-weight:900;
	color:#08783b;
	white-space:nowrap;
}

.dsc-quick-price__loading{
	display:inline-flex;
	align-items:center;
	color:#08783b;
	font-size:20px;
	font-weight:900;
	line-height:1.1;
	animation:dscQuickPricePulse .65s ease-in-out infinite;
}

@keyframes dscQuickPricePulse{
	0%{
		opacity:.35;
		transform:translateY(0);
	}
	50%{
		opacity:1;
		transform:translateY(-1px);
	}
	100%{
		opacity:.35;
		transform:translateY(0);
	}
}

.dsc-quick-price__booking{
	border:1px solid var(--dsc-quick-secondary);
	background:var(--dsc-quick-secondary);
	color:var(--dsc-quick-primary);
}

.dsc-quick-price__booking:hover,
.dsc-quick-price__booking:focus{
	background:var(--dsc-quick-primary);
	border-color:var(--dsc-quick-primary);
	color:#fff;
	outline:none;
	text-decoration:none;
}

.dsc-quick-price__notice{
	grid-column:1 / -1;
	margin-top:0;
	font-size:12px;
	line-height:1.35;
	color:var(--dsc-quick-muted);
}

.dsc-quick-price__notice.is-error{
	color:#991b1b;
	font-weight:800;
}

@media (max-width:980px){
	.dsc-quick-price__inner{
		grid-template-columns:1fr;
	}

	.dsc-quick-price__result{
		grid-template-columns:minmax(0,1fr) auto;
	}
}

@media (max-width:640px){
	.dsc-quick-price__inner{
		padding:14px;
		border-radius:16px;
	}

	.dsc-quick-price__form{
		grid-template-columns:1fr;
	}

	.dsc-quick-price__calc{
		width:100%;
	}

	.dsc-quick-price__result{
		grid-template-columns:1fr;
	}

	.dsc-quick-price__booking{
		width:100%;
	}
}

/* FAQ Shortcode */
.dsc-faq{
	--dsc-faq-primary:#191C3B;
	--dsc-faq-secondary:#FFBF00;
	--dsc-faq-bg:#f6f8fb;
	--dsc-faq-card:#ffffff;
	--dsc-faq-border:#dfe5ee;
	--dsc-faq-muted:#5f6880;
	width:100%;
	margin:0;
	color:var(--dsc-faq-primary);
	font-family:inherit;
	background:#fff;
}

.dsc-faq *,
.dsc-faq *::before,
.dsc-faq *::after{
	box-sizing:border-box;
}

.dsc-faq [hidden]{
	display:none !important;
}

.dsc-faq-hero{
	background:linear-gradient(135deg,#fff 0%,#f7faff 58%,#eef3f8 100%);
	border-bottom:1px solid #edf1f6;
	overflow:hidden;
	position:relative;
}

.dsc-faq-hero-inner{
	position:relative;
	display:grid;
	grid-template-columns:minmax(0,1fr) 280px;
	gap:40px;
	width:min(1320px, calc(100% - 48px));
	margin:0 auto;
	padding:58px 0 44px;
}

.dsc-faq-hero-text{
	position:relative;
	z-index:2;
	max-width:760px;
}

.dsc-faq-hero h1{
	margin:0 0 10px;
	font-size:56px;
	line-height:1.02;
	letter-spacing:-.04em;
	color:var(--dsc-faq-primary);
}

.dsc-faq-hero p{
	max-width:690px;
	margin:0 0 24px;
	font-size:18px;
	line-height:1.45;
	color:#39445a;
}

.dsc-faq-hero-mark{
	display:flex;
	align-items:center;
	justify-content:center;
	width:230px;
	height:230px;
	border:14px solid rgba(25,28,59,.035);
	border-radius:50%;
	color:rgba(25,28,59,.055);
	font-size:132px;
	font-weight:900;
	line-height:1;
	align-self:center;
	justify-self:end;
}

.dsc-faq-search{
	position:relative;
	display:block;
	width:min(720px,100%);
	margin:0 0 20px;
}

.dsc-faq-search::before{
	content:"⌕";
	position:absolute;
	left:18px;
	top:50%;
	transform:translateY(-50%);
	color:#7b8498;
	font-size:22px;
	line-height:1;
}

.dsc-faq-search input{
	width:100%;
	min-height:56px;
	border:1px solid var(--dsc-faq-border);
	border-radius:11px;
	background:#fff;
	padding:14px 18px 14px 52px;
	font:inherit;
	font-size:17px;
	color:var(--dsc-faq-primary);
	box-shadow:0 10px 30px rgba(25,28,59,.04);
}

.dsc-faq-search input:focus{
	outline:none;
	border-color:var(--dsc-faq-primary);
	box-shadow:0 0 0 3px rgba(25,28,59,.12);
}

.dsc-faq-tabs{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
}

.dsc-faq-tab{
	appearance:none;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:40px;
	border:1px solid var(--dsc-faq-border);
	border-radius:999px;
	background:#fff;
	color:var(--dsc-faq-primary);
	padding:8px 26px;
	font:inherit;
	font-size:15px;
	font-weight:800;
	cursor:pointer;
}

.dsc-faq-tab.is-active{
	background:var(--dsc-faq-primary);
	border-color:var(--dsc-faq-primary);
	color:#fff;
}

.dsc-faq-main{
	display:grid;
	grid-template-columns:310px minmax(0,1fr);
	gap:42px;
	width:min(1320px, calc(100% - 48px));
	margin:0 auto;
	padding:28px 0 52px;
}

.dsc-faq-sidebar{
	position:relative;
}

.dsc-faq-sidebar-card{
	position:sticky;
	top:92px;
	overflow:hidden;
	border:1px solid var(--dsc-faq-border);
	border-radius:14px;
	background:#fff;
	box-shadow:0 12px 34px rgba(25,28,59,.04);
}

.dsc-faq-sidebar-card h2{
	margin:0;
	padding:20px 18px 14px;
	font-size:22px;
	line-height:1.2;
	color:var(--dsc-faq-primary);
}

.dsc-faq-category-list{
	display:grid;
}

.dsc-faq-category{
	appearance:none;
	display:flex;
	align-items:center;
	gap:13px;
	width:100%;
	min-height:56px;
	border:0;
	border-top:1px solid #edf1f6;
	background:#fff;
	color:var(--dsc-faq-primary);
	padding:12px 18px;
	font:inherit;
	font-size:15px;
	font-weight:800;
	text-align:left;
	cursor:pointer;
	position:relative;
}

.dsc-faq-category::before{
	content:"";
	position:absolute;
	left:0;
	top:0;
	bottom:0;
	width:3px;
	background:transparent;
}

.dsc-faq-category:hover,
.dsc-faq-category:focus,
.dsc-faq-category.is-active{
	background:#fbfcff;
	outline:none;
}

.dsc-faq-category.is-active::before{
	background:var(--dsc-faq-secondary);
}

.dsc-faq-category-icon{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:24px;
	height:24px;
	border:1px solid #cbd5e1;
	border-radius:7px;
	color:var(--dsc-faq-primary);
	font-size:14px;
	flex:0 0 auto;
}

.dsc-faq-tip{
	display:grid;
	grid-template-columns:42px minmax(0,1fr);
	gap:12px;
	margin:18px;
	padding:15px;
	border:1px solid #f3d37b;
	border-radius:12px;
	background:#fffaf0;
	color:var(--dsc-faq-primary);
}

.dsc-faq-tip > span{
	display:flex;
	align-items:center;
	justify-content:center;
	width:36px;
	height:36px;
	border:2px solid var(--dsc-faq-secondary);
	border-radius:50%;
	color:#d19a00;
	font-weight:900;
}

.dsc-faq-tip p{
	margin:0;
	font-size:14px;
	line-height:1.4;
	color:#30384d;
}

.dsc-faq-content{
	min-width:0;
}

.dsc-faq-panel{
	margin:0 0 18px;
}

.dsc-faq-panel h2{
	margin:0 0 10px;
	font-size:24px;
	line-height:1.2;
	color:var(--dsc-faq-primary);
}

.dsc-faq-accordion{
	display:grid;
	gap:0;
	border:1px solid var(--dsc-faq-border);
	border-radius:12px;
	background:#fff;
	overflow:hidden;
	box-shadow:0 10px 28px rgba(25,28,59,.035);
}

.dsc-faq-item + .dsc-faq-item{
	border-top:1px solid #edf1f6;
}

.dsc-faq-question{
	appearance:none;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:18px;
	width:100%;
	min-height:48px;
	border:0;
	background:#fff;
	color:var(--dsc-faq-primary);
	padding:13px 18px;
	font:inherit;
	font-size:16px;
	font-weight:900;
	text-align:left;
	cursor:pointer;
}

.dsc-faq-question:hover,
.dsc-faq-question:focus{
	background:#fbfcff;
	outline:none;
}

.dsc-faq-chevron{
	position:relative;
	display:inline-flex;
	width:16px;
	height:16px;
	flex:0 0 auto;
}

.dsc-faq-chevron::before{
	content:"";
	position:absolute;
	left:4px;
	top:5px;
	width:8px;
	height:8px;
	border-right:2px solid var(--dsc-faq-primary);
	border-bottom:2px solid var(--dsc-faq-primary);
	transform:rotate(45deg);
	transition:transform .15s ease;
}

.dsc-faq-question[aria-expanded="true"] .dsc-faq-chevron::before{
	top:7px;
	transform:rotate(225deg);
}

.dsc-faq-answer{
	padding:0 18px 16px;
	color:#344055;
	font-size:15px;
	line-height:1.5;
}

.dsc-faq-answer p{
	margin:0 0 8px;
}

.dsc-faq-answer p:last-child{
	margin-bottom:0;
}

.dsc-faq-no-results{
	border:1px solid var(--dsc-faq-border);
	border-radius:12px;
	background:#fff;
	padding:18px;
	color:var(--dsc-faq-muted);
	font-size:15px;
}

.dsc-faq-cta{
	display:grid;
	grid-template-columns:auto minmax(0,1fr) auto;
	gap:18px;
	align-items:center;
	margin-top:24px;
	padding:22px;
	border:1px solid #f1d692;
	border-radius:14px;
	background:linear-gradient(135deg,#fffaf0 0%,#fff 100%);
	box-shadow:0 10px 28px rgba(25,28,59,.035);
}

.dsc-faq-cta-icon{
	display:flex;
	align-items:center;
	justify-content:center;
	width:58px;
	height:58px;
	border-radius:50%;
	background:#fff2c6;
	color:var(--dsc-faq-primary);
	font-size:26px;
	font-weight:900;
}

.dsc-faq-cta h2{
	margin:0 0 4px;
	font-size:25px;
	line-height:1.2;
	color:var(--dsc-faq-primary);
}

.dsc-faq-cta p{
	margin:0;
	color:#4d5870;
	font-size:16px;
	line-height:1.4;
}

.dsc-faq-cta-actions{
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	justify-content:flex-end;
}

.dsc-faq-button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:48px;
	border-radius:9px;
	padding:12px 24px;
	font-size:15px;
	font-weight:900;
	text-decoration:none;
	white-space:nowrap;
}

.dsc-faq-button--light{
	border:1px solid var(--dsc-faq-border);
	background:#fff;
	color:var(--dsc-faq-primary);
}

.dsc-faq-button--dark{
	border:1px solid var(--dsc-faq-primary);
	background:var(--dsc-faq-primary);
	color:#fff;
}

.dsc-quick-price__field input,
.dsc-quick-price__field input:hover,
.dsc-quick-price__field input:focus,
.dsc-quick-price__field input:valid,
.dsc-quick-price__field input:invalid,
.dsc-quick-price__field input:-webkit-autofill{
	background:#fff !important;
}

.dsc-quick-price__field input:-webkit-autofill{
	-webkit-box-shadow:0 0 0 1000px #fff inset !important;
	-webkit-text-fill-color:#142033 !important;
}

.dsc-quick-price__booking.is-disabled,
.dsc-quick-price__booking.is-disabled:hover,
.dsc-quick-price__booking.is-disabled:focus{
	opacity:.45;
	cursor:not-allowed;
	pointer-events:none;
	background:#e5e7eb;
	border-color:#e5e7eb;
	color:#64748b;
}

.dsc-customer-fields-box{
	margin-top:16px;
	padding:16px 18px;
	border:1px solid #dbe6f3;
	border-radius:16px;
	background:#F8FBFF;
}

.dsc-customer-fields-box .dsc-grid:last-child,
.dsc-customer-fields-box .dsc-field:last-child{
	margin-bottom:0;
}

.dsc-price-loading{
	display:grid;
	gap:14px;
	padding:2px 0;
}

.dsc-price-loading__head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
}

.dsc-price-loading__title{
	font-size:15px;
	line-height:1.35;
	font-weight:800;
	color:var(--dsc-primary);
}

.dsc-price-loading__dots{
	display:inline-flex;
	align-items:center;
	gap:5px;
}

.dsc-price-loading__dots i{
	display:block;
	width:8px;
	height:8px;
	border-radius:999px;
	background:#b8c5d6;
	animation:dsc-price-dot 1.2s infinite ease-in-out;
}

.dsc-price-loading__dots i:nth-child(2){
	animation-delay:.15s;
}

.dsc-price-loading__dots i:nth-child(3){
	animation-delay:.3s;
}

.dsc-price-loading__bar{
	position:relative;
	width:100%;
	height:10px;
	border-radius:999px;
	background:#e8eef6;
	overflow:hidden;
}

.dsc-price-loading__bar span{
	position:absolute;
	top:0;
	left:0;
	height:100%;
	width:42%;
	border-radius:999px;
	background:linear-gradient(90deg,#191C3B 0%, #FFBF00 50%, #191C3B 100%);
	animation:dsc-price-bar 1.35s infinite ease-in-out;
}

.dsc-price-loading__meta{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:8px;
}

.dsc-price-loading__meta span{
	display:block;
	height:38px;
	border-radius:12px;
	background:linear-gradient(90deg,#edf2f8 0%, #f8fbff 50%, #edf2f8 100%);
	background-size:200% 100%;
	animation:dsc-price-shimmer 1.35s linear infinite;
}

@keyframes dsc-price-bar{
	0%{
		transform:translateX(-110%);
	}
	100%{
		transform:translateX(250%);
	}
}

@keyframes dsc-price-dot{
	0%, 80%, 100%{
		opacity:.35;
		transform:scale(.9);
	}
	40%{
		opacity:1;
		transform:scale(1);
	}
}

@keyframes dsc-price-shimmer{
	0%{
		background-position:200% 0;
	}
	100%{
		background-position:-200% 0;
	}
}

@media (max-width:980px){
	.dsc-faq-hero-inner{
		grid-template-columns:1fr;
	}

	.dsc-faq-hero-mark{
		display:none;
	}

	.dsc-faq-main{
		grid-template-columns:1fr;
	}

	.dsc-faq-sidebar-card{
		position:static;
	}

	.dsc-faq-category-list{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}

	.dsc-faq-cta{
		grid-template-columns:1fr;
	}

	.dsc-faq-cta-actions{
		justify-content:flex-start;
	}
}

@media (max-width:640px){
	.dsc-faq-hero-inner,
	.dsc-faq-main{
		width:calc(100% - 28px);
	}

	.dsc-faq-hero-inner{
		padding:38px 0 32px;
	}

	.dsc-faq-hero h1{
		font-size:38px;
	}

	.dsc-faq-hero p{
		font-size:16px;
	}

	.dsc-faq-search input{
		min-height:50px;
		font-size:16px;
	}

	.dsc-faq-tabs{
		display:grid;
		grid-template-columns:1fr;
	}

	.dsc-faq-category-list{
		grid-template-columns:1fr;
	}

	.dsc-faq-question{
		font-size:15px;
		padding:13px 14px;
	}

	.dsc-faq-answer{
		padding:0 14px 15px;
		font-size:14px;
	}

	.dsc-faq-button{
		width:100%;
	}
}

.dsc-info-box,
.dsc-price-disclaimer{
	margin:0 0 13px;
	padding:11px 13px;
	border:1px solid #dbe6f3;
	border-radius:12px;
	background:#f8fafc;
	font-size:13px;
	line-height:1.45;
	color:#334155;
}

.dsc-info-box--warning{
	border-color:#fde68a;
	background:#fffbeb;
	color:#92400e;
}

.dsc-price-disclaimer{
	margin:12px 0 0;
}

.dsc-field-help{
	display:block;
	margin-top:2px;
	font-size:12px;
	line-height:1.35;
	font-weight:500;
	color:#64748b;
}

/* Zweispaltiges Anfrageformular */
.dsc-form--split{
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(320px,32%);
	gap:22px;
	align-items:start;
	background:#fff;
	padding:0;
}

.dsc-form--split .dsc-form-main{
	display:grid;
	gap:22px;
	min-width:0;
}

.dsc-form--split .dsc-form-sidebar{
	display:grid;
	gap:18px;
	align-self:start;
	position:sticky;
	top:24px;
	min-width:0;
}

.dsc-form--split .dsc-card{
	min-width:0;
	border:1px solid #dfe7f1;
	border-radius:18px;
	background:#fff;
	box-shadow:none;
}

.dsc-form--split .dsc-card + .dsc-card{
	border-top:1px solid #dfe7f1;
}

.dsc-form--split .dsc-card-head{
	margin-bottom:18px;
}

.dsc-form--split .dsc-section-block{
	margin:0 0 18px;
}

.dsc-form--split .dsc-section-block:last-child{
	margin-bottom:0;
}

.dsc-form--split .dsc-section-block--clean{
	padding:0;
	border:0;
	background:transparent;
}

.dsc-form--split .dsc-address-panel,
.dsc-form--split .dsc-appointment-box,
.dsc-form--split .dsc-service-box{
	border:1px solid #dbe6f3;
	border-radius:16px;
	background:#f8fbff;
	padding:16px 18px;
	box-shadow:none;
}

.dsc-form--split .dsc-appointment-box{
	margin-top:0;
}

.dsc-form--split .dsc-grid{
	gap:13px;
}

.dsc-form--split .dsc-grid--full{
	grid-template-columns:1fr;
}

.dsc-form--split .dsc-grid--double,
.dsc-form--split .dsc-grid--date-time{
	grid-template-columns:repeat(2,minmax(0,1fr));
}

.dsc-form--split .dsc-field{
	min-width:0;
}

.dsc-form--split .dsc-field input,
.dsc-form--split .dsc-field select,
.dsc-form--split .dsc-field textarea{
	min-width:0;
}

.dsc-form--split .dsc-field select{
	appearance:auto;
}

.dsc-form--split .dsc-grid--addresses{
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:13px;
}

.dsc-form--split .dsc-address-row--main{
	grid-template-columns:minmax(0,1fr) 43px 43px;
}

.dsc-form--split .dsc-address-list{
	grid-column:1 / -1;
	margin-top:13px;
}

.dsc-form--split .dsc-option-list{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:10px;
	margin-top:12px;
}

.dsc-form--split .dsc-option-card{
	display:grid;
	grid-template-columns:18px minmax(0,1fr);
	gap:9px;
	align-items:start;
	width:100%;
	min-width:0;
	padding:10px 12px;
	border:1px solid #dfe5ee;
	border-radius:12px;
	background:#fff;
	font-size:13px;
	line-height:1.35;
	color:#253247;
	cursor:pointer;
}

.dsc-form--split .dsc-option-card input{
	width:16px;
	height:16px;
	margin:1px 0 0;
	accent-color:var(--dsc-primary);
}

.dsc-form--split .dsc-option-card span{
	min-width:0;
	overflow-wrap:anywhere;
}

.dsc-form--split .dsc-card--price{
	padding:0;
	overflow:hidden;
}

.dsc-form--split .dsc-card--price .dsc-card-head{
	margin:0;
	padding:18px 20px;
	background:var(--dsc-primary);
	color:#fff;
}

.dsc-form--split .dsc-card--price .dsc-card-kicker{
	background:#fff;
	color:var(--dsc-primary);
}

.dsc-form--split .dsc-card--price h2,
.dsc-form--split .dsc-card--price p{
	color:#fff;
}

.dsc-form--split .dsc-card--price .dsc-price-box{
	margin:16px;
}

.dsc-form--split .dsc-card--price .dsc-price-disclaimer{
	margin:0 16px 16px;
}

.dsc-form--split .dsc-card--submit{
	padding:16px;
}

.dsc-form--split .dsc-legal-checks{
	display:grid;
	gap:10px;
	margin:0 0 14px;
}

.dsc-form--split .dsc-legal-checks .dsc-checkbox{
	display:grid;
	grid-template-columns:18px minmax(0,1fr);
	gap:9px;
	align-items:start;
	margin:0;
	padding:10px 12px;
	border:1px solid #dfe5ee;
	border-radius:12px;
	background:#fff;
	font-size:13px;
	line-height:1.4;
}

.dsc-form--split .dsc-legal-checks .dsc-checkbox--broker-notice{
	border-color:#fde68a;
	background:#fffaf0;
}

.dsc-form--split .dsc-legal-checks .dsc-checkbox input{
	width:16px;
	height:16px;
	margin:2px 0 0;
}

.dsc-form--split .dsc-legal-checks .dsc-checkbox span{
	min-width:0;
	overflow-wrap:anywhere;
}

.dsc-form--split .dsc-submit{
	width:100%;	
	min-height:48px;
	font-size:15px;
	font-weight:900;
}

@media (max-width:1180px){
	.dsc-form--split{
		grid-template-columns:minmax(0,1fr) minmax(300px,35%);
		gap:18px;
	}

	.dsc-form--split .dsc-grid--addresses,
	.dsc-form--split .dsc-option-list{
		grid-template-columns:1fr;
	}
}

@media (max-width:980px){
	.dsc-form--split{
		grid-template-columns:1fr;
	}

	.dsc-form--split .dsc-form-sidebar{
		position:static;
	}

	.dsc-form--split .dsc-grid--double,
	.dsc-form--split .dsc-grid--date-time{
		grid-template-columns:1fr;
	}
}

@media (max-width:720px){
	.dsc-form--split{
		gap:18px;
	}

	.dsc-form--split .dsc-card,
	.dsc-form--split .dsc-card--submit{
		padding:16px;
		border-radius:16px;
	}

	.dsc-form--split .dsc-card--price{
		padding:0;
	}

	.dsc-form--split .dsc-address-panel,
	.dsc-form--split .dsc-appointment-box,
	.dsc-form--split .dsc-service-box{
		padding:14px;
	}
}

/* Korrekturen nach Layout-Prüfung */
.dsc-form--split .dsc-form-sidebar{
	position:sticky;
	top:96px;
	align-self:start;
	max-height:none;
	overflow:visible;
}

.dsc-form--split .dsc-field input,
.dsc-form--split .dsc-field select{
	height:48px;
	min-height:48px;
	max-height:48px;
	line-height:1.35;
}

.dsc-form--split .dsc-field textarea{
	min-height:120px;
	line-height:1.45;
}

.dsc-form--split .dsc-grid--double > .dsc-field{
	align-self:start;
}

.dsc-form--split .dsc-price-lines--placeholder .dsc-price-line--total{
	border-bottom:0;
	padding:0;
}

.dsc-form--split .dsc-price-lines--placeholder .dsc-price-line--total span:last-child{
	font-size:28px;
	line-height:1.1;
}

.dsc-form--split .dsc-info-box--warning{
    border-color: #fde68a;
    background: #fffaf0;
	color:#334155;
}

.dsc-form--split .dsc-legal-checks .dsc-checkbox{
	gap:10px;
	font-size:13px;
	line-height:1.45;
}

@media (max-width:980px){
	.dsc-form--split .dsc-form-sidebar{
		position:static;
		top:auto;
	}
}


/* Anpassung Preisbox schmal + Zustellhinweis entfernt */
.dsc-card--price .dsc-price-line--total{
	display:block;
	padding-top:8px;
}

.dsc-card--price .dsc-price-line--total > span:first-child{
	display:none;
}

.dsc-card--price .dsc-price-line--total > span:last-child{
	display:block;
	width:100%;
	font-size:23px;
	line-height:1.15;
	font-weight:900;
	text-align:right;
	white-space:nowrap;
}

.dsc-card--price .dsc-total-breakdown{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:8px;
	align-items:end;
	justify-content:stretch;
	width:100%;
	text-align:right;
}

.dsc-card--price .dsc-total-part{
	min-width:0;
	max-width:none;
	gap:3px;
}

.dsc-card--price .dsc-total-part small{
	font-size:10px;
	line-height:1.1;
	font-weight:800;
	white-space:nowrap;
}

.dsc-card--price .dsc-total-part strong{
	font-size:16px;
	line-height:1.15;
	font-weight:900;
	white-space:nowrap;
}

.dsc-card--price .dsc-total-part--gross strong{
	font-size:19px;
}

.dsc-card--price .dsc-price-lines--placeholder .dsc-price-line--total{
	display:flex;
	justify-content:flex-end;
}

.dsc-card--price .dsc-price-lines--placeholder .dsc-price-line--total > span:last-child{
	font-size:28px;
}

@media (max-width:1120px){
	.dsc-card--price .dsc-total-breakdown{
		grid-template-columns:1fr;
		gap:6px;
	}

	.dsc-card--price .dsc-total-part{
		display:grid;
		grid-template-columns:1fr auto;
		align-items:center;
		gap:10px;
	}
}


/* Anpassung v4: Preisbox entfernt */
.dsc-card--price > .dsc-price-disclaimer{
	display:none !important;
}

.dsc-card--price .dsc-price-line--total + .dsc-price-note{
	display:none !important;
}

.dsc-card--price .dsc-price-lines:not(.dsc-price-lines--placeholder) .dsc-price-line--total > span:first-child{
	display:block;
	width:100%;
	margin:0 0 8px;
	font-size:0;
	line-height:1;
	font-weight:900;
	color:var(--dsc-primary);
	text-align:left;
}

.dsc-card--price .dsc-price-lines:not(.dsc-price-lines--placeholder) .dsc-price-line--total > span:first-child::after{
	content:"Gesamtbetrag";
	display:block;
	font-size:13px;
	line-height:1.2;
	letter-spacing:.01em;
}

.dsc-card--price .dsc-price-line--total{
	display:block;
}

.dsc-card--price .dsc-price-lines:not(.dsc-price-lines--placeholder) .dsc-total-breakdown{
	margin-top:0;
}


/* Anpassung v5: Rechnungsadresse 50%, Platzhalter-Gesamtbetrag und Sticky-Abstand */
.dsc-form--split .dsc-grid--billing-address{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:13px;
	align-items:start;
	margin:0 0 13px;
}

.dsc-form--split .dsc-grid--billing-address > .dsc-field,
.dsc-form--split .dsc-grid--billing-address > .dsc-billing-address-field{
	min-width:0;
	width:100%;
}

.dsc-form--split .dsc-grid--billing-address .dsc-field{
	margin-bottom:0;
}

.dsc-form--split .dsc-grid--billing-address > input[type="hidden"]{
	display:none;
}

.dsc-form--split .dsc-form-sidebar{
	top:132px !important;
}

.dsc-card--price .dsc-price-lines--placeholder .dsc-price-line--total{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	color:#08783b;
}

.dsc-card--price .dsc-price-lines--placeholder .dsc-price-line--total > span:first-child{
	display:block !important;
	font-size:28px;
	line-height:1.1;
	font-weight:900;
	color:#08783b;
	text-align:left;
	white-space:nowrap;
}

.dsc-card--price .dsc-price-lines--placeholder .dsc-price-line--total > span:first-child::after{
	content:none !important;
}

.dsc-card--price .dsc-price-lines--placeholder .dsc-price-line--total > span:last-child{
	display:block;
	width:auto;
	font-size:28px;
	line-height:1.1;
	font-weight:900;
	color:#08783b;
	text-align:right;
	white-space:nowrap;
}

@media (max-width:720px){
	.dsc-form--split .dsc-grid--billing-address{
		grid-template-columns:1fr;
	}
}

/* Quick Price Mobile Shortcode */
.dsc-quick-price-mobile{
	--dsc-qpm-primary:#242A56;
	--dsc-qpm-secondary:#FFBF00;
	--dsc-qpm-border:#dbe4f0;
	--dsc-qpm-muted:#68748a;
	--dsc-qpm-success:#00813f;
	width:100%;
	max-width:374px;
	margin:0 auto;
	font-family:inherit;
	color:var(--dsc-qpm-primary);
}

.dsc-quick-price-mobile *,
.dsc-quick-price-mobile *::before,
.dsc-quick-price-mobile *::after{
	box-sizing:border-box;
}

.dsc-quick-price-mobile__inner{
	display:grid;
	grid-template-columns:1fr;
	gap:14px;
	width:100%;
	padding:16px;
	border:1px solid #d8e1ec;
	border-radius:12px;
	background:linear-gradient(145deg,#f7f8fb 0%,#eef1f7 100%);
	box-shadow:0 18px 40px rgba(20,30,60,.16);
}

.dsc-quick-price-mobile__intro{
	margin:0 0 8px;
	font-size:18px;
	line-height:1.22;
	font-weight:900;
	letter-spacing:-.02em;
	color:var(--dsc-qpm-primary);
}

.dsc-quick-price-mobile__field{
	display:grid;
	gap:7px;
	margin:0;
}

.dsc-quick-price-mobile__field span,
.dsc-quick-price-mobile__label{
	font-size:13px;
	line-height:1.25;
	font-weight:900;
	color:var(--dsc-qpm-primary);
}

.dsc-quick-price-mobile__field input{
	width:100%;
	height:46px;
	min-height:46px;
	border:1px solid var(--dsc-qpm-border);
	border-radius:11px;
	background:#fff !important;
	padding:10px 12px;
	font:inherit;
	font-size:16px;
	line-height:1.3;
	color:#1c2740;
	box-shadow:none;
}

.dsc-quick-price-mobile__field input::placeholder{
	color:#7c8594;
	opacity:1;
}

.dsc-quick-price-mobile__field input:hover{
	border-color:#c7d3e2;
	background:#fff !important;
}

.dsc-quick-price-mobile__field input:focus{
	outline:none;
	border-color:var(--dsc-qpm-primary);
	box-shadow:0 0 0 3px rgba(36,42,86,.12);
	background:#fff !important;
}

.dsc-quick-price-mobile__field input:-webkit-autofill{
	-webkit-box-shadow:0 0 0 1000px #fff inset !important;
	-webkit-text-fill-color:#1c2740 !important;
}

.dsc-quick-price-mobile__pricewrap{
	display:grid;
	gap:7px;
	margin:0;
}

.dsc-quick-price-mobile__pricebox{
	display:flex;
	align-items:center;
	width:100%;
	min-height:46px;
	border:1px solid var(--dsc-qpm-border);
	border-radius:11px;
	background:#fff;
	padding:9px 12px;
}

.dsc-quick-price-mobile__pricebox strong{
	display:block;
	font-size:20px;
	line-height:1.1;
	font-weight:950;
	color:var(--dsc-qpm-success);
	white-space:nowrap;
}

.dsc-quick-price-mobile__booking,
.dsc-quick-price-mobile__booking:visited{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	min-height:46px;
	border:1px solid var(--dsc-qpm-secondary);
	border-radius:11px;
	background:var(--dsc-qpm-secondary);
	color:var(--dsc-qpm-primary);
	padding:11px 16px;
	font-size:14px;
	line-height:1.2;
	font-weight:900;
	text-decoration:none;
	cursor:pointer;
	transition:background .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease;
}

.dsc-quick-price-mobile__booking:hover,
.dsc-quick-price-mobile__booking:focus{
	background:var(--dsc-qpm-primary);
	border-color:var(--dsc-qpm-primary);
	color:#fff;
	text-decoration:none;
	outline:none;
}

.dsc-quick-price-mobile__booking.is-disabled,
.dsc-quick-price-mobile__booking.is-disabled:hover,
.dsc-quick-price-mobile__booking.is-disabled:focus{
	background:#edf0f5;
	border-color:#edf0f5;
	color:#b9c1d0;
	opacity:1;
	cursor:not-allowed;
	pointer-events:none;
}

.dsc-quick-price-mobile__notice{
	margin:0;
	font-size:13px;
	line-height:1.35;
	font-weight:500;
	color:var(--dsc-qpm-muted);
}

.dsc-quick-price-mobile__notice.is-error{
	color:#991b1b;
	font-weight:800;
}

.dsc-quick-price__notice,
.dsc-quick-price-mobile__notice{
	white-space:pre-line;
}

/* Quick Price Mobile Layout - gleiche Rechnerstruktur, nur anderes Layout */
.dsc-quick-price--mobile{
	--dsc-qpm-primary:#242A56;
	--dsc-qpm-secondary:#FFBF00;
	--dsc-qpm-border:#dbe4f0;
	--dsc-qpm-muted:#68748a;
	--dsc-qpm-success:#00813f;
	width:100%;
	max-width:374px;
	margin:0 auto;
	color:var(--dsc-qpm-primary);
}

.dsc-quick-price--mobile .dsc-quick-price__inner{
	display:grid;
	grid-template-columns:1fr;
	gap:14px;
	width:100%;
	padding:16px;
	border:1px solid #d8e1ec;
	border-radius:12px;
	background:linear-gradient(145deg,#f7f8fb 0%,#eef1f7 100%);
	box-shadow:0 18px 40px rgba(20,30,60,.16);
	backdrop-filter:none;
}

.dsc-quick-price--mobile .dsc-quick-price__intro{
	margin:0 0 8px;
	font-size:18px;
	line-height:1.22;
	font-weight:900;
	letter-spacing:-.02em;
	color:var(--dsc-qpm-primary);
}

.dsc-quick-price--mobile .dsc-quick-price__form{
	display:grid;
	grid-template-columns:1fr;
	gap:14px;
	width:100%;
}

.dsc-quick-price--mobile .dsc-quick-price__field{
	display:grid;
	gap:7px;
	margin:0;
}

.dsc-quick-price--mobile .dsc-quick-price__field span,
.dsc-quick-price--mobile .dsc-quick-price__label{
	font-size:13px;
	line-height:1.25;
	font-weight:900;
	color:var(--dsc-qpm-primary);
}

.dsc-quick-price--mobile .dsc-quick-price__field input{
	width:100%;
	height:46px;
	min-height:46px;
	border:1px solid var(--dsc-qpm-border);
	border-radius:11px;
	background:#fff !important;
	padding:10px 12px;
	font:inherit;
	font-size:16px;
	line-height:1.3;
	color:#1c2740;
	box-shadow:none;
}

.dsc-quick-price--mobile .dsc-quick-price__field input::placeholder{
	color:#7c8594;
	opacity:1;
}

.dsc-quick-price--mobile .dsc-quick-price__field input:hover{
	border-color:#c7d3e2;
	background:#fff !important;
}

.dsc-quick-price--mobile .dsc-quick-price__field input:focus{
	outline:none;
	border-color:var(--dsc-qpm-primary);
	box-shadow:0 0 0 3px rgba(36,42,86,.12);
	background:#fff !important;
}

.dsc-quick-price--mobile .dsc-quick-price__field input:-webkit-autofill{
	-webkit-box-shadow:0 0 0 1000px #fff inset !important;
	-webkit-text-fill-color:#1c2740 !important;
}

.dsc-quick-price--mobile .dsc-quick-price__result{
	display:grid;
	grid-template-columns:1fr;
	gap:14px;
	align-items:stretch;
}

.dsc-quick-price--mobile .dsc-quick-price__pricewrap{
	display:grid;
	gap:7px;
	margin:0;
}

.dsc-quick-price--mobile .dsc-quick-price__pricebox{
	display:flex;
	align-items:center;
	width:100%;
	min-height:46px;
	border:1px solid var(--dsc-qpm-border);
	border-radius:11px;
	background:#fff;
	padding:9px 12px;
}

.dsc-quick-price--mobile .dsc-quick-price__pricebox strong{
	display:block;
	font-size:20px;
	line-height:1.1;
	font-weight:950;
	color:var(--dsc-qpm-success);
	white-space:nowrap;
}

.dsc-quick-price--mobile .dsc-quick-price__booking,
.dsc-quick-price--mobile .dsc-quick-price__booking:visited{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	min-height:46px;
	border:1px solid var(--dsc-qpm-secondary);
	border-radius:11px;
	background:var(--dsc-qpm-secondary);
	color:var(--dsc-qpm-primary);
	padding:11px 16px;
	font-size:14px;
	line-height:1.2;
	font-weight:900;
	text-decoration:none;
	cursor:pointer;
	transition:background .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease;
}

.dsc-quick-price--mobile .dsc-quick-price__booking:hover,
.dsc-quick-price--mobile .dsc-quick-price__booking:focus{
	background:var(--dsc-qpm-primary);
	border-color:var(--dsc-qpm-primary);
	color:#fff;
	text-decoration:none;
	outline:none;
}

.dsc-quick-price--mobile .dsc-quick-price__booking.is-disabled,
.dsc-quick-price--mobile .dsc-quick-price__booking.is-disabled:hover,
.dsc-quick-price--mobile .dsc-quick-price__booking.is-disabled:focus{
	background:#edf0f5;
	border-color:#edf0f5;
	color:#b9c1d0;
	opacity:1;
	cursor:not-allowed;
	pointer-events:none;
}

.dsc-quick-price--mobile .dsc-quick-price__notice{
	margin:0;
	font-size:13px;
	line-height:1.35;
	font-weight:500;
	color:var(--dsc-qpm-muted);
	white-space:pre-line;
}

.dsc-quick-price--mobile .dsc-quick-price__notice.is-error{
	color:#991b1b;
	font-weight:800;
}

/* Erfolgsmeldung als Modal nach Formularversand */
.dsc-success-modal{
	position:fixed;
	inset:0;
	z-index:999999;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:24px;
}

.dsc-success-modal__backdrop{
	position:absolute;
	inset:0;
	background:rgba(15,23,42,.72);
	backdrop-filter:blur(3px);
}

.dsc-success-modal__box{
	position:relative;
	z-index:1;
	width:min(520px,100%);
	border:1px solid #dfe7f1;
	border-radius:20px;
	background:#fff;
	padding:30px 28px;
	box-shadow:0 28px 80px rgba(0,0,0,.28);
	text-align:center;
	color:#191C3B;
}

.dsc-success-modal__icon{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:58px;
	height:58px;
	margin:0 0 16px;
	border-radius:999px;
	background:#ecfdf3;
	color:#0f7a3b;
	font-size:32px;
	font-weight:900;
}

.dsc-success-modal__box h2{
	margin:0 0 10px;
	font-size:25px;
	line-height:1.2;
	color:#191C3B;
}

.dsc-success-modal__box p{
	margin:0 0 22px;
	font-size:16px;
	line-height:1.5;
	color:#475569;
}

.dsc-success-modal__button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:46px;
	border-radius:999px;
	background:#FFBF00;
	color:#191C3B;
	padding:12px 28px;
	font-size:15px;
	font-weight:900;
	line-height:1.2;
	text-decoration:none;
}

.dsc-success-modal__button:hover,
.dsc-success-modal__button:focus{
	background:#191C3B;
	color:#fff;
	text-decoration:none;
	outline:none;
}

/* Submit-Status während Formularversand */
.dsc-submit.is-sending,
.dsc-submit.is-sending:hover,
.dsc-submit.is-sending:focus{
	background:var(--dsc-secondary);
	color:var(--dsc-primary);
	cursor:wait;
	opacity:.85;
	animation:dsc-submit-pulse .85s ease-in-out infinite;
}

@keyframes dsc-submit-pulse{
	0%{
		opacity:.55;
		transform:scale(1);
	}
	50%{
		opacity:1;
		transform:scale(1.015);
	}
	100%{
		opacity:.55;
		transform:scale(1);
	}
}

/* Hinweis-Icon bei Zusatzleistungen */
.dsc-option-card__label{
	position:relative;
	display:inline;
	min-width:0;
	overflow-wrap:anywhere;
}

.dsc-service-hint{
	position:relative;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:18px;
	height:18px;
	margin-left:6px;
	vertical-align:middle;
	border-radius:999px;
	background:#eef2f7;
	color:var(--dsc-primary);
	font-size:12px;
	font-weight:900;
	line-height:1;
	cursor:help;
	outline:none;
}

.dsc-service-hint__icon{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:18px;
	height:18px;
	border:1px solid var(--dsc-primary);
	border-radius:999px;
	background:var(--dsc-primary);
	color:#fff;
	font-size:12px;
	font-weight:900;
	line-height:1;
}

.dsc-service-hint__text{
	position:absolute;
	left:50%;
	bottom:calc(100% + 10px);
	z-index:50;
	display:block;
	width:260px;
	max-width:calc(100vw - 40px);
	padding:10px 12px;
	border:1px solid #dbe6f3;
	border-radius:10px;
	background:#fff;
	color:var(--dsc-primary);
	font-size:13px;
	font-weight:500;
	line-height:1.45;
	text-align:left;
	white-space:normal;
	box-shadow:0 14px 35px rgba(15,23,42,.24);
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transform:translate(-50%,4px);
	transition:opacity .15s ease, visibility .15s ease, transform .15s ease;
}

.dsc-service-hint__text::after{
	content:"";
	position:absolute;
	left:50%;
	top:100%;
	width:0;
	height:0;
	border-left:7px solid transparent;
	border-right:7px solid transparent;
	border-top:7px solid #191C3B;
	transform:translateX(-50%);
}

.dsc-service-hint:hover .dsc-service-hint__text,
.dsc-service-hint:focus .dsc-service-hint__text,
.dsc-service-hint.is-open .dsc-service-hint__text{
	opacity:1;
	visibility:visible;
	transform:translate(-50%,0);
}

@media (max-width:720px){
	.dsc-service-hint{
		width:22px;
		height:22px;
		margin-left:7px;
		cursor:pointer;
	}

	.dsc-service-hint__icon{
		width:22px;
		height:22px;
		font-size:13px;
	}

	.dsc-service-hint__text{
		left:auto;
		right:-8px;
		bottom:calc(100% + 11px);
		width:250px;
		transform:translateY(4px);
	}

	.dsc-service-hint__text::after{
		left:auto;
		right:12px;
		transform:none;
	}

	.dsc-service-hint:hover .dsc-service-hint__text{
		opacity:0;
		visibility:hidden;
		transform:translateY(4px);
	}

	.dsc-service-hint.is-open .dsc-service-hint__text,
	.dsc-service-hint:focus .dsc-service-hint__text{
		opacity:1;
		visibility:visible;
		transform:translateY(0);
	}
}
/* Routenoptimierung im Frontend-Formular */
.dsc-route-optimizer{
	grid-column:1 / -1;
	margin-top:12px;
}

.dsc-route-optimizer__button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:43px;
	border:1px solid #FFBF00;
	border-radius:25px;
	background:#FFBF00;
	color:#242A56;
	padding:0 18px;
	font:inherit;
	font-size:14px;
	font-weight:800;
	cursor:pointer;
	transition:opacity .15s ease;
}

.dsc-route-optimizer__button:hover,
.dsc-route-optimizer__button:focus{
	background:#E6AC00;
	border-color:#E6AC00;
	color:#242A56;
	outline:none;
}

.dsc-route-optimizer__button:disabled{
	opacity:.65;
	cursor:wait;
}

.dsc-route-optimizer__preview{
	margin-top:12px;
	padding:14px;
	border:1px solid #d7e1ee;
	border-radius:12px;
	background:#f8fafc;
	color:var(--dsc-text);
}

.dsc-route-preview__head{
	margin-bottom:8px;
	font-size:15px;
	font-weight:850;
	color:var(--dsc-primary);
}

.dsc-route-preview__list{
	margin:0 0 10px;
	padding:0;
	font-size:13px;
	line-height:1.45;
	color:#263247;
}

.dsc-route-preview__item{
	display:flex;
	align-items:flex-start;
	gap:7px;
}

.dsc-route-preview__item + .dsc-route-preview__item{
	margin-top:4px;
}

.dsc-route-preview__badge,
.dsc-route-preview__spacer{
	flex:0 0 20px;
	width:20px;
	height:20px;
}

.dsc-route-preview__badge{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border-radius:999px;
	background:var(--dsc-primary);
	color:#fff;
	font-size:11px;
	font-weight:800;
	line-height:1;
}

.dsc-route-preview__meta,
.dsc-route-preview__loading,
.dsc-route-preview__error{
	font-size:13px;
	line-height:1.45;
	color:#263247;
}

.dsc-route-preview__error{
	color:var(--dsc-danger);
	font-weight:750;
}

.dsc-route-preview__actions{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin-top:12px;
}

.dsc-route-preview__accept,
.dsc-route-preview__keep{
	min-height:38px;
	border-radius:9px;
	padding:0 13px;
	font:inherit;
	font-size:13px;
	font-weight:750;
	cursor:pointer;
}

.dsc-route-preview__accept{
	border:1px solid var(--dsc-primary);
	background:var(--dsc-primary);
	color:#fff;
}

.dsc-route-preview__keep{
	border:1px solid #cbd5e1;
	background:#fff;
	color:var(--dsc-primary);
}

.dsc-route-preview__accept:hover,
.dsc-route-preview__accept:focus{
	outline:none;
	background:#303867;
	color:#fff;
}

.dsc-route-preview__keep:hover,
.dsc-route-preview__keep:focus{
	outline:none;
	background:#f1f5f9;
	color:var(--dsc-primary);
}

/* Routenkarte in der Preis-Sidebar */
.dsc-route-map{
	margin:16px;
	padding:12px;
	border:1px solid #d7e1ee;
	border-radius:14px;
}

.dsc-route-map__head{
	margin:0 0 8px;
	font-size:14px;
	font-weight:850;
	color:var(--dsc-primary);
}

.dsc-route-map__canvas{
	width:100%;
	height:260px;
	min-height:260px;
	border-radius:12px;
	overflow:hidden;
	background:#e5edf7;
}

.dsc-route-map__notice{
	margin-top:8px;
	font-size:12px;
	line-height:1.45;
	color:#5b6b82;
}

@media (max-width:720px){
	.dsc-route-map__canvas{
		height:220px;
		min-height:220px;
	}
}

/* Anpassung 0.9.29: Formularflächen mit heller Box-Hintergrundfarbe */
.dsc-form--split .dsc-card{
	background:#F7FBFF;
}

.dsc-form--split .dsc-card-head{
	border-bottom:1px solid rgba(36,42,86,.16);
	padding-bottom:14px;
}

.dsc-customer-fields-box,
.dsc-form--split .dsc-service-box,
.dsc-form--split .dsc-appointment-box,
.dsc-form--split .dsc-legal-checks .dsc-checkbox,
.dsc-price-box,
.dsc-form--split .dsc-address-panel{
	background:transparent;
	border-color:transparent;
}

.dsc-form--split .dsc-card--price .dsc-price-box{
	background:transparent;
	border-color:transparent;
}

.dsc-submit:hover,
.dsc-submit:focus{
	background:#E6AC00;
	color:var(--dsc-primary);
}

.dsc-info-box--submit-warning{
	margin:0 0 14px;
}
