/*
Theme Name: TopMedia Salient Child
Template: salient
Version: 1.0.0

TopMedia Design-Adapter für Salient / WordPress
Quelle: alte skin.css der bestehenden Website, angepasst für ein Salient Child Theme.

Hinweis zu Fonts:
- Die alte Seite nutzt "Playfair Display" für Überschriften und "Source Sans Pro" für Fließtext.
- Die Font-Dateien liegen lokal im Ordner "fonts" auf gleicher Ebene wie diese style.css.
- Die Einbindung erfolgt über @font-face mit relativen Pfaden.
*/

/*@import('fontawesome.min.css');*/

/* =========================================================
   0. Lokale Schriftarten
   ========================================================= */

/* Source Sans Pro */
@font-face {
  font-family: "Source Sans Pro";
  src: url("fonts/source-sans-pro-v14-latin-300.woff2") format("woff2"),
       url("fonts/source-sans-pro-v14-latin-300.woff") format("woff"),
       url("fonts/source-sans-pro-v14-latin-300.ttf") format("truetype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Source Sans Pro";
  src: url("fonts/source-sans-pro-v14-latin-regular.woff2") format("woff2"),
       url("fonts/source-sans-pro-v14-latin-regular.woff") format("woff"),
       url("fonts/source-sans-pro-v14-latin-regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Source Sans Pro";
  src: url("fonts/source-sans-pro-v14-latin-italic.woff2") format("woff2"),
       url("fonts/source-sans-pro-v14-latin-italic.woff") format("woff"),
       url("fonts/source-sans-pro-v14-latin-italic.ttf") format("truetype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Source Sans Pro";
  src: url("fonts/source-sans-pro-v14-latin-600.woff2") format("woff2"),
       url("fonts/source-sans-pro-v14-latin-600.woff") format("woff"),
       url("fonts/source-sans-pro-v14-latin-600.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Source Sans Pro";
  src: url("fonts/source-sans-pro-v14-latin-700.woff2") format("woff2"),
       url("fonts/source-sans-pro-v14-latin-700.woff") format("woff"),
       url("fonts/source-sans-pro-v14-latin-700.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Source Sans Pro";
  src: url("fonts/source-sans-pro-v14-latin-900.woff2") format("woff2"),
       url("fonts/source-sans-pro-v14-latin-900.woff") format("woff"),
       url("fonts/source-sans-pro-v14-latin-900.ttf") format("truetype");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

/* Playfair Display */
@font-face {
  font-family: "Playfair Display";
  src: url("fonts/playfair-display-v22-latin-regular.woff2") format("woff2"),
       url("fonts/playfair-display-v22-latin-regular.woff") format("woff"),
       url("fonts/playfair-display-v22-latin-regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Playfair Display";
  src: url("fonts/playfair-display-v22-latin-500.woff2") format("woff2"),
       url("fonts/playfair-display-v22-latin-500.woff") format("woff"),
       url("fonts/playfair-display-v22-latin-500.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Playfair Display";
  src: url("fonts/playfair-display-v22-latin-600.woff2") format("woff2"),
       url("fonts/playfair-display-v22-latin-600.woff") format("woff"),
       url("fonts/playfair-display-v22-latin-600.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Playfair Display";
  src: url("fonts/playfair-display-v22-latin-800.woff2") format("woff2"),
       url("fonts/playfair-display-v22-latin-800.woff") format("woff"),
       url("fonts/playfair-display-v22-latin-800.ttf") format("truetype");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Playfair Display";
  src: url("fonts/playfair-display-v22-latin-900.woff2") format("woff2"),
       url("fonts/playfair-display-v22-latin-900.woff") format("woff"),
       url("fonts/playfair-display-v22-latin-900.ttf") format("truetype");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}


/* =========================================================
   1. Design Tokens
   ========================================================= */

:root {
  --tm-red: #C90119;
  --tm-black: #000000;
  --tm-text: #353535;
  --tm-muted: #575757;
  --tm-light: #efefef;
  --tm-warm-gray: #A9A194;
  --tm-white: #ffffff;

  --tm-font-body: "Source Sans Pro", Arial, sans-serif;
  --tm-font-heading: "Playfair Display", Georgia, serif;

  --tm-transition-fast: 0.35s ease-out;
  --tm-transition: 0.45s ease-out;


    --bs-blue: #0d6efd;
    --bs-indigo: #6610f2;
    --bs-purple: #6f42c1;
    --bs-pink: #d63384;
    --bs-red: #dc3545;
    --bs-orange: #fd7e14;
    --bs-yellow: #ffc107;
    --bs-green: #198754;
    --bs-teal: #20c997;
    --bs-cyan: #0dcaf0;
    --bs-black: #000;
    --bs-white: #fff;
    --bs-gray: #6c757d;
    --bs-gray-dark: #343a40;
    --bs-gray-100: #f8f9fa;
    --bs-gray-200: #e9ecef;
    --bs-gray-300: #dee2e6;
    --bs-gray-400: #ced4da;
    --bs-gray-500: #adb5bd;
    --bs-gray-600: #6c757d;
    --bs-gray-700: #495057;
    --bs-gray-800: #343a40;
    --bs-gray-900: #212529;
    --bs-primary: #0d6efd;
    --bs-secondary: #6c757d;
    --bs-success: #198754;
    --bs-info: #0dcaf0;
    --bs-warning: #ffc107;
    --bs-danger: #dc3545;
    --bs-light: #f8f9fa;
    --bs-dark: #212529;
    --bs-primary-rgb: 13, 110, 253;
    --bs-secondary-rgb: 108, 117, 125;
    --bs-success-rgb: 25, 135, 84;
    --bs-info-rgb: 13, 202, 240;
    --bs-warning-rgb: 255, 193, 7;
    --bs-danger-rgb: 220, 53, 69;
    --bs-light-rgb: 248, 249, 250;
    --bs-dark-rgb: 33, 37, 41;
    --bs-white-rgb: 255, 255, 255;
    --bs-black-rgb: 0, 0, 0;
    --bs-body-color-rgb: 33, 37, 41;
    --bs-body-bg-rgb: 255, 255, 255;
    --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
    --bs-body-font-family: var(--bs-font-sans-serif);
    --bs-body-font-size: 1rem;
    --bs-body-font-weight: 400;
    --bs-body-line-height: 1.5;
    --bs-body-color: #212529;
    --bs-body-bg: #fff;
    --bs-border-width: 1px;
    --bs-border-style: solid;
    --bs-border-color: #dee2e6;
    --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
    --bs-border-radius: 0.375rem;
    --bs-border-radius-sm: 0.25rem;
    --bs-border-radius-lg: 0.5rem;
    --bs-border-radius-xl: 1rem;
    --bs-border-radius-2xl: 2rem;
    --bs-border-radius-pill: 50rem;
    --bs-link-color: #0d6efd;
    --bs-link-hover-color: #0a58ca;
    --bs-code-color: #d63384;
    --bs-highlight-bg: #fff3cd;
}

/* =========================================================
   2. Globale Basis
   ========================================================= */

html,
body {
  min-height: 100%;
}

body {
  font-family: var(--tm-font-body);
  /*font-size: 20px;*/
  font-size: 1.25rem;
  font-weight: 400;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum";
  text-rendering: optimizeLegibility;
  color: var(--tm-text);
  background: var(--tm-white);
}

body,
#ajax-content-wrap,
.container-wrap,
.material .container-wrap {
  background-color: var(--tm-white);
}

* {
  scrollbar-width: thin;
  scrollbar-color: var(--tm-red) var(--tm-white);
}

*::-webkit-scrollbar {
  width: 15px;
}

*::-webkit-scrollbar-track {
  background: var(--tm-white);
}

*::-webkit-scrollbar-thumb {
  background-color: var(--tm-red);
  border-radius: 0;
  border: none;
}

/* Alte Seite entfernte fast alle Outlines. Für Barrierefreiheit besser nur sauber stylen. */
:focus-visible {
  outline: 2px solid var(--tm-red) !important;
  outline-offset: 3px;
}

/* =========================================================
   3. Links
   ========================================================= */

a {
  color: var(--tm-black);
  text-decoration: underline;
  transition: color var(--tm-transition), background-color var(--tm-transition), border-color var(--tm-transition);
}

a:hover,
a:focus {
  color: var(--tm-red);
}

#ajax-content-wrap a:not(.nectar-button):not(.wp-block-button__link):hover {
  color: var(--tm-red);
}

.swsbutton a,
.no-underline a {
  text-decoration: none;
  font-size: 1.25rem;
}

.swsbutton a:hover,
.swsbutton a:focus {
  color: #fff !important;
}

.wpb_wrapper .nectar-cta.has-icon .link_wrap {
  display: inline-flex !important;
  align-items: center !important;
  color: var(--tm-black);
  font-size: 1.25rem;
}

.wpb_wrapper .nectar-cta.has-icon .link_wrap i {
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 24px !important;
  min-width: 24px !important;
  margin-right: 20px !important;
  text-align: center !important;
  line-height: 1 !important;
}

.wpb_wrapper .nectar-cta.has-icon .link_wrap .link_text {
  display: inline-block !important;
}

.nectar-button-type .link_wrap .link_text {
  display: inline-block !important;
  color: var(--tm-black);
}

.swsbutton .link_wrap .link_text,
.wpb_wrapper .swsbutton.has-icon .link_wrap i {
  display: inline-block !important;
  color: var(--bs-white);
}

/* =========================================================
   4. Typografie
   ========================================================= */

h1,
h2,
h3,
h4,
h5,
h6,
.row .col h1,
.row .col h2,
.row .col h3,
.row .col h4,
.row .col h5,
.row .col h6,
.nectar-split-heading,
.nectar-fancy-ul h1,
.nectar-fancy-ul h2,
.nectar-fancy-ul h3 {
  font-family: var(--tm-font-heading);
  color: var(--tm-red);
  font-weight: 600;
  line-height: 1.18;
}

h1,
.h1,
h2,
.h2,
.row .col h1,
.row .col h2 {
  font-weight: 800;
}

h3,
.h3,
h4,
.h4,
.row .col h3,
.row .col h4 {
  font-weight: 600;
}

h2,
.h2,
.row .col h2 {
  font-size: 2.5rem;
  margin-bottom: 2rem;
}

h3,
.h3,
.row .col h3 {
  font-size: 1.875rem;
}

h2.tm-title-wrapper,
.tm-title-wrapper h2,
.title-wrapper h2 {
  font-size: 3.75rem;
  font-weight: 500;
  color: var(--tm-black) !important;
}

.tm-title-wrapper h2 span,
.title-wrapper h2 span {
  background-color: var(--tm-red);
  color: var(--tm-white);
  padding-left: 0.2rem;
  padding-right: 0.2rem;
}

/* Salient Text-Spalten */
.wpb_text_column p:last-child,
.nectar-fancy-box p:last-child {
  margin-bottom: 0;
}

/* =========================================================
   5. Layout-Hilfen / Sektionen
   ========================================================= */

.tm-wrapper,
.wrapper {
  padding: 150px 0;
}

.tm-wrapper-top,
.wrapper-top {
  padding-top: 150px;
}

.tm-wrapper-bottom,
.wrapper-btm {
  padding-bottom: 150px;
}

.tm-bg-primary,
.bg-primary {
  background-color: var(--tm-red) !important;
}

.tm-bg-secondary,
.bg-secondary {
  background-color: var(--tm-light) !important;
}

.tm-bg-dark,
.bg-dark {
  background-color: var(--tm-black) !important;
}

.tm-bg-light,
.bg-light {
  background-color: var(--tm-warm-gray) !important;
}

.tm-bg-dark,
.tm-bg-dark h1,
.tm-bg-dark h2,
.tm-bg-dark h3,
.tm-bg-dark h4,
.tm-bg-dark h5,
.tm-bg-dark h6,
.bg-dark,
.bg-dark h1,
.bg-dark h2,
.bg-dark h3,
.bg-dark h4,
.bg-dark h5,
.bg-dark h6 {
  color: var(--tm-white);
}

/* =========================================================
   6. Salient Header / Navigation
   ========================================================= */

#header-outer {
  background-color: var(--tm-white) !important;
  border-bottom: 2px solid var(--tm-light);
  box-shadow: none !important;
  transition: background-color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
}

#header-outer.small-nav,
#header-outer.scrolled-down,
#header-outer[data-lhe="animated_underline"].small-nav {
  box-shadow: 0 22px 22px -18px rgba(0, 0, 0, 0.185) !important;
}

#header-outer #logo img,
#header-outer .logo-spacing img {
  max-height: 90px;
  width: auto;
  transition: max-height var(--tm-transition-fast);
}

#header-outer.small-nav #logo img,
#header-outer.scrolled-down #logo img {
  max-height: 58px;
}

#top nav > ul > li {
  margin-right: 2rem;
}

#top nav > ul > li:last-child {
  margin-right: 0;
}

#top nav > ul > li > a,
#header-outer #top .sf-menu > li > a,
#slide-out-widget-area .inner .off-canvas-menu-container li a {
  font-family: var(--tm-font-body);
  color: var(--tm-black) !important;
  font-weight: 400;
  text-decoration: none;
}

#top nav > ul > li > a:hover,
#top nav > ul > li > a:focus,
#top nav > ul > li.current-menu-item > a,
#top nav > ul > li.current_page_item > a,
#header-outer #top .sf-menu > li.current-menu-item > a,
#header-outer #top .sf-menu > li.current_page_item > a {
  color: var(--tm-red) !important;
}

#header-outer[data-lhe="animated_underline"] #top nav > ul > li > a:after,
#header-outer #top .sf-menu > li.current-menu-item > a:after,
#header-outer #top .sf-menu > li.current_page_item > a:after {
  border-color: var(--tm-red) !important;
  background-color: var(--tm-red) !important;
}

/* Dropdowns */
#header-outer .sf-menu li ul,
#header-outer nav > ul > .megamenu > .sub-menu {
  border: none !important;
  border-radius: 0 !important;
  background: var(--tm-white) !important;
  box-shadow: 3px 18px 25px -8px rgba(0, 0, 0, 0.37) !important;
}

#header-outer .sf-menu li ul li a,
#header-outer nav > ul > .megamenu > .sub-menu a {
  color: #333 !important;
  font-size: 1.125rem;
  line-height: 1.4;
  text-decoration: none;
}

#header-outer .sf-menu li ul li a:hover,
#header-outer .sf-menu li ul li a:focus,
#header-outer .sf-menu li ul li.current-menu-item > a {
  color: var(--tm-red) !important;
  background-color: var(--tm-light) !important;
}

/* Mobile Burger im alten TopMedia-Stil */
#header-outer .slide-out-widget-area-toggle a .lines-button:after,
#header-outer .slide-out-widget-area-toggle a .lines:before,
#header-outer .slide-out-widget-area-toggle a .lines:after,
#header-outer .slide-out-widget-area-toggle a .lines {
  background-color: var(--tm-warm-gray) !important;
}

#slide-out-widget-area a:hover,
#slide-out-widget-area a:focus {
  color: var(--tm-red) !important;
}

/* =========================================================
   7. Buttons / CTAs
   ========================================================= */

.btn,
.nectar-button,
body .nectar-button,
.wp-block-button__link,
input[type="submit"],
button[type="submit"],
.tm-button {
  transition: color var(--tm-transition-fast), background-color var(--tm-transition-fast), border-color var(--tm-transition-fast), opacity var(--tm-transition-fast);
  font-weight: 500;
  padding: 0.5rem 2rem;
  text-decoration: none !important;
  text-transform: uppercase;
  border-radius: 0.25rem !important;
  box-shadow: none !important;
}

.btn-default,
.btn-primary,
.nectar-button,
body .nectar-button.regular-button,
body .nectar-button.large,
.wp-block-button__link,
input[type="submit"],
button[type="submit"],
.tm-button-primary {
  color: var(--tm-white) !important;
  border: 1px solid var(--tm-red) !important;
  background-color: var(--tm-red) !important;
}

.btn-default:hover,
.btn-default:focus,
.btn-default:active,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.nectar-button:hover,
body .nectar-button:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover,
button[type="submit"]:hover,
.tm-button-primary:hover,
.tm-button-primary:focus {
  background-color: var(--tm-black) !important;
  border-color: var(--tm-black) !important;
  color: var(--tm-white) !important;
}

.btn-link,
.tm-button-link {
  color: var(--tm-black);
  background: transparent;
  border: none;
}

.btn-link:hover,
.btn-link:focus,
.tm-button-link:hover,
.tm-button-link:focus {
  color: var(--tm-red);
}

.nectar-button.see-through,
.nectar-button.see-through-2,
.tm-button-outline {
  color: var(--tm-black) !important;
  background-color: transparent !important;
  border: 1px solid var(--tm-black) !important;
}

.nectar-button.see-through:hover,
.nectar-button.see-through-2:hover,
.tm-button-outline:hover {
  color: var(--tm-white) !important;
  background-color: var(--tm-red) !important;
  border-color: var(--tm-red) !important;
}

/* =========================================================
   8. Hero / Slider Ersatz für Salient
   ========================================================= */

.tm-hero,
.vc_row.tm-hero,
.full-width-section.tm-hero {
  min-height: calc(100vh - 188px);
  max-height: 800px;
  background-color: #cecece;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  display: flex;
  align-items: center;
}

.tm-hero-caption,
.tm-hero .wpb_text_column,
.tm-hero .nectar-split-heading {
  max-width: 35%;
  color: var(--tm-black);
  font-size: 1.25rem;
  padding: 1rem;
  background-color: rgba(255, 255, 255, 0.75);
}

.tm-hero-caption h1,
.tm-hero-caption h2,
.tm-hero .wpb_text_column h1,
.tm-hero .wpb_text_column h2 {
  color: var(--tm-red);
  text-shadow: 1px 2px 3px var(--tm-white);
  font-size: 3.25rem;
  font-weight: 800 !important;
  hyphens: none;
  margin-bottom: 1.15rem;
  line-height: 1.4;
  display: inline-block;
}

.tm-hero-caption-right {
  margin-left: auto;
  text-align: right;
}

.tm-hero-caption-center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* =========================================================
   9. Footer
   ========================================================= */

#footer,
#footer-outer,
#footer-widgets,
#copyright {
  background-color: var(--tm-warm-gray) !important;
  color: #333;
  font-size: 1.25rem;
}

#footer-outer {
  border-top: 1px solid var(--tm-warm-gray);
}

#footer-outer h3,
#footer-outer .widget h4,
#footer-outer .widget h3 {
  display: none;
}

#footer a,
#footer-outer a,
#copyright a {
  color: #333;
  text-decoration: none;
}

#footer a:hover,
#footer-outer a:hover,
#footer-outer a:focus,
#copyright a:hover,
#copyright a:focus {
  color: var(--tm-red);
}

#footer-outer .social a,
#footer-outer .nectar-social a {
  font-size: 50px;
}

#to-top,
.scroll-top-btn {
  bottom: 50px !important;
}

/* =========================================================
   10. Formulare / Contact Form 7 / WPForms / Salient Forms
   ========================================================= */

::-webkit-input-placeholder { color: rgba(35, 35, 35, 0.6) !important; }
:-moz-placeholder { color: rgba(35, 35, 35, 0.6) !important; }
::-moz-placeholder { color: rgba(35, 35, 35, 0.6) !important; }
:-ms-input-placeholder { color: rgba(35, 35, 35, 0.6) !important; }
input::placeholder,
textarea::placeholder { color: rgba(35, 35, 35, 0.6) !important; }

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="phone"],
input[type="number"],
input[type="password"],
input[type="url"],
select,
textarea,
textarea.form-control,
body .gform_wrapper input[type="text"],
body .gform_wrapper input[type="email"],
body .gform_wrapper input[type="tel"],
body .gform_wrapper textarea,
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea,
.wpforms-field input:not([type="checkbox"]):not([type="radio"]),
.wpforms-field textarea,
.wpforms-field select {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid var(--tm-black) !important;
  background-color: transparent;
  color: var(--tm-black);
  border-radius: 0 !important;
  box-shadow: none !important;
  transition: all 0.5s ease-in-out;
}

input[type="text"]:hover,
input[type="text"]:focus,
input[type="email"]:hover,
input[type="email"]:focus,
input[type="tel"]:hover,
input[type="tel"]:focus,
input[type="date"]:hover,
input[type="date"]:focus,
input[type="phone"]:hover,
input[type="phone"]:focus,
input[type="number"]:hover,
input[type="number"]:focus,
input[type="password"]:hover,
input[type="password"]:focus,
input[type="url"]:hover,
input[type="url"]:focus,
select:hover,
select:focus,
textarea:hover,
textarea:focus,
.wpcf7 input:not([type="checkbox"]):not([type="radio"]):focus,
.wpcf7 textarea:focus,
.wpforms-field input:not([type="checkbox"]):not([type="radio"]):focus,
.wpforms-field textarea:focus,
.wpforms-field select:focus {
  background-color: rgba(255, 255, 255, 0.8);
  border-color: var(--tm-red) !important;
  color: var(--tm-black);
  box-shadow: none !important;
}

label,
.gfield_label,
.wpforms-field-label {
  font-weight: bold;
  font-size: 1.125rem;
  margin-bottom: 0.65rem;
}

label.required:after,
.gfield_contains_required .gfield_label:after,
.wpforms-required-label {
  color: var(--tm-red);
}

.form-check-input:checked,
input[type="checkbox"]:checked,
input[type="radio"]:checked {
  background-color: var(--tm-red);
  border-color: var(--tm-red);
}

/* =========================================================
   11. Akkordeons / Toggles
   ========================================================= */

.accordion .card-header,
.nectar-toggle .toggle-heading,
.toggle h3 a {
  background-color: transparent;
  border-bottom: none;
}

.accordion .card-header h4,
.nectar-toggle .toggle-heading h3,
.toggle h3 {
  font-size: 1.25rem;
  font-weight: bold;
  text-align: left;
  text-transform: none;
  margin: 0 !important;
}

.accordion .card-header .btn-link,
.nectar-toggle .toggle-heading a,
.toggle h3 a {
  color: var(--tm-black);
  font-size: 1.25rem;
  text-decoration: none;
}

.accordion .show .card-header .btn-link,
.accordion .card-header .btn-link:hover,
.accordion .card-header .btn-link:focus,
.nectar-toggle.open .toggle-heading a,
.nectar-toggle .toggle-heading a:hover,
.toggle.open h3 a,
.toggle h3 a:hover {
  color: var(--tm-red) !important;
}

.accordion > .card,
.nectar-toggle,
.toggle {
  background-color: transparent;
  border-radius: 0;
  border-left: none;
  border-right: none;
  border-color: #D3D3D3;
}

/* =========================================================
   12. Listen / Icons
   ========================================================= */

.custom-list ul,
.tm-check-list ul {
  padding-left: 0;
  margin: 0 0 1.5rem 1.55rem;
}

.custom-list li,
.tm-check-list li {
  list-style-type: none;
  padding-left: 0;
  margin-bottom: 0.25rem;
}

.custom-list li:before,
.tm-check-list li:before {
  content: "✓";
  display: inline-block;
  margin-left: -1.5rem;
  width: 1.5rem;
  color: var(--tm-red);
  font-weight: 700;
}

.keyfacts h4,
.tm-keyfacts h4 {
  color: var(--tm-text);
}

.keyfacts i,
.tm-keyfacts i {
  color: var(--tm-red);
}

/* =========================================================
   13. Teaser / Jobangebote / Content-Blöcke
   ========================================================= */

.c-joboffers-intro div.position-relative,
.tm-image-headline-box {
  width: 100%;
  height: 480px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  position: relative;
}

.c-joboffers-intro h2.position-absolute,
.tm-image-headline-box h2 {
  font-size: 4rem;
  font-weight: 500;
  left: 40px;
  bottom: 40px;
  width: 550px;
  position: absolute;
}

.c-joboffers-intro h2.position-absolute span,
.c-joboffers-intro div.txt h3 span,
.tm-highlight-red {
  background-color: var(--tm-red);
  color: var(--tm-white);
  padding-left: 0.2rem;
  padding-right: 0.2rem;
}

.c-joboffers-intro div.txt,
.tm-offset-text {
  padding-left: 40px;
}

.c-joboffers-intro div.txt h3,
.tm-offset-text h3 {
  font-size: 3.75rem;
  font-weight: 500;
  color: var(--tm-black);
}

#accordion-joboffers .card,
.tm-job-accordion .card {
  background-color: transparent;
}

#accordion-joboffers .border-top,
.tm-job-accordion .border-top {
  border-color: var(--tm-red) !important;
}

#accordion-joboffers button,
.tm-job-accordion button {
  box-shadow: none !important;
}

#accordion-joboffers button i,
.tm-job-accordion button i {
  font-size: 1.5rem;
  color: var(--tm-red);
}

#accordion-joboffers .card-header button span,
.tm-job-accordion .card-header button span {
  font-family: var(--tm-font-body) !important;
  font-size: 1.5rem !important;
  font-weight: 500;
  color: var(--tm-black) !important;
}

#accordion-joboffers .card-body,
.tm-job-accordion .card-body {
  padding-left: 3.5rem;
  width: 75%;
}

.c-initiative-application .border,
.tm-application-box {
  border-color: var(--tm-red) !important;
}

.c-initiative-application h4,
.tm-application-box h4 {
  font-size: 2rem;
  font-weight: 500;
  font-family: var(--tm-font-body);
}

.c-initiative-application .btn-default,
.tm-application-box .nectar-button {
  background-color: var(--tm-red) !important;
  border-color: var(--tm-white) !important;
  color: var(--tm-white) !important;
  display: block;
  width: 100%;
}

.c-initiative-application .btn-default:hover,
.c-initiative-application .btn-default:focus,
.tm-application-box .nectar-button:hover,
.tm-application-box .nectar-button:focus {
  color: var(--tm-red) !important;
  background-color: var(--tm-white) !important;
  border-color: var(--tm-red) !important;
}

/* =========================================================
   14. Video / Datenschutz-Overlay
   ========================================================= */

.gs-video-wrapper .fa-play-circle.position-absolute,
.tm-video-wrapper .play-icon {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.gs-video-wrapper .confirm-hover,
.tm-video-wrapper .confirm-hover {
  background-color: rgba(0, 0, 0, 0.9);
  width: 100%;
  height: 100%;
  left: 0;
  top: 100%;
  font-size: 0.8rem;
  transition: top 0.3s ease-in-out;
}

.gs-video-wrapper .confirm-hover p,
.tm-video-wrapper .confirm-hover p {
  font-size: 0.8rem !important;
  margin-bottom: 0;
}

.gs-video-wrapper .confirm-hover a,
.tm-video-wrapper .confirm-hover a {
  color: var(--tm-white) !important;
  text-decoration: underline;
}

.gs-video-wrapper .confirm-hover a:hover,
.gs-video-wrapper .confirm-hover .btn-link:hover,
.gs-video-wrapper .confirm-hover .btn-link:focus,
.tm-video-wrapper .confirm-hover a:hover {
  color: var(--tm-red) !important;
}

.gs-video-wrapper:hover .confirm-hover,
.tm-video-wrapper:hover .confirm-hover {
  top: 0;
}

.gs-video-wrapper span.font-weight-bold > span,
.tm-video-wrapper strong span {
  color: var(--tm-red);
}

.gs-video-wrapper .h4,
.tm-video-wrapper .h4 {
  font-size: 1.65rem;
}

/* =========================================================
   15. Maps / Datenschutz-Vorschau
   ========================================================= */

.simplemap,
.tm-simplemap {
  position: relative;
}

.simplemap iframe,
.tm-simplemap iframe {
  width: 100%;
}

.simplemap img.img-fluid,
.tm-simplemap img {
  filter: blur(4px);
  width: 100% !important;
}

#locationmap,
.tm-locationmap {
  overflow: hidden;
  height: 800px;
}

#locationmap .map-overlay,
#locationmap .google-map,
.tm-locationmap .map-overlay,
.tm-locationmap .google-map {
  width: 100%;
  height: 800px;
  top: 0;
}

#locationmap .map-preview-img,
.tm-locationmap .map-preview-img {
  left: 0;
  top: 0;
  width: 100%;
  height: 920px;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover !important;
  filter: blur(7px);
}

#locationmap .map-preview-content,
.tm-locationmap .map-preview-content {
  z-index: 10;
  top: 50%;
  transform: translateY(-50%);
}

#locationmap h3,
.tm-locationmap h3 {
  font-family: var(--tm-font-body);
}

/* =========================================================
   16. Pagination / Archive
   ========================================================= */

.pagination,
.page-numbers {
  margin-bottom: 0;
}

.page-link,
.page-numbers {
  color: #262626;
  background-color: transparent !important;
  border-color: transparent !important;
  text-decoration: none;
}

.page-item.active .page-link,
.page-link:hover,
.page-link:focus,
.page-numbers.current,
.page-numbers:hover,
.page-numbers:focus {
  color: var(--tm-red);
}

.page-item.active {
  border-bottom: 2px solid var(--tm-red);
}

.page-link:focus {
  box-shadow: none;
}

/* =========================================================
   17. Responsive
   ========================================================= */

@media (min-width: 1380px) {
  .container,
  body .container {
    max-width: 1350px;
  }
}

@media (min-width: 1480px) {
  .container,
  body .container {
    max-width: 1450px;
  }
}

@media (min-width: 1580px) {
  .container,
  body .container {
    max-width: 1520px;
  }
}

@media (min-width: 1680px) {
  .container,
  body .container {
    max-width: 1620px;
  }
}

@media (max-width: 1380px) {
  .c-joboffers-intro div.position-relative,
  .tm-image-headline-box {
    height: 420px;
  }
}

@media (max-width: 1200px) {
  body {
    font-size: 1rem;
  }

  h2,
  .h2,
  .row .col h2 {
    font-size: 1.875rem;
  }

  h3,
  .h3,
  .row .col h3 {
    font-size: 1.4rem;
  }

  #top nav > ul > li {
    margin-right: 1.5rem;
  }

  .c-joboffers-intro div.position-relative,
  .tm-image-headline-box {
    height: 380px;
  }

  .c-joboffers-intro h2.position-absolute,
  .tm-image-headline-box h2 {
    font-size: 3rem;
  }

  .c-joboffers-intro div.txt h3,
  .tm-offset-text h3 {
    font-size: 2.75rem;
  }
}

@media (max-width: 999px) {
  #header-outer #logo img,
  #header-outer.small-nav #logo img,
  #header-outer.scrolled-down #logo img {
    max-height: 58px;
  }

  #header-outer.scrolled-down,
  #header-outer.small-nav {
    box-shadow: none !important;
  }

  .tm-hero,
  .vc_row.tm-hero,
  .full-width-section.tm-hero {
    min-height: 520px;
  }

  .tm-hero-caption,
  .tm-hero .wpb_text_column,
  .tm-hero .nectar-split-heading {
    max-width: 70%;
  }

  #footer-outer,
  #footer-widgets,
  #copyright {
    font-size: 1rem;
  }

  #accordion-joboffers .card-body,
  .tm-job-accordion .card-body {
    width: 100%;
    padding-left: 1rem;
  }

  .c-joboffers-intro div.position-relative,
  .tm-image-headline-box {
    height: 300px;
  }
}

@media (max-width: 768px) {
  h2,
  .h2,
  .row .col h2 {
    font-size: 1.75rem;
  }

  h3,
  .h3,
  .row .col h3 {
    font-size: 1.375rem;
  }

  .tm-wrapper,
  .wrapper {
    padding: 100px 0;
  }

  .tm-wrapper-top,
  .wrapper-top {
    padding-top: 100px;
  }

  .tm-wrapper-bottom,
  .wrapper-btm {
    padding-bottom: 100px;
  }

  .tm-title-wrapper h2,
  .title-wrapper h2 {
    font-size: 2.75rem;
  }

  .tm-hero-caption,
  .tm-hero .wpb_text_column,
  .tm-hero .nectar-split-heading {
    max-width: 86%;
  }

  .tm-hero-caption h1,
  .tm-hero-caption h2,
  .tm-hero .wpb_text_column h1,
  .tm-hero .wpb_text_column h2 {
    font-size: 2.5rem;
  }

  .c-joboffers-intro div.position-relative,
  .tm-image-headline-box {
    height: 220px;
  }

  .c-joboffers-intro h2.position-absolute,
  .tm-image-headline-box h2 {
    font-size: 2.5rem;
    width: calc(100% - 80px);
  }

  .c-joboffers-intro div.txt h3,
  .tm-offset-text h3 {
    font-size: 2rem;
  }

  .accordion .card-header button i {
    font-size: 2.5rem;
  }

  .accordion .card-header h4 {
    font-size: 1.15rem;
    font-weight: 500;
  }
}

@media (max-width: 575px) {
  h2,
  .h2,
  .row .col h2 {
    font-size: 1.625rem;
  }

  h3,
  .h3,
  .row .col h3 {
    font-size: 1.3rem;
  }

  .tm-wrapper,
  .wrapper {
    padding: 50px 0;
  }

  .tm-wrapper-top,
  .wrapper-top {
    padding-top: 50px;
  }

  .tm-wrapper-bottom,
  .wrapper-btm {
    padding-bottom: 50px;
  }

  .tm-title-wrapper h2,
  .title-wrapper h2 {
    font-size: 1.75rem;
  }

  .tm-hero,
  .vc_row.tm-hero,
  .full-width-section.tm-hero {
    min-height: 420px;
  }

  .tm-hero-caption,
  .tm-hero .wpb_text_column,
  .tm-hero .nectar-split-heading {
    max-width: 100%;
    font-size: 1rem;
  }

  .tm-hero-caption h1,
  .tm-hero-caption h2,
  .tm-hero .wpb_text_column h1,
  .tm-hero .wpb_text_column h2 {
    font-size: 2rem;
  }

  .accordion .card-header button i {
    font-size: 2rem;
  }

  .accordion .card-header h4 {
    font-size: 1rem;
    font-weight: 500;
  }
}

@media (max-width: 480px) {
  #header-outer #logo img,
  #header-outer.small-nav #logo img,
  #header-outer.scrolled-down #logo img {
    max-height: 44px;
  }

  .page-header h1 {
    font-size: 2rem;
  }

  .container.my-5 {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }

  .c-joboffers-intro div.position-relative,
  .tm-image-headline-box {
    height: 160px;
  }

  .c-joboffers-intro h2.position-absolute,
  .tm-image-headline-box h2 {
    font-size: 2rem;
  }

  #accordion-joboffers .card-header button span,
  .tm-job-accordion .card-header button span {
    font-size: 1.25rem !important;
  }
}

@media (max-width: 380px) {
  body {
    font-size: 0.9rem;
  }

  h2,
  .h2,
  .row .col h2 {
    font-size: 1.375rem;
  }

  h3,
  .h3,
  .row .col h3 {
    font-size: 1.2rem;
  }

  .c-joboffers-intro div.position-relative,
  .tm-image-headline-box {
    height: 120px;
  }

  .c-joboffers-intro h2.position-absolute,
  .tm-image-headline-box h2 {
    font-size: 1.5rem;
    left: 0.5rem;
    bottom: 1rem;
  }

  .c-joboffers-intro div.txt,
  .tm-offset-text {
    padding-left: 0.5rem;
  }

  .c-joboffers-intro div.txt h3,
  .tm-offset-text h3 {
    font-size: 1.5rem;
  }

  #accordion-joboffers .card-header button span,
  .tm-job-accordion .card-header button span {
    font-size: 1rem !important;
  }
}

/* =========================================================
   20. Abgleich topmedia.gmbh -> topmedia.wudix.de
   Ergänzende Overrides für die Salient-/WordPress-Umsetzung
   Stand: 2026-07-01
   ========================================================= */

/* Alte Seite: Source Sans Pro 20px Body, Playfair Display rot für Headlines,
   klare Schwarz/Rot-Kontraste, große Weißräume und kantige Bootstrap-Optik. */

/* Salient setzt teils eigene Fontgrößen/Farben über sehr spezifische Selektoren.
   Diese Regeln ziehen das neue WordPress näher an die alte Skin-Optik. */
body,
body .container-wrap,
body p,
body .wpb_text_column,
body .wpb_text_column p,
body .row .col p,
body .nectar-highlighted-text,
body .main-content {
  font-family: var(--tm-font-body) !important;
  color: var(--tm-text);
  font-size: 20px;
  line-height: 1.5;
  font-weight: 400;
}

@media (max-width: 1200px) {
  body,
  body p,
  body .wpb_text_column p,
  body .row .col p {
    font-size: 1rem;
    line-height: 1.5;
  }
}

/* Headline-Hierarchie wie alte skin.css */
body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body .row .col h1,
body .row .col h2,
body .row .col h3,
body .row .col h4,
body .wpb_wrapper h1,
body .wpb_wrapper h2,
body .wpb_wrapper h3,
body .wpb_wrapper h4,
body .nectar-split-heading h1,
body .nectar-split-heading h2 {
  font-family: var(--tm-font-heading) !important;
  color: var(--tm-red) !important;
  letter-spacing: 0;
  text-transform: none;
}

body h1,
body .row .col h1 {
  font-size: 2.5rem !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
}

body h2,
body .row .col h2,
body .wpb_wrapper h2 {
  font-size: 2.5rem !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  margin-bottom: 2rem !important;
}

body h3,
body .row .col h3,
body .wpb_wrapper h3 {
  font-size: 1.875rem !important;
  line-height: 1.25 !important;
  font-weight: 600 !important;
}

body h4,
body .row .col h4,
body .wpb_wrapper h4 {
  font-size: 1.5rem !important;
  line-height: 1.3 !important;
  font-weight: 600 !important;
}

/* Header / Navigation: alte TopMedia-Optik auf Salient-Menü übertragen */
#header-outer,
#header-outer[data-lhe],
body[data-header-format] #header-outer {
  background: #fff !important;
  border-bottom: 2px solid var(--tm-light) !important;
  box-shadow: none !important;
}

#header-outer.small-nav,
#header-outer.scrolled-down {
  box-shadow: 0 22px 22px -18px rgba(0, 0, 0, 0.185) !important;
}

#header-outer #logo img,
#header-outer .logo-spacing img,
#header-outer .default-logo,
#header-outer .starting-logo {
  max-height: 95px !important;
  width: auto !important;
  transition: max-height .25s ease, width .25s ease;
}

#header-outer.small-nav #logo img,
#header-outer.scrolled-down #logo img,
#header-outer.small-nav .logo-spacing img,
#header-outer.scrolled-down .logo-spacing img {
  max-height: 60px !important;
}

#top nav > ul > li,
#header-outer #top .sf-menu > li {
  margin-right: 2rem;
}

#top nav > ul > li:last-child,
#header-outer #top .sf-menu > li:last-child {
  margin-right: 0;
}

#top nav > ul > li > a,
#header-outer #top .sf-menu > li > a,
#header-outer #top nav > ul > li > a,
body #header-outer[data-lhe] #top nav > ul > li > a {
  font-family: var(--tm-font-body) !important;
  color: var(--tm-black) !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  border-bottom: 5px solid transparent;
  transition: color .45s ease-out, border-color .45s ease-out;
}

#top nav > ul > li > a:hover,
#top nav > ul > li.current-menu-item > a,
#top nav > ul > li.current_page_item > a,
#top nav > ul > li.current-menu-ancestor > a,
#header-outer #top .sf-menu > li > a:hover,
#header-outer #top .sf-menu > li.current-menu-item > a,
#header-outer #top .sf-menu > li.current-menu-ancestor > a {
  color: var(--tm-red) !important;
  border-bottom-color: var(--tm-red);
}

/* Dropdown wie alte Seite */
#top .sf-menu li ul,
#header-outer .sf-menu li ul,
#header-outer nav > ul > .megamenu > ul.sub-menu {
  background: #fff !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: 3px 18px 25px -8px rgba(0,0,0,0.37) !important;
  padding: 0 !important;
}

#top .sf-menu li ul li a,
#header-outer .sf-menu li ul li a,
#header-outer nav > ul > .megamenu > ul.sub-menu li a {
  font-family: var(--tm-font-body) !important;
  background: transparent !important;
  color: #333 !important;
  font-size: 1.125rem !important;
  line-height: 40px !important;
  padding: 0 1rem !important;
  text-decoration: none !important;
}

#top .sf-menu li ul li a:hover,
#top .sf-menu li ul li.current-menu-item > a,
#header-outer .sf-menu li ul li a:hover,
#header-outer .sf-menu li ul li.current-menu-item > a {
  background: var(--tm-light) !important;
  color: var(--tm-red) !important;
}

/* Mobile Header / Menu */
#header-outer .mobile-search .icon-salient-search,
#header-outer #mobile-cart-link i,
#header-outer #mobile-menu .menu-title-text,
#header-outer .slide-out-widget-area-toggle a {
  color: var(--tm-black) !important;
}

#slide-out-widget-area,
#mobile-menu,
#slide-out-widget-area-bg.fullscreen {
  background: #fff !important;
}

#slide-out-widget-area .inner .off-canvas-menu-container li a,
#slide-out-widget-area.fullscreen .inner .off-canvas-menu-container li a,
#mobile-menu ul li a {
  font-family: var(--tm-font-body) !important;
  color: var(--tm-black) !important;
  font-size: 1.15rem !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
}

#slide-out-widget-area .inner .off-canvas-menu-container li a:hover,
#mobile-menu ul li a:hover {
  color: var(--tm-red) !important;
}

/* Hero / Startseite: falls Salient Full Width Sections oder Rows verwendet werden */
.tm-hero,
.home .main-content > .row:first-child,
body.home .wpb_row:first-of-type {
  position: relative;
}

.tm-hero-caption,
.home .tm-hero-caption,
.topmedia-hero-caption {
  width: 33%;
  min-width: 360px;
  padding: 1rem;
  background: rgba(255,255,255,0.75);
  color: var(--tm-black);
  font-size: 1.25rem;
}

.tm-hero-caption h1,
.tm-hero-caption h2,
.tm-hero-caption h3,
.topmedia-hero-caption h1,
.topmedia-hero-caption h2,
.topmedia-hero-caption h3 {
  color: var(--tm-red) !important;
  text-shadow: 1px 2px 3px #fff;
  font-size: 3.25rem !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
  margin-bottom: 1.15rem !important;
}

/* Salient Buttons an alte .btn-primary / .btn-default annähern */
body .nectar-button,
body .nectar-button.large,
body .nectar-button.medium,
body .wp-block-button__link,
body input[type="submit"],
body button[type="submit"],
body .wpcf7-submit,
body .gform_button,
body .wpforms-submit {
  font-family: var(--tm-font-body) !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  padding: .5rem 2rem !important;
  border-radius: .25rem !important;
  border: 1px solid var(--tm-red) !important;
  background: var(--tm-red) !important;
  color: #fff !important;
  box-shadow: none !important;
  transition: color .35s ease-out, background-color .35s ease-out, border-color .35s ease-out !important;
}

body .nectar-button:hover,
body .nectar-button:focus,
body .wp-block-button__link:hover,
body input[type="submit"]:hover,
body button[type="submit"]:hover,
body .wpcf7-submit:hover,
body .gform_button:hover,
body .wpforms-submit:hover {
  background: var(--tm-black) !important;
  border-color: var(--tm-black) !important;
  color: #fff !important;
  transform: none !important;
}

/* Sektionen wie alte wrapper-Klassen */
body .vc_row.tm-wrapper,
body .wpb_row.tm-wrapper,
body .vc_row.wrapper,
body .wpb_row.wrapper {
  padding-top: 150px !important;
  padding-bottom: 150px !important;
}

/* Inhalt der Startseite luftiger und näher am alten Bootstrap-Layout */
body .main-content .wpb_text_column,
body .main-content .nectar-fancy-box,
body .main-content .vc_column-inner {
  box-sizing: border-box;
}

/* Die Verleger / Teamkarten */
.tm-person-card,
.team-member,
.nectar_team_member_overlay,
.nectar_team_member {
  text-align: left;
}

.tm-person-card img,
.team-member img,
.nectar_team_member img {
  width: 100%;
  height: auto;
  display: block;
}

.tm-person-card h3,
.team-member h3,
.nectar_team_member h3,
.nectar_team_member .team-member-name {
  font-family: var(--tm-font-heading) !important;
  color: var(--tm-red) !important;
  font-size: 1.875rem !important;
  font-weight: 600 !important;
  margin-top: 1rem !important;
}

.tm-person-card a,
.team-member a,
.nectar_team_member a {
  color: var(--tm-black);
  text-decoration: none;
}

.tm-person-card a:hover,
.team-member a:hover,
.nectar_team_member a:hover {
  color: var(--tm-red);
}

/* Footer: alter Footer war hellgrau/warmgrau, nicht tiefschwarz */
#footer-outer,
#footer-widgets,
#copyright,
body #footer-outer[data-cols] {
  background: var(--tm-warm-gray) !important;
  color: #333 !important;
  font-family: var(--tm-font-body) !important;
  font-size: 1.25rem;
}

#footer-outer #footer-widgets .col p,
#footer-outer #footer-widgets .col,
#footer-outer .widget,
#copyright p {
  color: #333 !important;
  font-size: 1.25rem;
  line-height: 1.5;
}

#footer-outer h3,
#footer-outer h4,
#footer-outer h5,
#footer-outer .widget h4,
#footer-outer .widget-title {
  font-family: var(--tm-font-heading) !important;
  color: var(--tm-red) !important;
  font-weight: 600 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

#footer-outer a,
#copyright a {
  color: #333 !important;
  text-decoration: none !important;
}

#footer-outer a:hover,
#copyright a:hover {
  color: var(--tm-red) !important;
}

#footer-outer .social li a,
#footer-outer .nectar-social a,
#footer-outer i {
  color: #333 !important;
}

#footer-outer .social li a:hover,
#footer-outer .nectar-social a:hover,
#footer-outer a:hover i {
  color: var(--tm-red) !important;
}

/* Forms: alte kantige schwarze Felder mit rotem Focus */
body input[type="text"],
body input[type="email"],
body input[type="tel"],
body input[type="url"],
body input[type="date"],
body input[type="number"],
body input[type="password"],
body textarea,
body select,
body .wpcf7 input:not([type="checkbox"]):not([type="radio"]),
body .wpcf7 textarea,
body .wpcf7 select,
body .gform_wrapper input:not([type="checkbox"]):not([type="radio"]),
body .gform_wrapper textarea,
body .gform_wrapper select,
body .wpforms-form input:not([type="checkbox"]):not([type="radio"]),
body .wpforms-form textarea,
body .wpforms-form select {
  width: 100%;
  border: 1px solid #000 !important;
  background-color: transparent !important;
  color: #000 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: .75rem !important;
  font-family: var(--tm-font-body) !important;
  transition: background-color .5s ease-in-out, border-color .5s ease-in-out, color .5s ease-in-out !important;
}

body input[type="text"]:hover,
body input[type="text"]:focus,
body input[type="email"]:hover,
body input[type="email"]:focus,
body input[type="tel"]:hover,
body input[type="tel"]:focus,
body input[type="url"]:hover,
body input[type="url"]:focus,
body input[type="date"]:hover,
body input[type="date"]:focus,
body input[type="number"]:hover,
body input[type="number"]:focus,
body input[type="password"]:hover,
body input[type="password"]:focus,
body textarea:hover,
body textarea:focus,
body select:hover,
body select:focus {
  background-color: rgba(255,255,255,.8) !important;
  border-color: var(--tm-red) !important;
  color: #000 !important;
  box-shadow: none !important;
}

body label,
body .wpcf7 label,
body .gform_wrapper label,
body .wpforms-form label {
  font-family: var(--tm-font-body) !important;
  font-weight: 700 !important;
  font-size: 1.125rem !important;
  color: #000;
  margin-bottom: .65rem;
}

/* Forms: hochwertige Checkboxen und Radios ohne doppeltes Browser-Feld */
body input[type="checkbox"],
body input[type="radio"],
body .wpcf7 input[type="checkbox"],
body .wpcf7 input[type="radio"],
body .gform_wrapper input[type="checkbox"],
body .gform_wrapper input[type="radio"],
body .wpforms-form input[type="checkbox"],
body .wpforms-form input[type="radio"] {
  -webkit-appearance: none !important;
  appearance: none !important;
  display: inline-grid !important;
  place-content: center;
  width: 1.15rem !important;
  min-width: 1.15rem !important;
  height: 1.15rem !important;
  margin: 0 .65rem 0 0 !important;
  padding: 0 !important;
  border: 1.5px solid #000 !important;
  background: #fff !important;
  box-shadow: none !important;
  cursor: pointer;
  vertical-align: -.18em;
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease, transform .2s ease !important;
}

body input[type="checkbox"],
body .wpcf7 input[type="checkbox"],
body .gform_wrapper input[type="checkbox"],
body .wpforms-form input[type="checkbox"] {
  border-radius: 2px !important;
}

body input[type="radio"],
body .wpcf7 input[type="radio"],
body .gform_wrapper input[type="radio"],
body .wpforms-form input[type="radio"] {
  border-radius: 50% !important;
}

body input[type="checkbox"]::before,
body .wpcf7 input[type="checkbox"]::before,
body .gform_wrapper input[type="checkbox"]::before,
body .wpforms-form input[type="checkbox"]::before {
  content: none !important;
  display: none !important;
}

body input[type="checkbox"]::after,
body .wpcf7 input[type="checkbox"]::after,
body .gform_wrapper input[type="checkbox"]::after,
body .wpforms-form input[type="checkbox"]::after {
  content: none !important;
  display: none !important;
}

body input[type="radio"]::before,
body .wpcf7 input[type="radio"]::before,
body .gform_wrapper input[type="radio"]::before,
body .wpforms-form input[type="radio"]::before {
  content: "" !important;
  width: .45rem !important;
  height: .45rem !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: #fff !important;
  transform: scale(0) !important;
  transition: transform .18s ease !important;
}

body input[type="radio"]::after,
body .wpcf7 input[type="radio"]::after,
body .gform_wrapper input[type="radio"]::after,
body .wpforms-form input[type="radio"]::after {
  content: none !important;
  display: none !important;
}

body input[type="checkbox"]:checked,
body input[type="radio"]:checked,
body .wpcf7 input[type="checkbox"]:checked,
body .wpcf7 input[type="radio"]:checked,
body .gform_wrapper input[type="checkbox"]:checked,
body .gform_wrapper input[type="radio"]:checked,
body .wpforms-form input[type="checkbox"]:checked,
body .wpforms-form input[type="radio"]:checked {
  border-color: var(--tm-red) !important;
  background-color: var(--tm-red) !important;
}

body input[type="checkbox"]:checked,
body .wpcf7 input[type="checkbox"]:checked,
body .gform_wrapper input[type="checkbox"]:checked,
body .wpforms-form input[type="checkbox"]:checked {
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='11' viewBox='0 0 14 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.5 5.5L5 9L12.5 1.5' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: .78rem auto !important;
}

body input[type="checkbox"]:checked::before,
body .wpcf7 input[type="checkbox"]:checked::before,
body .gform_wrapper input[type="checkbox"]:checked::before,
body .wpforms-form input[type="checkbox"]:checked::before {
  content: none !important;
  display: none !important;
}

body input[type="radio"]:checked::before,
body .wpcf7 input[type="radio"]:checked::before,
body .gform_wrapper input[type="radio"]:checked::before,
body .wpforms-form input[type="radio"]:checked::before {
  transform: scale(1) !important;
}

body input[type="checkbox"]:focus-visible,
body input[type="radio"]:focus-visible,
body .wpcf7 input[type="checkbox"]:focus-visible,
body .wpcf7 input[type="radio"]:focus-visible,
body .gform_wrapper input[type="checkbox"]:focus-visible,
body .gform_wrapper input[type="radio"]:focus-visible,
body .wpforms-form input[type="checkbox"]:focus-visible,
body .wpforms-form input[type="radio"]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(195, 32, 38, .18) !important;
}

/* Listen mit rotem Check, kompatibel zur alten .custom-list */
.tm-check-list ul,
.custom-list ul,
body .main-content .custom-list ul {
  padding-left: 0;
  margin: 0 0 1.5rem 1.55rem;
}

.tm-check-list li,
.custom-list li,
body .main-content .custom-list li {
  list-style: none;
  padding-left: 0;
  margin-bottom: .25rem;
}

.tm-check-list li::before,
.custom-list li::before,
body .main-content .custom-list li::before {
  content: "✓";
  display: inline-block;
  margin-left: -1.5rem;
  width: 1.5rem;
  color: var(--tm-red);
  font-weight: 700;
}

/* Akkordeon / Toggle in Salient näher an altes Bootstrap Accordion */
body .toggle,
body .toggles .toggle,
body .nectar-hor-list-item,
body .accordion > .card {
  background: transparent !important;
  border-radius: 0 !important;
  border-left: none !important;
  border-right: none !important;
  border-color: #D3D3D3 !important;
}

body .toggle h3,
body .toggle h3 a,
body .toggles .toggle h3 a {
  font-family: var(--tm-font-body) !important;
  color: #000 !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  text-transform: none !important;
}

body .toggle.open h3 a,
body .toggle h3 a:hover {
  color: var(--tm-red) !important;
}

/* Bild-Headline-Boxen für TopJobz/Intro-Bereiche */
.tm-image-headline-box,
.c-joboffers-intro div.position-relative {
  position: relative;
  width: 100%;
  min-height: 480px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
}

.tm-image-headline-box h2,
.c-joboffers-intro h2.position-absolute {
  position: absolute;
  left: 40px;
  bottom: 40px;
  width: 550px;
  font-family: var(--tm-font-body) !important;
  font-size: 4rem !important;
  font-weight: 500 !important;
  color: #fff !important;
}

.tm-image-headline-box h2 span,
.c-joboffers-intro h2.position-absolute span {
  background-color: var(--tm-red);
  color: #fff;
  padding-left: .2rem;
  padding-right: .2rem;
}

/* Mediadaten / Tabellen / Linien */
.tm-bordered-list .row,
#mediadata-list .row {
  border-bottom: 1px solid #D3D3D3;
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

.tm-bordered-list .row:last-child,
#mediadata-list .row:last-child {
  border-bottom: none !important;
}

/* Responsive Feinschliff entsprechend alter skin.css */
@media (max-width: 1200px) {
  body h2,
  body .row .col h2,
  body .wpb_wrapper h2 {
    font-size: 1.875rem !important;
  }

  body h3,
  body .row .col h3,
  body .wpb_wrapper h3 {
    font-size: 1.4rem !important;
  }

  #top nav > ul > li,
  #header-outer #top .sf-menu > li {
    margin-right: 1.5rem;
  }

  #top nav > ul > li > a,
  #header-outer #top .sf-menu > li > a {
    font-size: 1rem !important;
  }
}

@media (max-width: 999px) {
  #header-outer #logo img,
  #header-outer .logo-spacing img,
  #header-outer.small-nav #logo img,
  #header-outer.scrolled-down #logo img {
    max-height: 64px !important;
  }

  .tm-hero-caption,
  .topmedia-hero-caption {
    width: auto;
    min-width: 0;
  }

  #footer-outer,
  #footer-widgets,
  #copyright,
  #footer-outer #footer-widgets .col p,
  #footer-outer #footer-widgets .col,
  #footer-outer .widget,
  #copyright p {
    font-size: 1rem;
  }
}

@media (max-width: 768px) {
  body h2,
  body .row .col h2,
  body .wpb_wrapper h2 {
    font-size: 1.75rem !important;
  }

  body h3,
  body .row .col h3,
  body .wpb_wrapper h3 {
    font-size: 1.375rem !important;
  }

  body .vc_row.tm-wrapper,
  body .wpb_row.tm-wrapper,
  body .vc_row.wrapper,
  body .wpb_row.wrapper {
    padding-top: 100px !important;
    padding-bottom: 100px !important;
  }

  .tm-title-wrapper h2,
  .title-wrapper h2 {
    font-size: 2.75rem !important;
  }

  .tm-image-headline-box,
  .c-joboffers-intro div.position-relative {
    min-height: 220px;
  }

  .tm-image-headline-box h2,
  .c-joboffers-intro h2.position-absolute {
    font-size: 2.5rem !important;
    left: 20px;
    bottom: 20px;
    width: calc(100% - 40px);
  }
}

@media (max-width: 575px) {
  body h2,
  body .row .col h2,
  body .wpb_wrapper h2 {
    font-size: 1.625rem !important;
  }

  body h3,
  body .row .col h3,
  body .wpb_wrapper h3 {
    font-size: 1.3rem !important;
  }

  body .vc_row.tm-wrapper,
  body .wpb_row.tm-wrapper,
  body .vc_row.wrapper,
  body .wpb_row.wrapper {
    padding-top: 50px !important;
    padding-bottom: 50px !important;
  }

  .tm-title-wrapper h2,
  .title-wrapper h2 {
    font-size: 1.75rem !important;
  }

  .tm-hero-caption h1,
  .tm-hero-caption h2,
  .topmedia-hero-caption h1,
  .topmedia-hero-caption h2 {
    font-size: 2rem !important;
  }
}

@media (max-width: 480px) {
  #header-outer #logo img,
  #header-outer .logo-spacing img {
    max-height: 48px !important;
  }

  body .container-wrap,
  body p,
  body .wpb_text_column p,
  body .row .col p {
    font-size: inherit;
  }
}


/* Anpassungen */

.tabbed > ul li .active-tab, body.material input[type=text]:focus, body.material textarea:focus, body.material input[type=email]:focus, body.material input[type=search]:focus, body.material input[type=password]:focus, body.material input[type=tel]:focus, body.material input[type=url]:focus, body.material input[type=date]:focus, body.material input[type=number]:focus, body.material select:focus, .row .col .wp-caption .wp-caption-text, .material.woocommerce-page input#coupon_code:focus, .material #search-outer #search input[type="text"], #header-outer[data-lhe="animated_underline"] #top nav > ul > li > a .menu-title-text:after, div[data-style="minimal"] .toggle.default.open i, div[data-style="minimal"] .toggle.default:hover i, div[data-style="minimal"] .toggle.accent-color.open i, div[data-style="minimal"] .toggle.accent-color:hover i, .single #single-meta div a:hover, .single #single-meta div a:focus, .single .fullscreen-blog-header #single-below-header > span a:hover, .blog-title #single-meta .nectar-social.hover > div a:hover, .nectar-hor-list-item[data-hover-effect="full_border"][data-color="accent-color"]:hover, .material.woocommerce-page[data-form-style="default"] div input#coupon_code:focus {
    border-color: transparent !important;
}

#top nav > ul > li > a:hover, #top nav > ul > li.current-menu-item > a, 
#top nav > ul > li > a,
#top nav > ul > li.current_page_item > a, #top nav > ul > li.current-menu-ancestor > a, #header-outer #top .sf-menu > li > a:hover, #header-outer #top .sf-menu > li.current-menu-item > a, #header-outer #top .sf-menu > li.current-menu-ancestor > a {
    padding-bottom: 10px;
}

.box-shadow,
.magazinarchiv img {
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
}

#footer,
#footer a,
#footer p {
    font-size: 1.25rem;
    color: #333;
}

.ns-heading-el,
h2.ns-heading-el,
body h2.ns-heading-el,
html .swiper-slide h2,
.swiper-slide .content h1, 
.swiper-slide .content .ns-heading-el {
    font-family: "Playfair Display", Arial, sans-serif !important;
    font-size: 4rem !important;
    font-weight: 800 !important;
    color: #fff !important;
}

.swiper-slide h2 span {
    background-color: #C90119;
    padding-left: 0.2rem;
    padding-right: 0.2rem;
}

.top-highlight {
  background-color: #C90119 !important;
    padding-left: 0.2rem;
    padding-right: 0.2rem;
    color: #fff !important;
}

.keyfacts i {
    color: #C90119;
    text-align: center;
    width: 100%;
}

.testimonial_slider .image-icon.has-bg {
    width: 180px;
    height: 180px;
  }

  .wpforms-container input.wpforms-field-medium, .wpforms-container select.wpforms-field-medium, .wpforms-container .wpforms-field-row.wpforms-field-medium, .wp-core-ui div.wpforms-container input.wpforms-field-medium, .wp-core-ui div.wpforms-container select.wpforms-field-medium, .wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-medium {
    max-width: 100%;
}

small {
  display: flex;
  justify-content: center;
}

.fs-5 {
    font-size: 1.25rem !important;
}

.mt-2 {
    margin-top: .5rem !important;
}

.text-dark,
h4.text-dark,
row .col h4.text-dark,
body .wpb_wrapper h4.text-dark,
body h4.text-dark,
.keyfacts h4,
row .keyfacts .col h4,
body .keyfacts .wpb_wrapper h4,
body .keyfacts h4 {
    --bs-text-opacity: 1;
    color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important;
}

body .c-joboffers-intro h3,
body .c-joboffers-intro h1,
body .row .c-joboffers-intro h1,
body .wpb_wrapper .c-joboffers-intro h1,
body .c-joboffers-intro h2,
body .row .c-joboffers-intro h2,
body .wpb_wrapper .c-joboffers-intro h2 {
    font-size: 3.75rem !important;
    font-weight: 500 !important;
    color: black !important;
}

.testimonial_slider[data-style="minimal"] .testimonial-next-prev .prev,
.testimonial_slider[data-style="minimal"] .testimonial-next-prev .next,
#to-top {
  text-decoration: none !important;
}

#bewerbungs-form {
  display: none;
}

#kontaktbox .wpb_text_column,
#kontaktbox .wpb_wrapper>div {
  margin-bottom: 10px !important;
}

label a {
  color: #000;
}

body[data-form-submit=regular] .container-wrap button[type=submit], body[data-form-submit=regular] .container-wrap input[type=submit] {
    padding: 15px 22px 30px 22px !important;
}

#top nav .sf-menu .current_page_item > a .sf-sub-indicator i, #top nav .sf-menu .current_page_ancestor > a .sf-sub-indicator i, .sf-menu > .current_page_ancestor > a > .sf-sub-indicator i {
  color: var(--tm-red);
}

/* Match original text rendering: Salient makes text look lighter on macOS. */
body,
body p,
body .wpb_text_column,
body .wpb_text_column p,
body .row .col p,
body h1,
body h2,
body h3,
body h4,
body h5,
body h6 {
  -webkit-font-smoothing: auto;
  -moz-osx-font-smoothing: auto;
}


/* Vertanstaltungsanmeldungen */
#wpforms-325-field_17-container ul {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding: 0;
}

#wpforms-325-field_17-container li {
    margin: 0;
}

#wpforms-325-field_17-container input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

#wpforms-325-field_17-container label {
    display: inline-block;
    padding: 12px 28px;
    border-radius: 4px;
    background: #287c3e;
    color: #fff;
    cursor: pointer;
    font-weight: 600;
}

#wpforms-325-field_17-container li:nth-child(2) label {
    background: #a83232;
}

#wpforms-325-field_17-container label:hover {
    filter: brightness(.9);
}

#wpforms-form-325 .wpforms-submit-container {
    display: none;
}

#single-below-header {
  display: none;
}

.bg-dark-gradient {
  background: rgb(0, 0, 0);
    background: -moz-linear-gradient(0deg, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.55) 100%);
    background: -webkit-linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.55) 100%);
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.55) 100%);
    background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.55) 100%);
    background-position-x: initial;
    background-position-y: initial;
    background-size: initial;
    background-repeat: initial;
    background-attachment: initial;
    background-origin: initial;
    background-clip: initial;
    background-color: initial;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000",endColorstr="#000000",GradientType=1);
}

.bg-dark-gradient p,
html .bg-dark-gradient h1,
body .row .col .bg-dark-gradient h1,
html .bg-dark-gradient h2,
body .row .col .bg-dark-gradient h2,
.bg-dark-gradient input,
.bg-dark-gradient i,
.bg-dark-gradient a,
.bg-dark-gradient a:visited,
.bg-dark-gradient .wpforms-form input:not([type="checkbox"]):not([type="radio"]),
.bg-dark-gradient div.wpforms-container-full .wpforms-field-label-inline, 
.bg-dark-gradient .wp-core-ui div.wpforms-container-full .wpforms-field-label-inline,
.bg-dark-gradient ::placeholder,
.bg-dark-gradient .wpforms-form select  {
  color: #fff !important;
  opacity: 1 !important;
}

body .row .col .bg-dark-gradient h1,
html .bg-dark-gradient h2,
body .row .col .bg-dark-gradient h2 {
  font-size: 1.8rem !important;
}

.bg-dark-gradient small {
      justify-content: left;
      font-size: 0.75rem;
}

.bg-dark-gradient #ical {
  cursor: pointer;
}

.bg-dark-gradient #ical:hover p,
.bg-dark-gradient #ical:hover i,
.bg-dark-gradient #ical:hover i:before {
  color: var(--tm-red) !important;
}

/* Formular zunächst verstecken, um ein kurzes Aufblitzen zu verhindern */
#anmeldung .wpforms-container {
    display: none;
}

#anmeldung.anmeldung-offen .wpforms-container {
    display: block;
}

#anmelde-status {
    padding: 20px;
    margin: 20px 0;
    color: #fff;
    border-left: 4px solid #999;
}

html .bg-dark-gradient .wpforms-confirmation-scroll p {
  color: #000 !important;
}

.brlbs-cmpnt-container .brlbs-text-2xl {
    font-size: calc(var(--dialog-font-size) * 1.5) !important;
    line-height: calc(var(--dialog-font-size) * 2.25) !important;
    margin-bottom: 0 !important;
}