:root{
	--mtb-blue:#006699;
	--mtb-red:#C20000;
	--mtb-dark:#273B48;
	--mtb-title-color:#273B48;
	--mtb-text-color:#273B48;
	--mtb-label-color:#273B48;
	--mtb-hint-text:#65727c;
	--mtb-card-bg:#fff;
	--mtb-border:#d9e2ea;
	--mtb-soft:#f5f8fb;
	--mtb-button-text:#fff;
	--mtb-section-bg:var(--mtb-blue);
	--mtb-section-text:#fff;
	--mtb-font-small:12px;
	--mtb-font-label:13px;
	--mtb-font-base:14px;
	--mtb-font-button:15px;
	--mtb-font-title:22px;
	--mtb-font-hero:30px;
	--mtb-price-weight:700;
	--mtb-input-radius:5px;
	--mtb-button-radius:5px;
	--mtb-card-radius:10px;
	--mtb-form-shadow:none;
}
.mtb-step1-card,.mtb-step1-card *,.mtb-wrap *{box-sizing:border-box}
.mtb-step1-card{max-width:430px;background:var(--mtb-card-bg);border:1px solid var(--mtb-border);border-radius:var(--mtb-card-radius);padding:24px;box-shadow:var(--mtb-form-shadow);font-family:Arial,sans-serif;color:var(--mtb-text-color)}
.mtb-step1-card h3{margin:0 0 4px;font-size:var(--mtb-font-title);color:var(--mtb-title-color)}
.mtb-step1-card p{margin:0 0 18px;font-size:var(--mtb-font-label);color:var(--mtb-hint-text)}
.mtb-field{display:block;margin-bottom:10px;font-family:Arial,sans-serif}
.mtb-field span,.mtb-field label,.mtb-step1-card label{display:block;margin-bottom:6px;font-size:var(--mtb-font-label);font-weight:700;color:var(--mtb-label-color)}
.mtb-field input,.mtb-field select,.mtb-field textarea,.mtb-step1-card input,.mtb-step1-card select{width:100%;min-height:38px;border:1px solid var(--mtb-border);border-radius:var(--mtb-input-radius);padding:8px 10px;background:#fff;color:var(--mtb-text-color);font-size:var(--mtb-font-base)}
.mtb-price-box{background:#eef7fc;border:1px solid #c9e3f3;border-radius:6px;padding:13px 15px;margin:12px 0 16px}
.mtb-price-box span{display:block;font-size:var(--mtb-font-base);font-weight:700;color:var(--mtb-blue);margin-bottom:4px}
.mtb-price-box strong{display:block;font-size:var(--mtb-font-hero);font-weight:var(--mtb-price-weight);color:var(--mtb-red);line-height:1.1}
.mtb-price-box small{display:block;font-size:var(--mtb-font-base);margin-top:4px;color:var(--mtb-hint-text)}
.mtb-btn{border:0;border-radius:var(--mtb-button-radius);padding:13px 18px;font-weight:700;cursor:pointer;width:100%;font-size:var(--mtb-font-button)}
.mtb-btn-red{background:var(--mtb-red);color:var(--mtb-button-text,#fff)}
.mtb-btn-red:hover,.mtb-btn-red:focus,.mtb-btn-red:active{background:var(--mtb-blue)!important;color:var(--mtb-button-text,#fff)!important;text-decoration:none!important}
.mtb-wrap{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px;max-width:1180px;margin:0 auto;padding:32px 20px;font-family:Arial,sans-serif;font-size:var(--mtb-font-base);color:var(--mtb-text-color)}
.mtb-main h2{margin:0 0 14px;font-size:var(--mtb-font-hero);color:var(--mtb-title-color)}
.mtb-step2-subtitle{margin:-6px 0 18px;font-size:var(--mtb-font-base);color:var(--mtb-hint-text);line-height:1.45}
.mtb-section{background:var(--mtb-card-bg);border:1px solid var(--mtb-border);border-radius:var(--mtb-card-radius);margin-bottom:12px;overflow:hidden;box-shadow:var(--mtb-form-shadow)}
.mtb-section h3{margin:0;padding:10px 14px;background:var(--mtb-section-bg,var(--mtb-blue));color:var(--mtb-section-text,#fff);font-size:var(--mtb-font-button);letter-spacing:.02em}
.mtb-section h4{margin:0 0 12px;color:var(--mtb-title-color);font-size:var(--mtb-font-button)}
.mtb-section>div:not(.mtb-route-grid):not(.mtb-transport-grid),.mtb-route-grid,.mtb-transport-grid{padding:14px}
.mtb-section>.mtb-field{display:block;padding:14px;margin:0}
.mtb-section>.mtb-field textarea{display:block;width:100%;margin:0}
.mtb-route-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;position:relative}
.mtb-route-grid:before{content:"";position:absolute;top:20px;bottom:20px;left:50%;border-left:1px dashed #b6c7d4}
.mtb-row-2,.mtb-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mtb-route-name-grid{display:grid;grid-template-columns:1fr 1fr;gap:0px 16px;margin-bottom:2px}
.mtb-route-name-grid .mtb-field:first-child{grid-column:1/-1}
.mtb-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:0 14px 10px}
.mtb-inline{display:flex;gap:16px;align-items:center;padding:12px 14px 4px!important}
.mtb-check,.mtb-inline label,.mtb-doc-options label{font-size:var(--mtb-font-label);color:var(--mtb-text-color);display:flex;gap:8px;align-items:center;margin:8px 0}
.mtb-check input,.mtb-inline input,.mtb-doc-options input{width:auto;min-height:auto}
.mtb-add-stop{margin:0 14px 14px;width:calc(100% - 28px);border:1px solid #0a8f3c;background:#0a8f3c;color:#fff;font-weight:700;border-radius:var(--mtb-button-radius);padding:10px;cursor:pointer;font-size:var(--mtb-font-button)}
.mtb-add-stop:hover,.mtb-add-stop:focus{background:#087a34;color:#fff;border-color:#087a34}
.mtb-stop-row{display:grid;grid-template-columns:1fr 38px;gap:8px;margin:0 14px 10px}
.mtb-stop-row input{min-height:38px;border:1px solid var(--mtb-border);border-radius:var(--mtb-input-radius);padding:8px 10px;font-size:var(--mtb-font-base)}
.mtb-stop-row button{border:0;background:#f0f2f4;border-radius:var(--mtb-button-radius);cursor:pointer}
.mtb-grid-3--compact{padding:0!important;margin-bottom:2px}
.mtb-route-grid .mtb-grid-3--compact{grid-template-columns:1fr 1fr 1fr;gap:8px}
.mtb-stop-fields{display:grid;grid-template-columns:.8fr 1.2fr;gap:8px}
.mtb-check--terms{display:grid!important;grid-template-columns:16px minmax(0,1fr)!important;align-items:start!important;column-gap:8px!important;margin:18px 0 16px!important;font-size:var(--mtb-font-label)!important;line-height:1.45!important;color:var(--mtb-text-color)!important;width:100%!important}
.mtb-check--terms input{width:16px!important;min-height:auto!important;margin:3px 0 0 0!important}
.mtb-check--terms span{display:block!important;width:auto!important;min-width:0!important;max-width:100%!important;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important;text-align:left!important}
.mtb-check--terms a{color:var(--mtb-text-color);font-weight:700;text-decoration:none}
.mtb-check--terms a:hover,.mtb-check--terms a:focus{color:var(--mtb-text-color);text-decoration:underline}

.mtb-transport-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}
.mtb-vehicle-card{border:1px solid var(--mtb-border);border-radius:var(--mtb-card-radius);padding:12px;background:#fbfdff}
.mtb-vehicle-image{height:110px;border-radius:6px;background:linear-gradient(135deg,#dfe7ec,#fff);margin-bottom:10px;position:relative;overflow:hidden}
.mtb-vehicle-image--loaded{background:#fff}
.mtb-vehicle-image--loaded:after{display:none}
.mtb-vehicle-image img{width:100%;height:100%;object-fit:contain;display:block}
.mtb-vehicle-image:after{content:"";position:absolute;left:22px;right:22px;bottom:24px;height:38px;background:#fff;border:2px solid #c8d4dc;border-radius:5px;box-shadow:45px 16px 0 -10px #273B48,-38px 16px 0 -10px #273B48}
.mtb-info{margin:0 14px 12px;padding:10px 12px;border-radius:var(--mtb-input-radius);background:#e7f4fb;border:1px solid #c4e0f0;color:#005b87;font-weight:700;font-size:var(--mtb-font-label)}
.mtb-doc-options{margin:0 14px 14px;border:1px solid var(--mtb-border);border-radius:var(--mtb-input-radius);padding:12px;background:#fbfdff}
.mtb-doc-options-title{margin:0 0 12px;color:var(--mtb-title-color);font-size:var(--mtb-font-button);font-weight:700}
.mtb-sidebar{position:relative}
.mtb-price-card{position:sticky;top:145px;background:var(--mtb-card-bg);border:1px solid var(--mtb-border);border-radius:var(--mtb-card-radius);padding:24px;box-shadow:var(--mtb-form-shadow)}
.mtb-price-card h3{margin:0 0 14px;font-size:var(--mtb-font-title);color:var(--mtb-title-color)}
.mtb-price-card>span{font-size:var(--mtb-font-base);color:var(--mtb-hint-text)}
.mtb-price-card>strong{display:block;font-size:var(--mtb-font-hero);font-weight:var(--mtb-price-weight);color:var(--mtb-blue);margin:4px 0}
.mtb-price-card small{
	display:block;
	color:var(--mtb-hint-text);
	margin-bottom:16px;
	font-size:var(--mtb-font-base);
	line-height:1.35;
}

.mtb-price-card ul{list-style:none;margin:16px 0;padding:0;border-top:1px solid var(--mtb-border)}
.mtb-price-card li{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--mtb-border);font-size:var(--mtb-font-base)}
.mtb-small{font-size:var(--mtb-font-small);color:var(--mtb-hint-text);line-height:1.45}
.mtb-form-message{font-size:var(--mtb-font-label);margin-top:12px;line-height:1.4}
.mtb-form-message.is-error{background:#fff1f1;border:1px solid #f0b8b8;border-radius:var(--mtb-input-radius);color:#b00020;font-weight:700;padding:10px 12px;margin:0 0 14px}.mtb-form-message.is-error div+div{margin-top:4px}.mtb-form-message.is-success{color:#007a3d}

@media(min-width:901px){
	.mtb-sidebar{padding-top:110px}
	.mtb-sidebar .mtb-price-card{top:145px!important}
}
@media(max-width:900px){.mtb-wrap{grid-template-columns:1fr}.mtb-route-grid,.mtb-transport-grid,.mtb-grid-3,.mtb-grid-2,.mtb-row-2,.mtb-stop-fields,.mtb-route-name-grid{grid-template-columns:1fr}.mtb-route-grid:before{display:none}.mtb-price-card{position:static}}


/* Transportalo Booking Calculator - adjustments 1.0.15 */
.mtb-section .mtb-grid-3,
.mtb-section .mtb-grid-2{
	padding:0 14px 8px;
	gap:8px;
}

.mtb-section .mtb-grid-3 + .mtb-grid-3,
.mtb-section .mtb-grid-3 + .mtb-grid-2{
	margin-top:0;
}

.mtb-stop-row{
	grid-template-columns:1fr 38px;
	align-items:stretch;
}

.mtb-stop-fields input,
.mtb-stop-row button{
	height:38px;
	min-height:38px;
}

.mtb-stop-remove,
.mtb-stop-row button{
	display:flex;
	align-items:center;
	justify-content:center;
	padding:0;
	font-size:var(--mtb-font-title);
	line-height:1;
	font-weight:700;
	background:#fff0f0!important;
	border:1px solid #f2b6b6!important;
	color:var(--mtb-red)!important;
}

.mtb-stop-remove:hover,
.mtb-stop-row button:hover{
	background:var(--mtb-red)!important;
	border-color:var(--mtb-red)!important;
	color:#fff!important;
}

.mtb-vehicle-card p{
	white-space:normal;
	line-height:1.45;
}

.mtb-vehicle-card p br{
	display:block;
	content:"";
	margin-top:4px;
}

.mtb-price-prefix{
	font-size:var(--mtb-font-small);
	font-weight:700;
	vertical-align:baseline;
	margin-right:4px;
}

.mtb-field input[type="date"]{
	cursor:pointer;
}

.mtb-admin-image-preview{
	margin-top:10px;
	border:1px solid #dcdcde;
	border-radius:8px;
	background:#f6f7f7;
	padding:8px;
	max-width:220px;
}

.mtb-admin-image-preview img{
	display:block;
	max-width:100%;
	height:auto;
	border-radius:5px;
}

/* Transportalo Booking Calculator - adjustments 1.0.16 */
.mtb-add-stop{
	background:#e8f7ee!important;
	border-color:#b9e4c8!important;
	color:#087a34!important;
}
.mtb-add-stop:hover,
.mtb-add-stop:focus{
	background:#d8f1e2!important;
	border-color:#8fd1a8!important;
	color:#065c28!important;
}
.mtb-price-status{
	display:inline-block;
	font-size:var(--mtb-font-button);
	font-weight:700;
	line-height:1.25;
	color:var(--mtb-hint-text);
}
.mtb-step1-card .mtb-price-status{
	font-size:var(--mtb-font-button);
}
.mtb-step1-card .mtb-field,
.mtb-step1-card .mtb-field label,
.mtb-step1-card input,
.mtb-step1-card select{
	font-size:var(--mtb-font-base);
}
.mtb-content-other textarea{
	min-height:78px;
	resize:vertical;
}
.mtb-stop-row button,
.mtb-stop-remove{
	height:38px!important;
	min-height:38px!important;
	width:38px!important;
	align-self:stretch!important;
	place-items:center!important;
	text-align:center!important;
}
.mtb-stop-fields input{
	height:38px!important;
	min-height:38px!important;
}
@media(max-width:544px){
	.mtb-wrap{
		padding-left:8px!important;
		padding-right:8px!important;
		gap:14px!important;
	}
	.mtb-main h2{
		font-size:var(--mtb-font-title);
	}
	.mtb-section>div:not(.mtb-route-grid):not(.mtb-transport-grid),
	.mtb-route-grid,
	.mtb-transport-grid{
		padding:10px!important;
	}
	.mtb-section .mtb-grid-3,
	.mtb-section .mtb-grid-2{
		padding-left:10px!important;
		padding-right:10px!important;
	}
	.mtb-add-stop{
		margin-left:10px!important;
		margin-right:10px!important;
		width:calc(100% - 20px)!important;
	}
	.mtb-stop-row{
		margin-left:10px!important;
		margin-right:10px!important;
	}
}

/* Transportalo Booking Calculator - adjustments 1.0.17 */
.mtb-content-other[hidden]{
	display:none!important;
}
.mtb-price-status{
	font-size:var(--mtb-font-small)!important;
	line-height:1.25!important;
}
.mtb-step1-card .mtb-price-status{
	font-size:var(--mtb-font-small)!important;
}
.mtb-modal[hidden]{
	display:none!important;
}
.mtb-modal{
	position:fixed;
	top:0;
	right:0;
	bottom:0;
	left:0;
	width:100vw;
	height:100vh;
	z-index:999999;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:20px;
	font-family:Arial,sans-serif;
}
.mtb-modal__backdrop{
	position:absolute;
	inset:0;
	background:rgba(39,59,72,.72);
}
.mtb-modal__dialog{
	position:relative;
	z-index:1;
	width:min(100%,460px);
	background:var(--mtb-card-bg);
	border-radius:var(--mtb-card-radius);
	box-shadow:0 20px 60px rgba(0,0,0,.28);
	padding:28px;
	color:var(--mtb-text-color);
	text-align:left;
}
.mtb-modal__dialog h3{
	margin:0 0 10px;
	font-size:var(--mtb-font-title);
	line-height:1.25;
	color:var(--mtb-blue);
}
.mtb-modal__dialog p{
	margin:0 0 14px;
	font-size:var(--mtb-font-button);
	line-height:1.55;
	color:var(--mtb-hint-text);
}
.mtb-modal__number{
	font-weight:700;
	color:var(--mtb-text-color)!important;
}
html.mtb-modal-open,
body.mtb-modal-open{
	overflow:hidden!important;
}

/* Transportalo Booking Calculator - dark mode contrast fix 1.0.36 */
.mtb-vehicle-card strong,
.mtb-vehicle-card p{
	color:var(--mtb-text-color)!important;
}
.mtb-wrap[data-mtb-dark="1"] .mtb-vehicle-card,
body .mtb-wrap.is-dark .mtb-vehicle-card{
	background:var(--mtb-card-bg,#1F2937)!important;
}
.mtb-wrap[data-mtb-dark="1"] .mtb-vehicle-card strong,
.mtb-wrap[data-mtb-dark="1"] .mtb-vehicle-card p,
body .mtb-wrap.is-dark .mtb-vehicle-card strong,
body .mtb-wrap.is-dark .mtb-vehicle-card p{
	color:var(--mtb-dark-text,#F9FAFB)!important;
}
@media (prefers-color-scheme: dark){
	.mtb-wrap[data-mtb-dark-mode="follow"] .mtb-vehicle-card{background:var(--mtb-card-bg,#1F2937)!important}
	.mtb-wrap[data-mtb-dark-mode="follow"] .mtb-vehicle-card strong,
	.mtb-wrap[data-mtb-dark-mode="follow"] .mtb-vehicle-card p{color:var(--mtb-dark-text,#F9FAFB)!important}
}


/* Transportalo Booking Calculator - frontend refinements 1.0.40 */
.mtb-vehicle-card p{
	font-size:var(--mtb-font-base)!important;
}
.mtb-field input,
.mtb-field select,
.mtb-field textarea,
.mtb-step1-card input,
.mtb-step1-card select{
	font-family:Arial,sans-serif!important;
}
.mtb-field input[type="date"],
.mtb-section textarea[name="remarks"]{
	font-family:Arial,sans-serif!important;
	font-size:var(--mtb-font-base)!important;
	line-height:1.35!important;
}
.mtb-section .mtb-route-grid,
.mtb-section .mtb-transport-grid,
.mtb-section .mtb-grid-3,
.mtb-section .mtb-grid-2,
.mtb-section .mtb-row-2{
	gap:8px 16px;
}

.mtb-section .mtb-grid-3,
.mtb-section .mtb-grid-2{
	padding:0 14px 8px;
	margin:0;
}

.mtb-section .mtb-grid-3:first-of-type,
.mtb-section .mtb-grid-2:first-of-type{
	padding-top:14px;
}

.mtb-section .mtb-grid-3 + .mtb-grid-3,
.mtb-section .mtb-grid-3 + .mtb-grid-2,
.mtb-section .mtb-grid-2 + .mtb-grid-2{
	padding-top:0;
}

.mtb-section .mtb-field{
	margin-bottom:8px;
}

.mtb-section .mtb-route-grid .mtb-field,
.mtb-section .mtb-transport-grid .mtb-field,
.mtb-section .mtb-grid-3 .mtb-field,
.mtb-section .mtb-grid-2 .mtb-field,
.mtb-section .mtb-row-2 .mtb-field{
	margin-bottom:0;
}
.mtb-route-grid h4,
.mtb-doc-options-title{
	padding-bottom:8px!important;
	margin:0 0 12px!important;
	border-bottom:1px solid var(--mtb-border)!important;
	color:var(--mtb-title-color)!important;
	font-size:var(--mtb-font-button)!important;
	font-weight:700!important;
	line-height:1.25!important;
}

/* Einheitlicher kleiner Abstand über Feld-Labels */
.mtb-section .mtb-field span,
.mtb-section .mtb-field label{
	padding-top:8px;
}

/* Auftraggeber kompakter halten */
.mtb-customer-section .mtb-grid-3,
.mtb-customer-section .mtb-grid-2{
	padding-top:0;
	padding-bottom:6px;
}

.mtb-customer-section .mtb-grid-3:first-of-type{
	padding-top:8px;
}

.mtb-customer-section .mtb-field{
	margin-bottom:0;
}

/* Auftraggeber wie Transport: ein Grid-Container ohne eigenes Zeilen-Padding */
.mtb-customer-section .mtb-customer-grid{
	display:grid;
	grid-template-columns:1fr 1fr 1fr;
	gap:0px 16px;
	padding:14px;
}

.mtb-customer-section .mtb-customer-grid .mtb-field{
	margin-bottom:0;
}

@media(max-width:900px){
	.mtb-customer-section .mtb-customer-grid{
		grid-template-columns:1fr;
	}
}
