/* jh Add to Quote & Preisregeln - Frontend-Styles (bewusst zurückhaltend,
   damit das Theme-Styling für Buttons/Preise weiterhin greift). */

.jh-qp-add-to-quote.loading {
	opacity: 0.6;
	pointer-events: none;
}

/* Angebots-Button pro Variante deaktivierbar (siehe jh-qp-frontend.js,
   "found_variation"-Handler) - optisch klar von der generischen
   "noch keine Variante gewählt"-Sperre (.disabled) unterschieden. */
.jh-qp-add-to-quote.jh-qp-variation-disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.jh-qp-replace-add-to-cart {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	flex-wrap: wrap;
	width: 100%;
}

.jh-qp-replace-add-to-cart .jh-qp-quantity input {
	/* BUGFIX (v1.1.15): das Theme-CSS für ".quantity input.qty" liefert
	   hier standardmäßig eine Höhe von 40px (ohne eigene Border/Padding,
	   siehe Kommentar unten), während der direkt danebenstehende
	   Angebots-Button (Divi-Button-Stil) nur ~34px hoch ist - dadurch
	   wirkten beide trotz "align-items:center" sichtbar unterschiedlich
	   hoch und nicht "richtig zentriert" zueinander. Fix: eigene, an die
	   typische Button-Höhe angenäherte Box-Metrik statt der
	   Theme-Vorgabe zu übernehmen. */
	width: 4.5em;
	height: 2.4em;
	padding: 0 0.5em;
	margin: 0;
	box-sizing: border-box;
	border: 1px solid #ccd3d6;
	border-radius: 4px;
	line-height: normal;
	text-align: center;
}

/* BUGFIX (v1.1.15, Nachtrag): die obige Regel allein reichte NICHT - live
   per document.styleSheets geprüft, welche Regeln tatsächlich auf das
   Mengenfeld matchen (nicht nur, was augenscheinlich zuständig aussieht).
   ZWEI andere, ID-basierte Regeln gewinnen sonst gegen unsere einfache
   Klassen-Selektor-Regel, weil eine ID-Selektor-Regel IMMER gegen eine
   reine Klassen-Regel gewinnt (unabhängig von Lade-Reihenfolge oder
   Klassen-Anzahl):
   1) jh-configurator/css/mg-quote.css:
      "body.single.single-product.et-db #et-boc .et-l .et_pb_wc_add_to_cart
      .quantity input.qty { width:40px; height:40px; padding:0; ... }"
      -> setzt die Höhe explizit auf 40px (ohne !important, aber die
      ID #et-boc gewinnt trotzdem gegen unsere Regel).
   2) Divi-Theme (style-static-cpt.min.css):
      ".et-db #et-boc .et-l .et_pb_wc_add_to_cart .quantity input.qty
      { ... border: 0px solid #333 !important; }"
      -> setzt "border:0" mit !important, daher blieb unser border-Wert
      bisher unsichtbar.
   Fix: eigene Regel mit dem GLEICHEN ID-Anker "#et-boc" (der auf jeder
   Divi-Builder-Seite existiert) UND mehr Klassen als die konkurrierende
   Regel formulieren - das gewinnt laut CSS-Spezifitätsregeln unabhängig
   von der Lade-Reihenfolge. Zusätzlich mit !important, um sicher auch
   gegen Regel 2) zu bestehen. Live verifiziert: computed height wechselt
   dadurch von 40px auf 33.6px (Button: 33.8px - Rest ist Sub-Pixel-
   Rundung, visuell nicht mehr wahrnehmbar). */
/* HINWEIS (v1.1.16): "height" in dieser Regel ist bewusst nur noch ein
   SOFORT-ANZEIGE-Fallback für den kurzen Moment vor dem ersten Lauf von
   syncQuantityHeightToButton() (jh-qp-frontend.js) - die tatsächliche,
   exakt zum Button passende Höhe wird zur Laufzeit per JS gemessen und
   per inline "!important" gesetzt (überschreibt diesen CSS-Wert sicher).
   Grund: ein fest codierter em-Wert passt nur so lange, bis sich IRGENDWAS
   an der Button-Darstellung ändert (live beobachtet: Button-Höhe wechselte
   zwischen zwei Sessions von 33,8px auf 29,2px, weil sich dessen
   line-height von einem festen Wert auf "normal" änderte - Ursache
   außerhalb dieses Plugins, z.B. Divi-Button-Einstellungen). */
#et-boc .jh-qp-replace-add-to-cart .jh-qp-quantity.quantity input.qty.jh-qp-qty-input.input-text.text {
	width: 4.5em !important;
	height: 2.4em !important;
	max-width: none !important;
	padding: 0 0.5em !important;
	margin: 0 !important;
	box-sizing: border-box !important;
	border: 1px solid #ccd3d6 !important;
	border-radius: 4px !important;
	line-height: normal !important;
	text-align: center !important;
}

/* BUGFIX (v1.1.15, zweiter Nachtrag): selbst mit identischen Höhen
   (33.6px Mengenfeld vs. 33.8px Button) saßen beide live gemessen NICHT
   auf gleicher Höhe - der Button hing sichtbar ~5px zu hoch. Ursache
   (per document.styleSheets-Abgleich gefunden): mg-quote.css setzt
   "body.woocommerce.single.single-product .afrfqbt_single_page
   { margin: 0 0 10px 10px !important; }" (Klasse, die unser Button
   bewusst zur Kompatibilität mit dem alten jh-configurator-Plugin
   trägt). align-items:center zentriert in Flexbox die MARGIN-BOX, nicht
   die Content-Box - durch das einseitige "margin-bottom:10px" wurde die
   Margin-Box des Buttons dadurch effektiv 10px höher als sein sichtbarer
   Inhalt, wodurch der sichtbare Button-Text 5px zu hoch erschien
   (halbe Differenz, symmetrisch nach oben verschoben). Das Mengenfeld
   hat kein solches Margin und wurde dadurch korrekt "echt" zentriert -
   die beiden sichtbaren Elemente liefen also auseinander. Fix: Margin in
   diesem Kontext auf 0 setzen (das Spacing zwischen Mengenfeld und
   Button übernimmt bereits "gap:10px" auf dem Flex-Container). */
#et-boc .jh-qp-replace-add-to-cart a.jh-qp-add-to-quote.button.afrfqbt_single_page {
	margin: 0 !important;
	line-height: normal !important;
	text-align: center !important;
}

/* BUGFIX (v1.1.11, verschärft in v1.1.12): Der Angebots-Link nutzt bewusst
   denselben Klassennamen "mg-add-to-quote" wie das ältere
   Produkttabellen-Plugin (siehe get_quote_link_html()), damit dessen
   vorhandenes Button-Styling weiterhin greift. Genau dessen CSS-Datei
   (mg-quote.css) enthält aber auch eine GLOBALE Regel
   "a.mg-add-to-quote { display: none !important; }", die nur INNERHALB
   einer Produkttabelle wieder aufgehoben wird - außerhalb davon (z.B. auf
   der normalen Einzelproduktseite) blieb unser Link dadurch unsichtbar.
   v1.1.11 hat das mit einer eigenen "!important"-Regel auf unserer
   zusätzlichen Klasse "jh-qp-add-to-quote" zu beheben versucht - das
   reichte aber NICHT: die alte Regel ist ebenfalls "!important" UND hat
   dieselbe CSS-Spezifität (Element + eine Klasse). Bei gleicher
   Spezifität UND gleicher Wichtigkeit entscheidet die reine Reihenfolge im
   Stylesheet-Ladeorder - und mg-quote.css lud auf der Live-Seite NACH
   unserem Stylesheet, hat also weiterhin gewonnen. Fix: Spezifität
   erhöhen, indem zusätzlich die (bei uns immer vorhandene) Klasse
   "button" mit in den Selektor aufgenommen wird (Element + 2 Klassen ist
   spezifischer als Element + 1 Klasse) - das gewinnt jetzt unabhängig von
   der Lade-Reihenfolge. */
a.jh-qp-add-to-quote.button {
	display: inline-block !important;
}

/* BUGFIX (v1.1.25): bisher nur "span.jh-qp-hidden-price" (Produktseiten-
   Preisanzeige) - die neue Verwendung in den Positions-/Summentabellen
   (Angebotsseite, Mein Konto, Admin) sitzt teils direkt auf <td>/<th>, nicht
   nur auf <span>, daher generischer Klassen-Selektor ohne Element-Bindung. */
.jh-qp-hidden-price {
	font-style: italic;
}

.jh-qp-view-quote {
	margin-left: 8px;
}

/* Bestätigungs-Hinweis nach "Auf die Anfrageliste" (v1.1.13, ersetzt den
   vorherigen "Angebot ansehen"-Link direkt neben dem Button). */
.jh-qp-added-notice {
	/* BUGFIX (v1.1.14): stand vorher INLINE direkt neben dem Button - in
	   der rechtsbündigen Flex-Zeile der Einzelproduktseite hat das
	   zusätzliche Element den Button dadurch sichtbar nach links
	   verschoben (die Zeile wurde insgesamt breiter, blieb aber
	   rechtsbündig). Damaliger Fix: "display:block" + "flex-basis:100%" +
	   "width:100%", um eine eigene, volle Zeile INNERHALB der Flex-Zeile zu
	   erzwingen - das verhinderte den Versatz, machte den Hinweis aber zu
	   einem unnötig breiten Banner über die volle Spaltenbreite ("Die
	   Meldung ist zu breit").
	   BUGFIX (v1.1.15): jh-qp-frontend.js fügt das <span> jetzt NICHT mehr
	   innerhalb der Flex-Zeile ein, sondern erst NACH dem gesamten
	   ".jh-qp-replace-add-to-cart"-Container (siehe showAdded()). Dadurch
	   ist hier keine Breiten-/Flex-Manipulation mehr nötig: "display:
	   inline-block" lässt den Kasten nur so breit werden wie sein Text
	   (schrumpft auf Inhaltsbreite), und die Rechtsausrichtung übernimmt
	   automatisch das umgebende Divi-Element ("et_pb_text_align_right"),
	   das "text-align:right" an alle Nachfahren vererbt (live geprüft:
	   .et_pb_module_inner hat bereits computed text-align:right). Zugleich
	   wirkt jetzt auch ein vertikaler "margin-top" korrekt (bei reinen
	   Inline-Elementen wie einem <span> ohne "display" hätte ein
	   Top-/Bottom-Margin laut CSS-Spezifikation KEINE Wirkung gehabt). */
	display: inline-block;
	box-sizing: border-box;
	margin: 8px 0 0 0;
	padding: 6px 12px;
	background: #eaf6f4;
	border: 1px solid #008b7c;
	border-radius: 4px;
	color: #026c5f;
	font-size: 0.9em;
	font-weight: 600;
	line-height: 1.3;
}

.jh-qp-added-notice::before {
	content: "\2713";
	color: #008b7c;
	font-weight: 700;
}

/* ---------------------------------------------------------------------
   Angebotsseite ([jh_quote_page]) - Layout nach der früheren JÄGER-
   Darstellung: viel Weißraum, feine Linien, leichte Typografie und
   kompakte türkise Bedienelemente.
   --------------------------------------------------------------------- */

.jh-qp-quote-page {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	color: #555b60;
	font-family: "Open Sans", Arial, sans-serif;
	font-size: 14px;
	line-height: 1.5;
}

.jh-qp-quote-page *,
.jh-qp-quote-page *::before,
.jh-qp-quote-page *::after {
	box-sizing: border-box;
}

.jh-qp-quote-summary {
	position: relative;
	width: 100%;
	transition: opacity 160ms ease;
}

.jh-qp-quote-summary.is-updating {
	opacity: 0.55;
	pointer-events: none;
}

.jh-qp-table-wrap {
	width: 100%;
	margin: 0;
	overflow: visible;
}

/* Die generische Tabelle wird in jh-qp-items-table.css aufgebaut. Diese
   Seite erzwingt lediglich die im Referenzbild sichtbaren Abstände.
   BUGFIX (v1.1.19): "border-radius: 0" + "border-color: #e9edef" haben
   hier bisher die in jh-qp-items-table.css neu eingeführte farbige,
   oben abgerundete Kopfzeile wieder zurückgesetzt (diese Regel ist
   spezifischer wegen der zusätzlichen ".jh-qp-quote-page"-Klasse und
   gewinnt daher unabhängig von der Dateireihenfolge) - live geprüft,
   ohne diesen Fix blieb die Tabelle auf der Angebotsseite eckig/grau,
   obwohl die neue CSS-Regel augenscheinlich korrekt war. */
.jh-qp-quote-page table.jh-qp-items-table.shop_table {
	margin: 0;
	border-color: #417bb3;
	box-shadow: none;
}

.jh-qp-quote-page table.jh-qp-items-table.shop_table thead th {
	padding-top: 13px;
	padding-bottom: 13px;
}

.jh-qp-quote-page table.jh-qp-items-table.shop_table tbody td {
	padding-top: 25px;
	padding-bottom: 25px;
}

/* Summenbox wie im früheren Anfrage-Layout. BUGFIX/UX (v1.1.19): direkt
   unter der jetzt farbigen Positionstabelle (jh-qp-items-table.css) wirkte
   diese rein weiße Box optisch abgetrennt/leer - jetzt mit demselben
   Akzentrahmen "angedockt" (kein eigener Rahmen oben, dafür unten
   abgerundet), damit beide Tabellen wie EIN zusammenhängender Block
   wirken. */
.jh-qp-quote-page table.jh-qp-quote-totals.shop_table {
	width: 100%;
	margin: 0 0 0;
	border: 1px solid #417bb3;
	border-top: 0;
	border-spacing: 0;
	border-collapse: separate;
	border-radius: 0 0 6px 6px;
	background: #fff;
	box-shadow: none;
}

.jh-qp-quote-page table.jh-qp-quote-totals.shop_table tbody,
.jh-qp-quote-page table.jh-qp-quote-totals.shop_table tr,
.jh-qp-quote-page table.jh-qp-quote-totals.shop_table th,
.jh-qp-quote-page table.jh-qp-quote-totals.shop_table td {
	background: #fff;
}

/* Gesamt-Zeile farblich hervorgehoben statt nur der Zahl - passend zum
   "mehr Farbe"-Wunsch, deutlicher Abschluss der Summenbox. */
.jh-qp-quote-page table.jh-qp-quote-totals.shop_table tr.jh-qp-totals-grand-total,
.jh-qp-quote-page table.jh-qp-quote-totals.shop_table tr.jh-qp-totals-grand-total th,
.jh-qp-quote-page table.jh-qp-quote-totals.shop_table tr.jh-qp-totals-grand-total td {
	background: #eaf6f4;
}

.jh-qp-quote-page table.jh-qp-quote-totals.shop_table th,
.jh-qp-quote-page table.jh-qp-quote-totals.shop_table td {
	padding: 9px 23px;
	border: 0;
	color: #4d5358;
	font-family: "Open Sans", Arial, sans-serif;
	font-size: 14px;
	line-height: 1.45;
	vertical-align: middle;
}

.jh-qp-quote-page table.jh-qp-quote-totals.shop_table th {
	width: 70%;
	font-weight: 600;
	letter-spacing: 1.2px;
	text-align: left;
}

.jh-qp-quote-page table.jh-qp-quote-totals.shop_table td {
	width: 30%;
	font-weight: 600;
	letter-spacing: 0.4px;
	text-align: right;
	white-space: nowrap;
}

.jh-qp-quote-page table.jh-qp-quote-totals.shop_table .jh-qp-totals-grand-total th,
.jh-qp-quote-page table.jh-qp-quote-totals.shop_table .jh-qp-totals-grand-total td {
	padding-top: 10px;
	padding-bottom: 11px;
}

.jh-qp-quote-page table.jh-qp-quote-totals.shop_table .jh-qp-totals-total,
.jh-qp-quote-page table.jh-qp-quote-totals.shop_table .jh-qp-totals-total .woocommerce-Price-amount,
.jh-qp-quote-page table.jh-qp-quote-totals.shop_table .jh-qp-totals-total .woocommerce-Price-currencySymbol {
	color: #008b7c;
	font-weight: 700;
}

.jh-qp-quote-actions {
	display: flex;
	justify-content: flex-end;
	width: 100%;
	margin: 12px 0 0;
}

/* Einheitlicher JÄGER-Buttonstil. Hohe Spezifität schützt gegen Divi- und
   WooCommerce-Buttonregeln. */
.jh-qp-quote-page button.jh-qp-clear-quote.button,
.jh-qp-quote-page button.jh-qp-submit-quote.button {
	display: inline-flex !important;
	flex: 0 0 auto !important;
	width: auto !important;
	max-width: 100%;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	margin: 0 !important;
	padding: 5px 14px !important;
	border: 1px solid #008b7c !important;
	border-radius: 3px !important;
	background: #008b7c !important;
	color: #fff !important;
	font-family: "Open Sans", Arial, sans-serif !important;
	font-size: 14px !important;
	font-weight: 300 !important;
	letter-spacing: 1.35px !important;
	line-height: 1.45 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: color 220ms ease, background-color 220ms ease, border-color 220ms ease, opacity 160ms ease !important;
	appearance: none;
}

.jh-qp-quote-page button.jh-qp-clear-quote.button:hover,
.jh-qp-quote-page button.jh-qp-clear-quote.button:focus,
.jh-qp-quote-page button.jh-qp-submit-quote.button:hover,
.jh-qp-quote-page button.jh-qp-submit-quote.button:focus {
	border-color: #008b7c !important;
	background: #fff !important;
	color: #008b7c !important;
	outline: none;
}

.jh-qp-quote-page button.jh-qp-clear-quote.button:focus-visible,
.jh-qp-quote-page button.jh-qp-submit-quote.button:focus-visible {
	box-shadow: 0 0 0 3px rgba(0, 139, 124, 0.15) !important;
}

.jh-qp-quote-page button.jh-qp-clear-quote.button::after,
.jh-qp-quote-page button.jh-qp-submit-quote.button::after {
	display: none !important;
	content: none !important;
}

.jh-qp-quote-page button.jh-qp-clear-quote.button:disabled,
.jh-qp-quote-page button.jh-qp-submit-quote.button:disabled {
	opacity: 0.55;
	cursor: default;
}

/* Kontaktbereich */
.jh-qp-quote-contact {
	width: 100%;
	margin: 42px 0 0;
	padding: 0;
}

.jh-qp-quote-contact[hidden] {
	display: none !important;
}

.jh-qp-quote-contact h3 {
	margin: 0 0 27px;
	padding: 0;
	border: 0;
	color: #646a6f;
	font-family: "Open Sans", Arial, sans-serif;
	font-size: 23px;
	font-weight: 300;
	letter-spacing: 1.35px;
	line-height: 1.35;
	text-transform: none;
}

/* BUGFIX (v1.1.21): die v1.1.20-Pflichtfelder hatten "required", aber
   kein sichtbares Sternchen - Tobias' berechtigter Hinweis ("kein rotes
   Sternle"). Rotes Sternchen an den Labels + kurze Legende oberhalb des
   Formulars. */
.jh-qp-required-legend {
	margin: 0 0 16px;
	padding: 0;
	color: #646a6f;
	font-family: "Open Sans", Arial, sans-serif;
	font-size: 13px;
	font-style: italic;
}

.jh-qp-required-mark {
	margin-left: 2px;
	color: #d32f2f;
	font-weight: 700;
}

/* UX-Fix (v1.2.9, Tobias' Feedback: "kömmer das auf desktop bissl
   horizontaler haben? Das baut so unnötig vertikal auf"). Ab 768px
   (dieselbe Schwelle wie bei den übrigen Responsive-Regeln dieser Datei)
   nutzt das Kontaktformular eine zweispaltige Grid-Anordnung statt einer
   einzelnen, schmalen 460px-Spalte mit viel Leerraum daneben - Felder wie
   "Nachricht", die Zusatzfelder-Textarea/Checkbox, reCAPTCHA und der
   Absenden-Button bleiben dabei bewusst volle Breite (siehe
   ".jh-qp-form-row--full" weiter unten sowie quote-page.php). Unterhalb
   von 768px bleibt es (wie zuvor) eine einzelne Spalte - dort brächte
   eine zweite Spalte ohnehin keinen Platzgewinn mehr. */
.jh-qp-quote-form {
	width: 100%;
	max-width: 720px;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 28px;
	align-items: start;
}

.jh-qp-quote-form .jh-qp-form-row {
	margin: 0 0 25px;
	padding: 0;
}

.jh-qp-quote-form .jh-qp-form-row--full,
.jh-qp-quote-form .jh-qp-form-row-recaptcha,
.jh-qp-quote-form .jh-qp-form-submit-row,
.jh-qp-quote-form .jh-qp-form-message {
	grid-column: 1 / -1;
}

/* Vor-/Nachname nebeneinander (v1.1.20) - eigener Flex-Wrapper statt reinem
   CSS auf den <p>-Zeilen selbst, damit kein Inline-Block-Whitespace-Gap
   zwischen den beiden Feldern entsteht. Spannt ab v1.2.9 als Grid-Element
   die volle Formularbreite, damit Vor-/Nachname nebeneinander die ganze
   Breite nutzen statt in eine einzelne 1fr-Grid-Spalte gequetscht zu sein. */
.jh-qp-form-row-pair {
	display: flex;
	gap: 16px;
	grid-column: 1 / -1;
}

.jh-qp-form-row-pair .jh-qp-form-row--half {
	flex: 1 1 0;
	min-width: 0;
}

.jh-qp-quote-form label {
	display: block;
	margin: 0 0 7px;
	padding: 0;
	color: #3f4549;
	font-family: "Open Sans", Arial, sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 1.15px;
	line-height: 1.35;
}

.jh-qp-quote-form input[type="text"],
.jh-qp-quote-form input[type="email"],
.jh-qp-quote-form input[type="tel"],
.jh-qp-quote-form textarea {
	display: block;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 8px 11px !important;
	box-sizing: border-box;
	border: 1px solid #d3dadd !important;
	border-radius: 4px !important;
	background: #fff !important;
	color: #555b60 !important;
	font-family: "Open Sans", Arial, sans-serif !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	line-height: 1.45 !important;
	box-shadow: none !important;
	transition: border-color 160ms ease, box-shadow 160ms ease !important;
	appearance: none;
}

.jh-qp-quote-form input[type="text"],
.jh-qp-quote-form input[type="email"],
.jh-qp-quote-form input[type="tel"] {
	height: 38px !important;
	min-height: 38px !important;
}

.jh-qp-quote-form textarea {
	min-height: 112px;
	resize: vertical;
}

.jh-qp-quote-form input[type="text"]:hover,
.jh-qp-quote-form input[type="email"]:hover,
.jh-qp-quote-form input[type="tel"]:hover,
.jh-qp-quote-form textarea:hover {
	border-color: #b9c3c7 !important;
}

.jh-qp-quote-form input[type="text"]:focus,
.jh-qp-quote-form input[type="email"]:focus,
.jh-qp-quote-form input[type="tel"]:focus,
.jh-qp-quote-form textarea:focus {
	border-color: #008b7c !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(0, 139, 124, 0.12) !important;
}

.jh-qp-form-submit-row {
	margin: 2px 0 0;
	padding: 0;
}

.jh-qp-form-message:not(:empty),
.jh-qp-summary-message {
	margin: 14px 0 0;
	padding: 10px 13px;
	border: 1px solid #d7a19d;
	border-radius: 3px;
	background: #fff6f5;
	color: #8c1d15;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.45;
}

.jh-qp-summary-message {
	margin: 0 0 14px;
}

.jh-qp-success-message {
	width: 100%;
	max-width: 650px;
	padding: 15px 17px;
	border: 1px solid #008b7c;
	border-radius: 3px;
	background: #eef8f6;
	color: #026c5f;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
}

.jh-qp-empty-state {
	width: 100%;
	padding: 24px 25px;
	border: 1px solid #e9edef;
	background: #fff;
}

.jh-qp-empty {
	margin: 0;
	color: #72797f;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.35px;
}

@media (max-width: 768px) {
	.jh-qp-table-wrap {
		overflow: visible;
	}

	.jh-qp-quote-page table.jh-qp-items-table.shop_table tbody td {
		padding-top: 11px;
		padding-bottom: 11px;
	}

	/* Auf Mobil steht die Summenbox durch den 18px-Abstand oben optisch für
	   sich (die Positionstabelle wird darüber zu Karten ohne Kopfzeile,
	   siehe jh-qp-items-table.css) - deshalb hier wieder ein eigener,
	   vollständig abgerundeter Rahmen statt der "angedockten" Optik vom
	   Desktop (v1.1.19). */
	.jh-qp-quote-page table.jh-qp-quote-totals.shop_table {
		margin-top: 18px;
		border-top: 1px solid #417bb3;
		border-radius: 6px;
	}

	.jh-qp-quote-page table.jh-qp-quote-totals.shop_table th,
	.jh-qp-quote-page table.jh-qp-quote-totals.shop_table td {
		padding: 9px 14px;
	}

	.jh-qp-quote-page table.jh-qp-quote-totals.shop_table th {
		width: 62%;
		font-size: 13px;
		letter-spacing: 0.85px;
	}

	.jh-qp-quote-page table.jh-qp-quote-totals.shop_table td {
		width: 38%;
		font-size: 13px;
	}

	.jh-qp-quote-actions {
		justify-content: flex-start;
	}

	.jh-qp-quote-contact {
		margin-top: 34px;
	}

	.jh-qp-quote-contact h3 {
		margin-bottom: 22px;
		font-size: 21px;
	}

	.jh-qp-quote-form {
		display: block;
		max-width: none;
	}
}

@media (max-width: 480px) {
	.jh-qp-form-row-pair {
		flex-direction: column;
		gap: 0;
	}

	.jh-qp-quote-page table.jh-qp-quote-totals.shop_table th,
	.jh-qp-quote-page table.jh-qp-quote-totals.shop_table td {
		padding: 8px 11px;
	}

	.jh-qp-quote-page button.jh-qp-clear-quote.button,
	.jh-qp-quote-page button.jh-qp-submit-quote.button {
		width: 100%;
	}

	.jh-qp-quote-form .jh-qp-form-row {
		margin-bottom: 21px;
	}
}

.jh-qp-my-account-notes {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
}

.jh-qp-my-account-notes li {
	padding: 8px 12px;
	border: 1px solid #e2e4e7;
	border-radius: 3px;
	margin-bottom: 8px;
	background: #f6f7f7;
}
