/* Büro Straube – Inhouse
   Farben kommen über Inline-Style (--bs-ih-primary / --bs-ih-accent); hier Fallbacks. */
.bs-ih {
	--bs-ih-primary: var(--bs-ih-primary, #445505);
	--bs-ih-accent: var(--bs-ih-accent, #ff9900);
	--bs-ih-line: rgba(68, 85, 5, .16);
	--bs-ih-ink: #3a3a38;
	max-width: 1080px;
	margin: 0 auto;
	color: var(--bs-ih-ink);
}

.bs-ih * { box-sizing: border-box; }

/* Meldungen */
.bs-ih-msg {
	border-radius: 10px;
	padding: 1.1rem 1.3rem;
	margin: 0 0 1.5rem;
	font-size: 1.12rem;
	font-weight: 600;
	line-height: 1.4;
	border-left-width: 6px;
}
.bs-ih-ok { background: #eef4e0; border: 1px solid #c4d79a; border-left: 6px solid #6f8f2e; color: #38491a; }
.bs-ih-error { background: #fdeceb; border: 1px solid #f0b6b1; border-left: 6px solid #b3271f; color: #8a2620; }

/* Fester Vollbreiten-Hinweis ganz oben (per wp_footer auf Body-Ebene) */
.bs-ih-topbanner{position:fixed;top:0;left:0;right:0;z-index:99999;margin:0;padding:.85rem 2.6rem .85rem 1rem;font-size:1rem;line-height:1.4;font-weight:600;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.18);}
.bs-ih-topbanner.bs-ih-ok{background:var(--bs-ih-primary,#445505);color:#fff;}
.bs-ih-topbanner.bs-ih-error{background:#b3450a;color:#fff;}
.bs-ih-topbanner a{color:#fff;text-decoration:underline;}
.bs-ih-topbanner-x{position:absolute;top:50%;right:.55rem;transform:translateY(-50%);border:0;background:transparent;color:inherit;font-size:1.5rem;line-height:1;cursor:pointer;padding:0 .3rem;}

/* Kopf */
.bs-ih-head { margin-bottom: 1.4rem; }
.bs-ih-title {
	color: var(--bs-ih-primary);
	font-size: 1.9rem;
	line-height: 1.15;
	margin: 0 0 .5rem;
}
.bs-ih-head p { margin: 0 0 .6rem; }

/* Preis-Infobox */
.bs-ih-pricebox {
	background: #f7f8f1;
	border: 1px solid var(--bs-ih-line);
	border-radius: 12px;
	padding: 1.1rem 1.25rem;
	margin-bottom: 1.6rem;
}
.bs-ih-price-figs {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2.2rem;
	margin-bottom: .7rem;
}
.bs-ih-price-fig { display: flex; flex-direction: column; }
.bs-ih-price-zone {
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: #6b6a66;
}
.bs-ih-price-val {
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--bs-ih-primary);
}
.bs-ih-price-unit { font-size: .85rem; color: #6b6a66; }
.bs-ih-price-note { margin: 0; font-size: .95rem; }

/* Layout: einspaltig – Themen zuerst, Auswahl/Formular darunter */
.bs-ih-layout { display: block; }

.bs-ih-select-intro { margin: 0 0 1.2rem; font-size: 1rem; }

/* Katalog-Panels – zwei klar getrennte Blöcke */
.bs-ih-cat {
	border: 1px solid var(--bs-ih-line);
	border-radius: 12px;
	overflow: hidden;
	margin-bottom: 1.6rem;
}
.bs-ih-cat-head {
	padding: .9rem 1.15rem 1rem;
	border-bottom: 1px solid var(--bs-ih-line);
}
.bs-ih-cat--moeglich .bs-ih-cat-head { background: #eef3e0; border-left: 6px solid var(--bs-ih-primary); }
.bs-ih-cat--fertig .bs-ih-cat-head { background: #fff1dc; border-left: 6px solid var(--bs-ih-accent); }
.bs-ih-cat-tag {
	display: inline-block;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #fff;
	padding: .14rem .55rem;
	border-radius: 999px;
	margin-bottom: .4rem;
}
.bs-ih-cat--moeglich .bs-ih-cat-tag { background: var(--bs-ih-primary); }
.bs-ih-cat--fertig .bs-ih-cat-tag { background: var(--bs-ih-accent); }
.bs-ih-cat-title { color: var(--bs-ih-primary); font-size: 1.85rem; font-weight: 700; margin: 0; line-height: 1.15; min-width: 0; overflow-wrap: break-word; word-break: break-word; hyphens: auto; }
@media (max-width: 480px) { .bs-ih-cat-title { font-size: 1.4rem; } }
.bs-ih-cat-intro { margin: .3rem 0 0; color: #5c5b57; font-size: .95rem; }
.bs-ih-cat-body { padding: 1rem 1.15rem 1.1rem; }
.bs-ih-cat--moeglich .bs-ih-cat-body { background: #fbfcf7; }
.bs-ih-cat--fertig .bs-ih-cat-body { background: #fffdf9; }

.bs-ih-group { border: 0; margin: 0 0 1.1rem; padding: 0; }
.bs-ih-group:last-child { margin-bottom: 0; }
.bs-ih-group-title {
	font-weight: 700;
	color: var(--bs-ih-primary);
	padding: 0 0 .3rem;
	margin: 0 0 .4rem;
	font-size: 1.05rem;
	border-bottom: 1px dotted var(--bs-ih-line);
	width: 100%;
}

/* Themen als übersichtliche Liste mit echtem Hakenfeld */
.bs-ih-opts {
	display: grid;
	grid-template-columns: 1fr;
	gap: .1rem .8rem;
}
@media (min-width: 620px) {
	.bs-ih-opts { grid-template-columns: 1fr 1fr; }
}
.bs-ih-opt {
	display: flex;
	align-items: flex-start;
	gap: .55rem;
	padding: .4rem .5rem;
	border-radius: 8px;
	cursor: pointer;
	font-size: .95rem;
	line-height: 1.3;
	transition: background .12s ease;
}
.bs-ih-opt:hover { background: rgba(68, 85, 5, .07); }
.bs-ih-opt .bs-ih-topic {
	flex: 0 0 auto;
	width: 1.05rem;
	height: 1.05rem;
	margin: .12rem 0 0;
	accent-color: var(--bs-ih-primary);
	cursor: pointer;
}
.bs-ih-opt-text { flex: 1 1 auto; }
.bs-ih-opt.is-checked { background: #eef3e0; }
.bs-ih-opt.is-checked .bs-ih-opt-text { font-weight: 600; color: #38491a; }
.bs-ih-opt:focus-within { outline: 2px solid var(--bs-ih-accent); outline-offset: 1px; }

/* Auswahl-Übersicht + Formular (unter den Themen) */
.bs-ih-summary {
	border: 1px solid var(--bs-ih-line);
	border-radius: 12px;
	padding: 1.2rem 1.25rem 1.35rem;
	background: #fff;
	box-shadow: 0 1px 6px rgba(0, 0, 0, .06);
	max-width: 680px;
	margin: 1.6rem 0 0;
}
.bs-ih-sum-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	margin-bottom: .6rem;
}
.bs-ih-sum-title { margin: 0; font-size: 1.2rem; color: var(--bs-ih-primary); }
.bs-ih-count {
	min-width: 1.7rem;
	height: 1.7rem;
	padding: 0 .4rem;
	border-radius: 999px;
	background: var(--bs-ih-accent);
	color: #fff;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: .95rem;
}
.bs-ih-sum-list { list-style: none; margin: 0 0 .4rem; padding: 0; max-height: 230px; overflow: auto; }
.bs-ih-sum-empty { color: #6b6a66; font-size: .92rem; padding: .2rem 0; }
.bs-ih-sum-item {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: .35rem 0;
	border-bottom: 1px solid var(--bs-ih-line);
	font-size: .92rem;
}
.bs-ih-sum-label { flex: 1 1 auto; }
.bs-ih-sum-x {
	flex: 0 0 auto;
	border: 0;
	background: transparent;
	color: #b03a30;
	font-size: 1.15rem;
	line-height: 1;
	cursor: pointer;
	padding: 0 .15rem;
}
.bs-ih-sum-x:hover { color: #7d231c; }
.bs-ih-reset {
	border: 0;
	background: none;
	color: #6b6a66;
	font-size: .85rem;
	text-decoration: underline;
	cursor: pointer;
	padding: 0;
	margin: 0 0 .6rem;
}
.bs-ih-price {
	margin: .4rem 0 1rem;
	padding: .6rem .75rem;
	background: #f7f8f1;
	border-left: 3px solid var(--bs-ih-accent);
	border-radius: 6px;
	font-size: .92rem;
	min-height: 1.2rem;
}
.bs-ih-price:empty { display: none; }

/* Kontaktfelder */
.bs-ih-fields-title { font-size: 1.1rem; margin: .3rem 0 .7rem; color: var(--bs-ih-primary); }
.bs-ih-field { margin: 0 0 .7rem; }
.bs-ih-field label { display: block; font-size: .9rem; font-weight: 600; margin-bottom: .2rem; }
.bs-ih-field input[type="text"],
.bs-ih-field input[type="email"],
.bs-ih-field input[type="tel"],
.bs-ih-field input[type="number"],
.bs-ih-field textarea {
	width: 100%;
	border: 1px solid var(--bs-ih-line);
	border-radius: 8px;
	padding: .55rem .65rem;
	font: inherit;
	background: #fff;
}
.bs-ih-field input:focus,
.bs-ih-field textarea:focus {
	outline: 2px solid var(--bs-ih-accent);
	outline-offset: 1px;
	border-color: var(--bs-ih-primary);
}
.bs-ih-req { color: var(--bs-ih-accent); }
.bs-ih-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.bs-ih-ortset { border: 0; padding: 0; margin: 0 0 .7rem; }
.bs-ih-ortset legend { font-size: .9rem; font-weight: 600; padding: 0; margin-bottom: .3rem; }
.bs-ih-radio { display: flex; align-items: center; gap: .4rem; font-size: .92rem; margin: .15rem 0; cursor: pointer; }
.bs-ih-radio input { margin: 0; }

.bs-ih-consent label { display: block; font-weight: 400; font-size: .88rem; }
.bs-ih-consent input { margin-right: .35rem; }

.bs-ih .bs-ih-submit { width: 100%; margin: .4rem 0 .3rem; }
.bs-ih-note { font-size: .82rem; color: #6b6a66; margin: 0; text-align: center; }

/* Service-Hinweis */
.bs-ih-services {
	margin-top: 1.8rem;
	padding: 1.1rem 1.25rem;
	background: #f7f8f1;
	border: 1px solid var(--bs-ih-line);
	border-radius: 12px;
}
.bs-ih-services-text { margin: 0 0 .6rem; }
.bs-ih-services-call { margin: 0; display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.bs-ih-telnr { color: #555; font-size: .95rem; }

/* Honeypot */
.bs-ih-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ===== Ergaenzungen v1.0.2: CTA-Buttons, Sprunglinks, Querverweise ===== */

.bs-ih-cat { scroll-margin-top: 90px; }

/* CTA-Buttons im Preisblock */
.bs-ih-cta { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.1rem; }
.bs-ih .bs-ih-cta-btn {
	display: inline-block;
	padding: .55em 1.05em;
	font-size: .9rem;
	font-weight: 600;
	line-height: 1.2;
	border-radius: 0;
	text-decoration: none;
	border: 2px solid var(--bs-ih-primary, #445505);
	transition: background .15s ease, color .15s ease;
}
.bs-ih .bs-ih-cta-btn.is-primary,
.bs-ih .bs-ih-cta-btn.is-ghost {
	background: var(--bs-ih-primary, #445505) !important;
	border-color: var(--bs-ih-primary, #445505) !important;
	color: #fff !important;
}
.bs-ih .bs-ih-cta-btn.is-primary:hover,
.bs-ih .bs-ih-cta-btn.is-primary:focus,
.bs-ih .bs-ih-cta-btn.is-ghost:hover,
.bs-ih .bs-ih-cta-btn.is-ghost:focus {
	background: #36410b !important;
	border-color: #36410b !important;
	color: #fff !important;
}

/* Button 'zu den offenen Fortbildungen' – eigene Zeile, orange (wie im Seminar-Plugin) */
.bs-ih-cta-open { margin-top: .6rem; }
.bs-ih .bs-ih-cta-btn.is-open {
	background: var(--bs-ih-accent, #ff9900) !important;
	border-color: var(--bs-ih-accent, #ff9900) !important;
	color: #fff !important;
}
.bs-ih .bs-ih-cta-btn.is-open:hover,
.bs-ih .bs-ih-cta-btn.is-open:focus {
	background: #e08600 !important;
	border-color: #e08600 !important;
	color: #fff !important;
}

/* Katalog-Kopf mit Sprung-Link */
.bs-ih-cat-headrow { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .4rem 1rem; }
.bs-ih .bs-ih-jump {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: flex-start;
	gap: .3em;
	font-size: .82rem;
	font-weight: 600;
	text-decoration: none;
	background: var(--bs-ih-primary, #445505) !important;
	color: #fff !important;
	border: 1px solid var(--bs-ih-primary, #445505) !important;
	border-radius: 0;
	padding: .25em .7em;
	white-space: nowrap;
}
.bs-ih .bs-ih-jump:hover,
.bs-ih .bs-ih-jump:focus { background: #36410b !important; border-color: #36410b !important; color: #fff !important; }

/* Themen-Zeile + optionaler Querverweis auf offenes Seminar */
.bs-ih-opt-row { display: flex; flex-direction: column; }
.bs-ih .bs-ih-xref {
	margin: -.15rem 0 .4rem 1.6rem;
	font-size: .82rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--bs-ih-primary, #445505) !important;
}
.bs-ih .bs-ih-xref:hover,
.bs-ih .bs-ih-xref:focus { color: #36410b !important; text-decoration: underline; }

/* Fertige Fortbildungen: Untergruppen klarer abgegrenzt */
.bs-ih-cat--fertig .bs-ih-group {
	background: #fff;
	border: 1px solid var(--bs-ih-line, rgba(68,85,5,.16));
	border-radius: 10px;
	padding: .85rem .95rem;
	margin-bottom: 1rem;
}

/* Service-Buttons (Telefon + Mail) einheitlich, eckig */
.bs-ih-services-call .button.bs-ih-tel,
.bs-ih-services-call .button.bs-ih-mail {
	background: var(--bs-ih-primary, #445505);
	color: #fff;
	border: 2px solid var(--bs-ih-primary, #445505);
	border-radius: 0;
	box-shadow: none;
}
.bs-ih-services-call .button.bs-ih-tel:hover,
.bs-ih-services-call .button.bs-ih-mail:hover,
.bs-ih-services-call .button.bs-ih-tel:focus,
.bs-ih-services-call .button.bs-ih-mail:focus { background: #36410b; border-color: #36410b; color: #fff; }

/* ===== Ergaenzungen v1.0.3: Anreise-Link, Ort-Zeilen ===== */

.bs-ih-ort-row { display: flex; align-items: center; flex-wrap: wrap; gap: .2rem .5rem; }
.bs-ih a.bs-ih-anreise {
	display: inline-block;
	font-size: .78rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	background: var(--bs-ih-primary, #445505) !important;
	color: #fff !important;
	border: 1px solid var(--bs-ih-primary, #445505) !important;
	border-radius: 0;
	padding: .2em .6em;
	white-space: nowrap;
}
.bs-ih a.bs-ih-anreise:hover,
.bs-ih a.bs-ih-anreise:focus { background: #36410b !important; border-color: #36410b !important; color: #fff !important; }

/* ===== Ergaenzungen v1.0.4: Pfeile als einfarbiger Text, Adress-Hinweis ===== */

/* Pfeile NICHT als Emoji: \FE0E erzwingt Textdarstellung; Farbe wird vom Link geerbt
   (weiss im gruenen Sprung-Button, gruen beim Querverweis). */
.bs-ih .bs-ih-jump::before { content: "\2192\FE0E"; flex: 0 0 auto; font-weight: 600; }
.bs-ih .bs-ih-xref::before { content: "\2197\FE0E\00A0"; }

/* Adress-Hinweis am Nachrichtenfeld – nur sichtbar, wenn nicht hidden */
.bs-ih .bs-ih-addr-note {
	margin: .1rem 0 .4rem;
	color: #b3450a;
	font-size: .85rem;
	font-weight: 600;
}
.bs-ih .bs-ih-addr-note:not([hidden]) { display: block; }

/* ===== Ergaenzungen v1.0.5: Praefix in der Auswahl ===== */
.bs-ih .bs-ih-sum-kind { font-weight: 700; color: var(--bs-ih-primary, #445505); }

/* ===== v1.0.8: Kontaktbloecke (Ansprechpartner / Firma) ===== */
.bs-ih-contactset {
	border: 1px solid #e6dcc8;
	border-radius: 8px;
	padding: .8rem .9rem .3rem;
	margin: 0 0 .9rem;
}
.bs-ih-contactset legend {
	font-size: .92rem;
	font-weight: 700;
	color: var(--bs-ih-primary);
	padding: 0 .35rem;
}
@media (max-width: 480px) {
	.bs-ih-field-row { grid-template-columns: 1fr; }
	.bs-ih-cat-headrow { flex-direction: column; align-items: flex-start; }
	.bs-ih .bs-ih-jump {
		white-space: normal;
		max-width: 100%;
		overflow-wrap: break-word;
		word-break: break-word;
		align-self: flex-start;
	}
}

/* Fehlerhinweis direkt im Formular (zusätzlich zum oberen Hinweis) */
.bs-ih-error-inline { margin: 0 0 1.1rem; }

/* v1.0.15: Ueberschriften-Schrift (Yanone Kaffeesatz) in allen Buttons, ohne Versalien, ohne kuenstliche Fettung */
.bs-ih-cta-btn,
.bs-ih-jump,
.bs-ih-anreise,
.bs-ih-reset,
.bs-ih-tel,
.bs-ih-mail {
  font-family: var(--bs-btn-font, "Yanone Kaffeesatz", sans-serif) !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
}
