/*
 * Kompakter Ersatz für die WordPress-Inline-Styles (Block-Library,
 * Classic-Theme, Global-Styles, wp-custom-css, MaxButtons).
 * Enthält nur Regeln, die auf der Website tatsächlich verwendet werden.
 */

/* Basis (kam vorher aus den Global-Styles) */
body { margin: 0; padding: 0; }
:where(figure) { margin: 0 0 1em; }

/* Bilder aus dem WordPress-Editor */
html :where(img[class*=wp-image-]) { height: auto; max-width: 100%; }
.aligncenter { clear: both; }

/* Textausrichtung */
:root .has-text-align-center { text-align: center; }
:root .has-text-align-left { text-align: left; }
:root .has-text-align-right { text-align: right; }

/* Screenreader-Text (Formulare, Banner) */
.screen-reader-text {
	word-wrap: normal !important;
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
}
.screen-reader-text:focus {
	background-color: #ddd;
	clip-path: none;
	color: #444;
	display: block;
	font-size: 1em;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* WordPress-Buttons (Block-Editor) */
.wp-element-button { cursor: pointer; }
.wp-block-button__link {
	color: #fff;
	background-color: #32373c;
	border-radius: 9999px;
	box-shadow: none;
	text-decoration: none;
	padding: calc(.667em + 2px) calc(1.333em + 2px);
	font-size: 1.125em;
}
:root :where(.wp-element-button, .wp-block-button__link) {
	background-color: #32373c;
	border-width: 0;
	color: #fff;
	font-family: inherit;
	font-size: inherit;
	padding: calc(0.667em + 2px) calc(1.333em + 2px);
	text-decoration: none;
}
:where(.is-layout-flex) { gap: 0.5em; }
body .is-layout-flex { display: flex; flex-wrap: wrap; align-items: center; }
.is-layout-flex > :is(*, div) { margin: 0; }

/* Block-Styles für Bilder und Listen (ehemals wp-includes/blocks/...) */
ol, ul { box-sizing: border-box; }
.wp-block-image > a, .wp-block-image > figure > a { display: inline-block; }
.wp-block-image img { box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom; }
.wp-block-image.aligncenter { text-align: center; }
.wp-block-image .aligncenter, .wp-block-image .alignleft, .wp-block-image .alignright,
.wp-block-image.aligncenter, .wp-block-image.alignleft, .wp-block-image.alignright { display: table; }
.wp-block-image .alignleft, .wp-block-image.alignleft { float: left; margin: .5em 1em .5em 0; }
.wp-block-image .alignright, .wp-block-image.alignright { float: right; margin: .5em 0 .5em 1em; }
.wp-block-image .aligncenter, .wp-block-image.aligncenter { margin-left: auto; margin-right: auto; }
.wp-block-image :where(figcaption) { margin-bottom: 1em; margin-top: .5em; }

/* Block-Styles für Tabellen und Buttons */
.wp-block-table { overflow-x: auto; }
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table thead { border-bottom: 3px solid; }
.wp-block-table tfoot { border-top: 3px solid; }
.wp-block-table td, .wp-block-table th { border: 1px solid; padding: .5em; }
.wp-block-table .has-fixed-layout { table-layout: fixed; width: 100%; }
.wp-block-buttons { box-sizing: border-box; }
.wp-block-buttons > .wp-block-button { display: inline-block; margin: 0; }
.wp-block-buttons.is-content-justification-center { justify-content: center; }

/* WPBakery-Animationen: das Front-JS wird nicht mehr geladen,
   Inhalte müssen ohne Einblend-Animation sichtbar sein. */
.wpb_animate_when_almost_visible { opacity: 1; }

/* ehemals "wp-custom-css": Formular-Styling (Contact Form 7 Markup) */
div.wpcf7 { padding: 20px; }
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 textarea { width: 100%; }
.wpcf7-form .button {
	background-color: #f40;
	border: 0;
	color: #fff;
	font-weight: 400;
	text-align: center;
	text-transform: uppercase;
	margin-bottom: 0;
	width: auto;
	padding: 10px 10px;
	letter-spacing: 2px;
	font-size: 14px;
	border-radius: 1px;
}
.wpcf7-form input[type="submit"] {
	display: inline-block;
	text-align: center;
	font-weight: bold;
	font-size: 16px;
	color: #fff;
	background: #f40;
	border: solid 2px #f40;
	border-radius: 25px;
	width: 100%;
	padding: 10px 25px;
	text-shadow: 0 0 3px rgb(0 0 0 / 30%);
	background-clip: padding-box;
	box-shadow: inset 0 0 0 1px rgb(255 255 255 / 40%), 0 1px 3px rgb(0 0 0 / 60%);
	box-sizing: border-box;
}
input.magic { background-color: white; width: 100%; }

/* ehemals MaxButtons-Plugin: "Termin buchen"-Button */
.maxbutton-1.maxbutton.maxbutton-termin-buchen {
	position: relative;
	text-decoration: none;
	display: inline-block;
	vertical-align: middle;
	width: 150px;
	height: 39px;
	border: 2px solid #ee4418;
	border-radius: 38px;
	background-color: #ee4418;
	box-shadow: 0 0 2px 0 #333;
}
.maxbutton-1.maxbutton.maxbutton-termin-buchen .mb-text {
	color: #fff;
	font-family: Tahoma;
	font-size: 15px;
	text-align: center;
	line-height: 1em;
	box-sizing: border-box;
	display: block;
	padding: 12px 0 0 0;
}
@media only screen and (max-width: 480px) {
	.maxbutton-1.maxbutton.maxbutton-termin-buchen { width: 90%; }
	.maxbutton-1.maxbutton.maxbutton-termin-buchen .mb-text { font-size: 12px; }
}

/* Rufnummern-Banner (Startseite) – im Stil von dtms.de/shop */
.isn-banner-section { margin: 0 0 40px 0; }
.isn-banner-section h2.isn-banner-title {
	font-size: 30px; font-weight: 700; color: #1a1a1a;
	margin-bottom: 6px; line-height: 1.2;
}
.isn-banner-section p.isn-banner-sub {
	color: #666; font-size: 16px; margin-bottom: 30px; max-width: 700px; line-height: 1.6;
}
.isn-banner {
	position: relative; display: flex; align-items: stretch;
	height: 300px; margin-bottom: 24px; overflow: hidden; border-radius: 6px;
}
.isn-banner-img {
	flex: 1; background-size: cover; background-position: center;
}
.isn-banner-text {
	width: 46%; min-width: 320px; position: relative; display: flex;
	flex-direction: column; justify-content: center; padding: 40px 50px 40px 60px;
	color: #fff; z-index: 2;
	transform: skew(-12deg, 0deg); transform-origin: bottom left;
	margin-left: -40px;
}
.isn-banner-text-inner {
	transform: skew(12deg, 0deg);
}
.isn-banner-num {
	font-size: 42px; font-weight: 800; line-height: 1; margin-bottom: 6px;
}
.isn-banner-name {
	font-size: 22px; font-weight: 600; margin-bottom: 10px; color: rgba(255,255,255,0.95);
}
.isn-banner-desc {
	font-size: 15px; line-height: 1.5; color: rgba(255,255,255,0.8); margin-bottom: 22px; max-width: 380px;
}
.isn-banner-btn {
	display: inline-block; padding: 11px 28px; font-size: 14px; font-weight: 700;
	text-transform: uppercase; letter-spacing: 1px; color: #fff;
	border: 2px solid #fff; border-radius: 0; background: transparent;
	text-decoration: none; transition: background 0.25s; width: fit-content;
}
.isn-banner-btn:hover { background: rgba(255,255,255,0.2); text-decoration: none; color: #fff; }
/* Layout-Variante: Text rechts, Bild links */
.isn-banner.isn-banner-reverse .isn-banner-text {
	transform: skew(12deg, 0deg); transform-origin: bottom right;
	margin-left: 0; margin-right: -40px; padding: 40px 60px 40px 50px;
}
.isn-banner.isn-banner-reverse .isn-banner-text-inner { transform: skew(-12deg, 0deg); }
.isn-banner.isn-banner-reverse { flex-direction: row-reverse; }
/* Farben – dezente dunkle Gradienten mit Orange-/Blauakzent */
.isn-bg-orange {
	background: linear-gradient(135deg, #2b2b2b 0%, #3d2a20 60%, #4a2c14 100%);
}
.isn-bg-orange .isn-banner-num { color: #ff6a33; }
.isn-bg-blue {
	background: linear-gradient(135deg, #1e2a3a 0%, #1a3a52 60%, #15425e 100%);
}
.isn-bg-blue .isn-banner-num { color: #4da3e3; }
.isn-bg-dark {
	background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 100%);
}
.isn-bg-dark .isn-banner-num { color: #ff6a33; }
.isn-banner-btn { border-color: rgba(255,255,255,0.6); }
.isn-bg-orange .isn-banner-btn:hover, .isn-bg-dark .isn-banner-btn:hover { border-color: #ff6a33; color: #ff6a33; }
.isn-bg-blue .isn-banner-btn:hover { border-color: #4da3e3; color: #4da3e3; }
/* Responsive */
@media (max-width: 768px) {
	.isn-banner { height: auto; flex-direction: column; }
	.isn-banner-img { height: 180px; flex: none; }
	.isn-banner-text {
		width: 100%; min-width: 0; margin: 0; padding: 30px 25px;
		transform: skew(0deg, 0deg);
	}
	.isn-banner-text-inner { transform: skew(0deg, 0deg); }
	.isn-banner.isn-banner-reverse { flex-direction: column; }
	.isn-banner.isn-banner-reverse .isn-banner-text {
		transform: skew(0deg, 0deg); margin: 0; padding: 30px 25px;
	}
	.isn-banner.isn-banner-reverse .isn-banner-text-inner { transform: skew(0deg, 0deg); }
	.isn-banner-num { font-size: 32px; }
	.isn-banner-section h2.isn-banner-title { font-size: 24px; }
}

/* 0800 Shop-Bereich (im Stil von dtms.de/shop/0800-flex) */
.isn-shop-wrap { margin: 0 0 30px 0; }
.isn-shop-head {
	text-align: center; margin-bottom: 30px;
}
.isn-shop-head .isn-orange-line {
	width: 60px; height: 3px; background: #ff4400; margin: 0 auto 12px;
}
.isn-shop-head h2 {
	font-size: 26px; font-weight: 700; color: #1a1a1a; margin: 0 0 6px;
}
.isn-shop-head p {
	font-size: 15px; color: #666; max-width: 600px; margin: 0 auto;
}
/* Tarif-Tabs (dtms tabing-Stil) */
.isn-tabing { margin-bottom: 25px; }
.isn-tabing ul {
	display: flex; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; gap: 0;
}
.isn-tabing li {
	flex: 1; min-width: 130px; text-align: center;
}
.isn-tabing li a {
	display: block; padding: 16px 10px; text-decoration: none; color: #333;
	background: #f5f5f5; border: 1px solid #e0e0e0; border-bottom: 3px solid transparent;
	font-size: 14px; transition: all 0.2s;
}
.isn-tabing li a span { display: block; font-size: 13px; color: #666; margin-bottom: 2px; }
.isn-tabing li a strong { font-size: 22px; color: #1a1a1a; }
.isn-tabing li a:hover { background: #fff; border-bottom-color: #ff4400; }
.isn-tabing li.isn-tab-active a {
	background: #fff; border-bottom: 3px solid #ff4400; color: #ff4400;
}
.isn-tabing li.isn-tab-active a strong { color: #ff4400; }
/* Slider-Bereich */
.isn-slider-box {
	background: #fff; border: 1px solid #e0e0e0; border-radius: 6px;
	padding: 30px 25px; margin-bottom: 25px;
}
.isn-slider-box p.isn-slider-headline {
	text-align: center; font-size: 15px; color: #333; margin-bottom: 20px;
}
.isn-slider-box p.isn-slider-headline span {
	font-size: 32px; font-weight: 700; color: #ff4400; padding: 0 8px;
}
.isn-drag-bar {
	display: flex; align-items: center; gap: 15px; max-width: 600px; margin: 0 auto 25px;
}
.isn-drag-bar .isn-drag-icon {
	font-size: 24px; color: #666; flex: none;
}
.isn-drag-bar .isn-numberhold {
	text-align: center; flex: none; min-width: 90px;
}
.isn-drag-bar .isn-numberhold .isn-pct {
	font-size: 28px; font-weight: 700; color: #1a1a1a;
}
.isn-drag-bar .isn-numberhold .isn-pct-label {
	font-size: 13px; color: #666; margin-top: 2px;
}
.isn-drag-bar #isn-slider-range {
	flex: 1; min-width: 100px;
}
/* noUiSlider Anpassungen */
#isn-slider-range .noUi-connect { background: #ff4400; }
#isn-slider-range .noUi-handle {
	border-color: #ff4400; box-shadow: none;
}
#isn-slider-range.noUi-target { height: 8px; border: 1px solid #ddd; border-radius: 4px; }
#isn-slider-range .noUi-handle {
	width: 22px; height: 22px; border-radius: 50%; background: #ff4400;
	border: none; cursor: pointer; top: -8px; right: -11px;
}
#isn-slider-range .noUi-handle::before, #isn-slider-range .noUi-handle::after { display: none; }
/* Minuten-Details */
.isn-min-details {
	display: flex; justify-content: center; gap: 40px; flex-wrap: wrap;
	margin: 20px 0; text-align: left;
}
.isn-min-details .isn-min-box { font-size: 14px; color: #333; }
.isn-min-details .isn-min-box strong { font-size: 16px; }
.isn-min-details .isn-min-box .isn-min-check {
	color: #ff4400; margin-right: 4px;
}
.isn-total-cost {
	text-align: center; font-size: 28px; font-weight: 700; color: #1a1a1a; margin: 20px 0;
}
.isn-total-cost small { font-size: 16px; font-weight: 400; color: #666; }
.isn-shop-cta-btn {
	display: inline-block; padding: 12px 35px; font-size: 15px; font-weight: 700;
	text-transform: uppercase; color: #fff; background: #ff4400; border: none;
	border-radius: 4px; cursor: pointer; text-decoration: none; transition: background 0.2s;
}
.isn-shop-cta-btn:hover { background: #e63d00; color: #fff; text-decoration: none; }
.isn-shop-center { text-align: center; margin-top: 20px; }
.isn-shop-mwst { text-align: center; font-size: 12px; color: #999; margin-top: 15px; }
/* Benefits-Boxen (dtms checkBoxes-Stil) */
.isn-benefits {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin: 25px 0;
}
@media (max-width: 768px) {
	.isn-benefits { grid-template-columns: 1fr; }
}
.isn-benefit-box {
	background: #fff; border: 1px solid #e0e0e0; border-bottom: 3px solid #f0f0ed;
	border-radius: 4px; padding: 20px; min-height: 180px;
}
.isn-benefit-box strong {
	display: block; font-size: 15px; font-weight: 700; color: #1a1a1a; margin-bottom: 8px;
}
.isn-benefit-box strong .isn-check {
	color: #ff4400; margin-right: 6px; font-size: 18px;
}
.isn-benefit-box p { font-size: 13px; color: #666; line-height: 1.5; }
/* Shop-Section-Head (dtms head_w-sub) */
.isn-section-head { text-align: center; margin: 35px 0 20px; }
.isn-section-head .isn-orange-line {
	width: 60px; height: 3px; background: #ff4400; margin: 0 auto 10px;
}
.isn-section-head h2 {
	font-size: 24px; font-weight: 700; color: #1a1a1a; margin: 0 0 6px;
}
.isn-section-head p { font-size: 14px; color: #666; }
/* Step-Form-Wizard */
.isn-step-head {
	display: flex; align-items: center; gap: 10px; margin-bottom: 18px;
}
.isn-step-head .isn-step-num {
	display: inline-flex; align-items: center; justify-content: center;
	width: 28px; height: 28px; background: #ff4400; color: #fff;
	border-radius: 50%; font-size: 15px; font-weight: 700; flex: none;
}
.isn-step-head .isn-step-name { font-size: 20px; font-weight: 700; color: #1a1a1a; }
.isn-config-box {
	background: #fff; border: 1px solid #e0e0e0; border-radius: 6px; padding: 25px;
}
.isn-config-box h4 { font-size: 16px; font-weight: 600; color: #333; margin-bottom: 15px; }
.isn-config-row { margin-bottom: 18px; }
.isn-config-row label.isn-config-label {
	display: block; font-weight: 600; font-size: 14px; color: #333; margin-bottom: 5px;
}
.isn-config-row .isn-hint { font-size: 12px; color: #999; margin-top: 4px; }
.isn-config-row input[type="text"],
.isn-config-row input[type="tel"],
.isn-config-row input[type="email"],
.isn-config-row select {
	width: 100%; max-width: 400px; padding: 8px 10px; border: 1px solid #ccc;
	border-radius: 4px; font-size: 14px; box-sizing: border-box;
}
.isn-checkbox-row {
	display: flex; align-items: flex-start; gap: 8px; margin-bottom: 12px;
}
.isn-checkbox-row input[type="checkbox"] { margin-top: 3px; flex: none; }
.isn-checkbox-row label { font-size: 14px; color: #333; cursor: pointer; }
/* Stammdaten-Formular */
.isn-customer-type { display: flex; gap: 12px; margin-bottom: 25px; }
.isn-customer-type label {
	flex: 1; padding: 14px; text-align: center; border: 2px solid #ddd;
	border-radius: 6px; cursor: pointer; font-weight: 600; font-size: 15px;
	color: #333; transition: border-color 0.2s, background 0.2s;
}
.isn-customer-type label:hover { border-color: #ff4400; }
.isn-customer-type input[type="radio"] { display: none; }
.isn-customer-type input[type="radio"]:checked + label {
	border-color: #ff4400; background: #fff5f0; color: #ff4400;
}
.isn-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 20px; }
@media (max-width: 600px) {
	.isn-form-grid { grid-template-columns: 1fr; }
	.isn-tabing ul { flex-wrap: wrap; }
	.isn-tabing li { min-width: 50%; }
	.isn-drag-bar { flex-wrap: wrap; justify-content: center; }
}
.isn-form-grid .isn-field-full { grid-column: 1 / -1; }
.isn-form-field label {
	display: block; font-weight: 600; font-size: 13px; color: #333; margin-bottom: 4px;
}
.isn-form-field label .isn-req { color: #ff4400; }
.isn-form-field input,
.isn-form-field select {
	width: 100%; padding: 8px 10px; border: 1px solid #ccc; border-radius: 4px;
	font-size: 14px; box-sizing: border-box;
}
.isn-form-field input:focus, .isn-form-field select:focus { border-color: #ff4400; outline: none; }
.isn-form-field .isn-field-hint { font-size: 11px; color: #999; margin-top: 3px; }
/* Bestell-Button */
.isn-shop-submit { margin-top: 25px; text-align: right; }
.isn-shop-submit button {
	display: inline-block; padding: 14px 40px; font-size: 16px; font-weight: 700;
	text-transform: uppercase; letter-spacing: 1px; color: #fff;
	background: #ff4400; border: 2px solid #ff4400; border-radius: 4px;
	cursor: pointer; transition: background 0.2s;
}
.isn-shop-submit button:hover { background: #e63d00; border-color: #e63d00; }
.isn-shop-note { font-size: 12px; color: #999; margin-top: 10px; text-align: right; }
/* Zusammenfassung */
.isn-shop-summary {
	background: #fff; border: 1px solid #e0e0e0; border-radius: 6px;
	padding: 20px 25px; margin-top: 20px;
}
.isn-shop-summary h4 { font-size: 16px; font-weight: 700; color: #1a1a1a; margin-bottom: 10px; }
.isn-shop-summary .isn-summary-row {
	display: flex; justify-content: space-between; padding: 6px 0;
	border-bottom: 1px solid #eee; font-size: 14px;
}
.isn-shop-summary .isn-summary-row:last-child { border-bottom: none; }
.isn-shop-summary .isn-summary-row span:first-child { color: #666; }
.isn-shop-summary .isn-summary-row span:last-child { font-weight: 600; color: #1a1a1a; }
.isn-shop-summary .isn-summary-total { margin-top: 10px; padding-top: 10px; border-top: 2px solid #ff4400; }
.isn-shop-summary .isn-summary-total span:last-child { color: #ff4400; font-size: 18px; }
