/*
Theme Name: ContacT A2 V6.6.0
Theme URI: https://contact-sicherheitsdienst.com/
Update URI: https://contact-sicherheitsdienst.com/themes/contact-a2-v6-6-0/
Author: AliveGroup
Description: Kundenfreigegebenes A2-Design mit animierter Startseite und universellem WordPress-Rahmen. 6.6.0: Wissen-Bereich mit Fachartikeln, Ortsseite Fürth, Seite Einsatzgebiet, eigene Werkschutz-Seite, bereinigte Texte. 6.5.0:Überarbeitung nach Review vom 13.11.2026 – Hero-Scroll der Startseite neu (reagiert sofort, Personen bleiben bis zum Ende der Strecke sichtbar, Chips fix, keine Doppelebene); neue echte Fotos (Jugendhilfe, Doorman, Öffentliche Einrichtungen, Veranstaltungen neu zugeschnitten, Empfangsdienst mit unkenntlichen Personen und Ausweisen); Abschnitt „Einsatzpraxis“ der Startseite entfernt, Zeitstrahl kräftiger; Karriereseite neu geordnet (Warum ContacT mit Verlauf, Vorteile als Kacheln mit Icons, gleich große Stellentitel in drei gleich breiten Spalten, luftigere Anzeigen); Siegel als eine Komponente in zwei Größen (ein transparenter Container über die volle Breite, vier gleich breite Zellen, BVMS mit Verbandszeile und verlinkt) auf Startseite, Zertifikate und in der Fußzeile jeder Seite; ganze Kacheln und Karten klickbar (Karriere, Leistungen, Anfrage); kompaktere Fußzeile auf dem Handy, FAQ-Hinweis in der Fußzeile als kleiner Kreis, Texte und Tippziele mobil ab 14 px bzw. 44 px; SEO: ein JSON-LD-Graph je Seite (LocalBusiness mit @id, Logo, Gründungsjahr, BVMS-Mitgliedschaft und DEKRA-Nachweisen, WebSite, WebPage, BreadcrumbList), og:image mit Alternativtext je Leistungsseite, Bildmaße an allen Bildern, kein Generator-Tag. 6.4.9: Tippziele der Fußzeilen-Links auf Tablets, Lesetexte ab 14 px bis 899 px, Absendeknopf und Bildbetrachter in der Seitenschrift. 6.4.8: Querverlinkung der Leistungsseiten (Block Weitere Leistungen). 6.4.5: dezenter FAQ-Hinweis mit Seitenfenster auf allen Seiten, offizielle Bürozeiten in Footer und Kontaktseite (Stefan Laib, 10./15.10.2026). 6.4.4: echte Standortkarte, Texte Jugendhilfe/Jugendschutz, Objektschutz und Empfang nach Stefan (08.10.2026). 6.4.3: Siegel und Mitgliedschaft in den Zertifikat-Bereichen als ein Bild nach Stefans Vorlage. 6.4.2: BDSW-Logo und -Erwähnungen entfernt (Stefan, 07.10.2026). 6.4.1: Scroll-Intro halb so lang, Text im Intro bleibt beim Scrollen ruhig. 6.4.0: eigene Seite /karriere mit Hero, Stellenübersicht, vier vollständigen Stellenanzeigen (JobPosting-JSON-LD), FAQ und Bewerbungs-Platzhalter im Design der übrigen Unterseiten (I1b, keine 1:1-Kopie der alten OnePage-Seite), alle Karriere-Buttons und -Links im Theme zeigen intern auf /karriere statt auf die externe Subdomain, neuer Customizer-Schalter „Bewerbungsversand" (fail-closed, Formular folgt mit I1c). 6.3.1: durchgehendes Blau-Weiß-Farbschema, Scroll-Intro halb so lang, Kopfzeile als Blattkante, saubere Zeilenumbrüche auf allen Seiten, echte ContacT-Fotos statt Stock- und KI-Bildern, Team-Porträts im 4:5-Format. 6.3.0: neue Rufnummern (24-h-Service-Hotline, Durchwahlen, Fax), Leistungen neu geordnet (Jugendschutz zuerst, Objekt- & Werkschutz zusammengefasst, fünf Leistungen entfernt mit Weiterleitung), Siegel und Mitgliedschaften, mitgelieferte Überschriftenschrift gegen Textüberlauf. Rollback-faehig und ohne Aktivierungs- oder Datenbankmigration.
Version: 6.6.0
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: contact-a2-v6-6-0
*/

/* Display face shipped with the theme: Roboto Condensed Bold (SIL OFL 1.1,
   see assets/fonts/OFL-roboto-condensed.txt). First in every display stack,
   so all devices set headings with the metrics inc/typography.php measures;
   "Arial Narrow" and "Roboto Condensed" only cover the time until the file
   has loaded or a blocked download. */
@font-face {
  font-family: "ContacT Display";
  src: url("assets/fonts/roboto-condensed-latin-700-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 600 900;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* 6.3.1 – one light surface scheme for every page (front page and subpages).
   Reference is the team section on /ueber-uns (.cta2v6-section--tint): white
   mixed with blue instead of plain white or neutral grey sections. Dark hero,
   blue bands and the footer stay as accents. */
:root {
  --cta2-surface: #edf3f8;
  --cta2-surface-2: #f2f7fc;
  --cta2-surface-glow: rgba(220, 234, 247, .62);
  --cta2-surface-a: linear-gradient(135deg, rgba(220, 234, 247, .62), transparent 56%), #edf3f8;
  --cta2-surface-b: linear-gradient(315deg, rgba(220, 234, 247, .66), transparent 58%), #f2f7fc;
  --cta2-surface-rule: rgba(46, 111, 176, .14);
  --cta2-card: #fff;
  --cta2-card-border: rgba(46, 111, 176, .18);
  --cta2-card-shadow: 0 18px 44px rgba(33, 73, 111, .10);
  --cta2-header-bg: rgba(237, 243, 248, .94);
}

html { scroll-behavior: smooth; scroll-padding-top: 98px; }
body { margin: 0; min-width: 320px; overflow-x: clip; }
/* 6.3.1 – inner pages sit on the blue-white surface (no grey page ground). */
body.cta2v6-inner { background: var(--cta2-surface); color: #182634; }

.cta2v6-site,
.cta2v6-site *,
.cta2v6-site *::before,
.cta2v6-site *::after { box-sizing: border-box; }

.cta2v6-site {
  --cta2-blue: #2e6fb0;
  --cta2-blue-deep: #21496f;
  --cta2-blue-light: #6fa8de;
  /* Small blue text (12–15 px labels, numbers, active menu item): #2e6fb0
     reaches only 4.4:1 in the tinted corner of the blue-white surfaces and
     4.1:1 in the header above dark bands; this shade keeps at least 4.9:1. */
  --cta2-blue-text: #28629d;
  --cta2-bg: var(--cta2-surface);
  --cta2-panel: var(--cta2-card);
  --cta2-ink: #182634;
  /* 6.3.1 – a touch darker than #5a6b7c: running text keeps at least
     4.7:1 on the most tinted parts of the blue-white surfaces (measured
     4.44:1 in the page opening at 390 px with the former shade). */
  --cta2-muted: #546577;
  --cta2-line: var(--cta2-card-border);
  --cta2-max: 1160px;
  --cta2-gutter: clamp(18px, 4vw, 34px);
  min-height: 100vh;
  overflow-x: clip;
  background: var(--cta2-bg);
  color: var(--cta2-ink);
  font: 400 17px/1.65 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

.cta2v6-header,
.cta2v6-footer {
  --cta2-blue: #2e6fb0;
  --cta2-blue-deep: #21496f;
  --cta2-blue-light: #6fa8de;
  --cta2-blue-text: #28629d;
  --cta2-bg: var(--cta2-surface);
  --cta2-panel: var(--cta2-card);
  --cta2-ink: #182634;
  --cta2-muted: #546577;
  --cta2-line: var(--cta2-card-border);
  --cta2-max: 1160px;
  --cta2-gutter: clamp(18px, 4vw, 34px);
  box-sizing: border-box;
  color: var(--cta2-ink);
  font: 400 17px/1.65 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.cta2v6-header *,
.cta2v6-header *::before,
.cta2v6-header *::after,
.cta2v6-footer *,
.cta2v6-footer *::before,
.cta2v6-footer *::after { box-sizing: border-box; }

.cta2v6-site img,
.cta2v6-site video,
.cta2v6-site iframe,
.cta2v6-site svg { max-width: 100%; }
.cta2v6-site img { height: auto; }
.cta2v6-site a { color: inherit; }
.cta2v6-container {
  width: min(var(--cta2-max), calc(100% - (2 * var(--cta2-gutter))));
  margin-inline: auto;
}
.cta2v6-skip {
  position: fixed;
  left: 12px;
  top: 8px;
  z-index: 10000;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  padding: 10px 14px;
  border-radius: 8px;
  background: var(--cta2-blue);
  color: #fff !important;
  font-weight: 800;
  text-decoration: none;
  transform: translateY(-180%);
}
.cta2v6-skip:focus { transform: none; }
/* 6.5.0 (E2): the skip link of the front page (inline styles in front-page.php) is a 44 px target as well. */
.cta2v6-front a.skip { min-height: 44px; display: inline-flex; align-items: center; box-sizing: border-box; }
/* Dark blue ring on the light surfaces (about 8:1 or more on white,
   --cta2-bg and the tinted sections); blue bands switch it to white in
   subpages.css. */
.cta2v6-site :focus-visible { outline: 3px solid var(--cta2-blue-deep); outline-offset: 3px; }

.cta2v6-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  border-bottom: 1px solid var(--cta2-surface-rule);
  background: var(--cta2-header-bg);
  box-shadow: 0 8px 28px rgba(33, 73, 111, .09);
  -webkit-backdrop-filter: blur(16px) saturate(130%);
  backdrop-filter: blur(16px) saturate(130%);
}
.admin-bar .cta2v6-header { top: 32px; }
.cta2v6-header__inner {
  min-height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.cta2v6-brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.cta2v6-brand img { display: block; width: 164px; height: auto; }
.cta2v6-nav { display: flex; align-items: center; justify-content: flex-end; gap: clamp(15px, 2vw, 27px); }
.cta2v6-nav > a,
.cta2v6-mobile__panel a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--cta2-ink);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}
.cta2v6-nav > a:hover,
.cta2v6-nav > a[aria-current="page"] { color: var(--cta2-blue-text); }
.cta2v6-nav .cta2v6-nav__cta {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 19px;
  border-radius: 999px;
  background: var(--cta2-blue);
  color: #fff;
  box-shadow: 0 10px 24px rgba(46, 111, 176, .2);
}
.cta2v6-nav .cta2v6-nav__cta:hover { background: var(--cta2-blue-deep); color: #fff; }
.cta2v6-mobile { display: none; position: relative; }
.cta2v6-mobile summary {
  min-width: 82px;
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--cta2-line);
  border-radius: 999px;
  color: var(--cta2-ink);
  cursor: pointer;
  font-size: 13px;
  font-weight: 800;
  list-style: none;
}
.cta2v6-mobile summary::-webkit-details-marker { display: none; }
.cta2v6-mobile__panel {
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  width: min(330px, calc(100vw - 32px));
  max-height: calc(100dvh - 112px);
  display: grid;
  gap: 4px;
  padding: 12px;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--cta2-line);
  border-radius: 18px;
  background: var(--cta2-card);
  box-shadow: 0 22px 55px rgba(33, 73, 111, .18);
}
/* A closed <details> never shows its panel; saying so keeps the hidden menu
   out of layout measurements and text checks. */
.cta2v6-mobile:not([open]) > .cta2v6-mobile__panel { display: none; }
.cta2v6-mobile__panel a { padding: 13px 14px; border-radius: 11px; }
.cta2v6-mobile__panel a:hover { background: #eaf2fb; color: var(--cta2-blue-text); }

.cta2v6-main { min-height: 48vh; background: var(--cta2-bg); }
.cta2v6-main--elementor { width: 100%; overflow-x: clip; }
.cta2v6-page-hero {
  padding: clamp(72px, 10vw, 132px) 0 clamp(46px, 7vw, 82px);
  background:
    radial-gradient(circle at 80% 15%, rgba(111, 168, 222, .3), transparent 32%),
    var(--cta2-surface-a);
  border-bottom: 1px solid var(--cta2-surface-rule);
}
.cta2v6-page-hero__eyebrow {
  display: block;
  margin-bottom: 16px;
  color: var(--cta2-blue-text);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .26em;
  text-transform: uppercase;
}
.cta2v6-page-hero h1 {
  max-width: 900px;
  margin: 0;
  color: var(--cta2-ink);
  font-family: "ContacT Display", "Arial Narrow", "Roboto Condensed", system-ui, sans-serif;
  font-size: clamp(42px, 8vw, 92px);
  font-weight: 900;
  letter-spacing: -.035em;
  line-height: .96;
  overflow-wrap: break-word;
  text-wrap: balance;
}
.cta2v6-prose { padding-block: clamp(50px, 8vw, 96px); background: var(--cta2-surface-b); }
.cta2v6-prose__inner {
  padding: clamp(24px, 5vw, 56px);
  border: 1px solid var(--cta2-card-border);
  border-radius: 28px;
  background: var(--cta2-card);
  box-shadow: var(--cta2-card-shadow);
}
.cta2v6-prose__inner > :first-child { margin-top: 0; }
.cta2v6-prose__inner > :last-child { margin-bottom: 0; }
.cta2v6-prose__inner h2,
.cta2v6-prose__inner h3 { color: var(--cta2-ink); line-height: 1.12; }
.cta2v6-prose__inner a { color: var(--cta2-blue-text); }

/* The footer stays a quiet accent: a slightly deeper blue-white than the
   sections above, with blue rules instead of grey ones. */
.cta2v6-footer {
  border-top: 1px solid var(--cta2-surface-rule);
  background: linear-gradient(180deg, #ebf2fa, #e6eff9);
}
/* 6.5.0 (E1): phones keep less empty padding (36 instead of 48 px). */
.cta2v6-footer__cta {
  padding-block: clamp(36px, 7vw, 82px);
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
}
.cta2v6-footer__eyebrow {
  margin: 0 0 12px;
  color: var(--cta2-blue-text);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .24em;
  text-transform: uppercase;
}
/* Two classes: must not be overridden by leftover Elementor kit rules (.elementor-kit-12 h2). */
.cta2v6-footer .cta2v6-footer__cta h2 {
  max-width: 700px;
  margin: 0;
  color: var(--cta2-ink);
  font-family: "ContacT Display", "Arial Narrow", "Roboto Condensed", system-ui, sans-serif;
  font-size: clamp(32px, 5vw, 58px);
  line-height: 1;
  overflow-wrap: break-word;
  text-wrap: balance;
}
.cta2v6-footer :where(p, span, a) { text-wrap: pretty; }
/* Button text and arrow are separate flex items; the gap replaces the
   collapsed space ("Kontakt aufnehmen→"). */
.cta2v6-footer .cta2v6-button { gap: 12px; }
.cta2v6-button {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  padding: 12px 22px;
  border-radius: 999px;
  background: var(--cta2-blue);
  color: #fff !important;
  font-weight: 800;
  text-decoration: none;
}
.cta2v6-button:hover { background: var(--cta2-blue-deep); }
.cta2v6-footer__grid {
  display: grid;
  grid-template-columns: minmax(240px, 1.35fr) repeat(2, minmax(170px, .7fr));
  gap: clamp(26px, 6vw, 80px);
  padding-block: clamp(30px, 4vw, 42px);
  border-top: 1px solid var(--cta2-surface-rule);
}
.cta2v6-footer__brand > a { display: flex; align-items: center; width: fit-content; min-height: 44px; }
.cta2v6-footer__brand img { display: block; width: 190px; height: auto; margin-bottom: 18px; }
.cta2v6-footer__brand p { max-width: 340px; margin: 0; color: var(--cta2-muted); }
.cta2v6-footer__socials { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.cta2v6-footer__socials a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border: 1px solid var(--cta2-card-border);
  border-radius: 999px;
  background: rgba(255, 255, 255, .55);
  color: var(--cta2-muted);
  font-size: 13px;
  font-weight: 750;
  text-decoration: none;
}
.cta2v6-footer__socials a:hover { border-color: var(--cta2-blue-light); color: var(--cta2-blue-text); }
.cta2v6-footer__nav { display: grid; align-content: start; gap: 8px; }
.cta2v6-footer__nav strong { margin-bottom: 8px; color: var(--cta2-ink); }
.cta2v6-footer__nav a {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  color: var(--cta2-muted);
  text-decoration: none;
  overflow-wrap: anywhere;
}
.cta2v6-footer__nav a:hover { color: var(--cta2-blue-text); }
/* The two address lines flow as text, so the ↗ follows "Nürnberg" instead
   of floating beside both lines. */
.cta2v6-footer__nav .cta2v6-footer__map { display: block; padding-block: 7px; line-height: 1.5; }
.cta2v6-footer__legal {
  min-height: 70px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid var(--cta2-surface-rule);
  color: var(--cta2-muted);
  font-size: 14px;
}
.cta2v6-footer__legal nav { display: flex; flex-wrap: wrap; gap: 20px; }
.cta2v6-footer__legal a { min-height: 38px; display: inline-flex; align-items: center; text-decoration: none; }

@media (max-width: 1220px) {
  .cta2v6-nav { display: none; }
  .cta2v6-mobile { display: block; }
  .cta2v6-header__inner { min-height: 74px; }
  .cta2v6-brand img { width: 146px; }
  .cta2v6-footer__cta { align-items: start; flex-direction: column; }
  .cta2v6-footer__grid { grid-template-columns: 1fr 1fr; }
  .cta2v6-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 1220px) {
  html.cta2v6-menu-open,
  html.cta2v6-menu-open body { overflow: hidden; overscroll-behavior: none; }
}

@media (max-width: 782px) {
  .admin-bar .cta2v6-header { top: 46px; }
}

@media (max-width: 620px) {
  .cta2v6-header__inner { min-height: 70px; }
  .cta2v6-brand img { width: 132px; }
  .cta2v6-mobile summary { min-width: 72px; min-height: 44px; }
  .cta2v6-footer__grid { grid-template-columns: 1fr; }
  .cta2v6-footer__brand { grid-column: auto; }
  /* 6.5.0 (E1): the seven page links in two columns – half the height. */
  .cta2v6-footer__nav--pages { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
  .cta2v6-footer__nav--pages strong { grid-column: 1 / -1; }
  .cta2v6-footer__legal { align-items: flex-start; flex-direction: column; padding-block: 22px; }
  .cta2v6-footer__nav a,
  .cta2v6-footer__legal a { min-height: 44px; }
  .cta2v6-page-hero { padding-top: 62px; }
  /* 6.5.0 (U2): compact footer on phones – the gaps between the blocks about
     halved, the links touch-sized (44 px) without extra gaps, contact and
     office hours closer together, copyright and legal links in one block. */
  .cta2v6-footer__cta { padding-block: 28px 24px; gap: 18px; }
  .cta2v6-footer__trust { padding-block: 16px; }
  .cta2v6-footer__grid { gap: 18px; padding-block: 20px 12px; }
  .cta2v6-footer__brand { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 16px; }
  .cta2v6-footer__brand img { width: 128px; margin-bottom: 0; }
  .cta2v6-footer__brand p { font-size: 15px; line-height: 1.45; }
  .cta2v6-footer__socials { grid-column: 1 / -1; margin-top: 10px; }
  .cta2v6-footer__nav { gap: 0; }
  .cta2v6-footer__nav strong { margin-bottom: 2px; }
  .cta2v6-footer__nav .cta2v6-footer__hint:first-of-type { margin-bottom: -8px; }
  .cta2v6-footer__nav .cta2v6-footer__map { padding-block: 4px; }
  .cta2v6-hours { margin-top: 6px; padding-top: 10px; }
  .cta2v6-footer__legal { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 0 20px; padding-top: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* Active page state of the header call-to-action (formerly Customizer CSS of
   6.2.9, now part of the theme so it survives the theme switch). */
.cta2v6-nav .cta2v6-nav__cta[aria-current="page"] { background: var(--cta2-blue-deep); color: #fff; }

/* Footer: seals and memberships, contact hints. 6.5.0: less padding on phones. */
.cta2v6-footer__trust {
  padding-block: clamp(20px, 3vw, 30px);
  border-top: 1px solid var(--cta2-surface-rule);
}
.cta2v6-footer__hint {
  color: var(--cta2-muted);
  font-size: 14px;
  line-height: 1.4;
}
.cta2v6-footer__nav .cta2v6-footer__hint:first-of-type { margin-bottom: -6px; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

/* Fixed terms ("24-h-Service-Hotline", the two halves of an e-mail address)
   never wrap inside; the templates set this class. */
.cta2v6-nowrap { white-space: nowrap; }

/* 6.3.1 – the space between the last two words of a heading does not break
   from 600 px up (inc/typography.php: cta2v6_heading_html), so no heading
   ends with a single word; on narrow phones the pair may wrap again. Only
   the space is protected: the words can still break as a last resort. */
@media (min-width: 600px) {
  .cta2v6-keep { white-space: nowrap; }
}

/* Seals and memberships (template-parts/trust-marks.php). Order fixed by
   ContacT: DEKRA certificates, master craftsman seal, membership.
   6.5.0 (Review Dennis 13.11.2026): ONE component in two sizes – footer
   (seal row 96 px) and content (front page #zertifikate, /zertifikate,
   120 px). One transparent container over the full content width, four
   equally wide cells divided by thin CI-blue rules, so the seals blend into
   the page background; up to 620 px the same container as 2 × 2.
   Every seal shares the row height --cta2v6-seal-row; --cta2v6-seal-optic
   (per seal, inc/contact.php) is the share it fills, so the upright DEKRA
   shields, the round master seal and the BVMS oval with its association
   line look equally large. trust-marks.php names the resulting widths in
   sizes. The BVMS cell is clickable as a whole (stretched link); the focus
   ring is drawn inside the cell. */
.cta2v6-trust {
  --cta2v6-seal-row: 96px;
  --cta2v6-trust-rule: rgba(46, 111, 176, .16);
  overflow: hidden;
  border: 1px solid rgba(46, 111, 176, .24);
  border-radius: 16px;
  background: transparent;
}
.cta2v6-trust--content { --cta2v6-seal-row: 120px; }
.cta2v6-trust__cells {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}
.cta2v6-trust__cell {
  position: relative;
  min-width: 0;
  display: grid;
  grid-template-rows: auto 1fr;
  justify-items: center;
  align-items: center;
  gap: 12px;
  padding: 18px 12px 20px;
  text-align: center;
}
.cta2v6-trust--content .cta2v6-trust__cell { gap: 18px; padding: 26px 16px 28px; }
.cta2v6-trust__cell + .cta2v6-trust__cell { border-left: 1px solid var(--cta2v6-trust-rule); }
.cta2v6-trust__label {
  color: #21496f;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1.3;
  text-transform: uppercase;
  white-space: nowrap;
}
.cta2v6-trust .cta2v6-trust__seal {
  min-height: var(--cta2v6-seal-row);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: var(--cta2-blue-text, #28629d);
  text-decoration: none;
}
.cta2v6-trust .cta2v6-trust__seal img {
  display: block;
  width: auto;
  height: calc(var(--cta2v6-seal-row) * var(--cta2v6-seal-optic, 1));
  max-width: 100%;
  object-fit: contain;
}
/* BVMS: the association line of the original logo, in the logo's navy
   (inc/contact.php keeps "e.V." on the line before with a protected space).
   "Sicherheitsunternehmen e.V." needs 174 px at 12 px, more than narrow
   cells offer: then the only allowed break is "Sicherheits-|unternehmen"
   (the protected space makes "unternehmen e.V." one 16-character tail). */
.cta2v6-trust__caption {
  max-width: 18em;
  color: #263f78;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
  text-wrap: balance;
  -webkit-hyphens: auto;
  hyphens: auto;
  hyphenate-limit-chars: 18 11 16;
}
.cta2v6-trust--content .cta2v6-trust__caption { font-size: 14px; }
.cta2v6-trust a.cta2v6-trust__seal::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
.cta2v6-trust__ext {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 14px;
  height: 14px;
}
.cta2v6-trust a.cta2v6-trust__seal:focus-visible,
.cta2v6-trust__cell:has(a:focus-visible) {
  outline: 3px solid var(--cta2-blue-deep, #21496f);
  outline-offset: -5px;
  border-radius: 14px;
}
@supports selector(:has(*)) {
  .cta2v6-trust a.cta2v6-trust__seal:focus-visible { outline: 0; }
}
@media (hover: hover) and (pointer: fine) {
  .cta2v6-trust__cell:has(a:hover) { background: rgba(46, 111, 176, .06); }
  .cta2v6-trust a.cta2v6-trust__seal:hover { color: var(--cta2-blue-deep, #21496f); }
}
/* Four cells of about 175 px at 768 px: labels at 14 px like the other
   short texts (6.4.7) with tighter tracking, smaller seal rows. */
@media (max-width: 899px) {
  .cta2v6-trust { --cta2v6-seal-row: 72px; }
  .cta2v6-trust--content { --cta2v6-seal-row: 100px; }
  .cta2v6-trust__label { font-size: 14px; letter-spacing: .06em; }
  .cta2v6-trust--content .cta2v6-trust__cell { gap: 14px; padding: 20px 10px 22px; }
  .cta2v6-trust .cta2v6-trust__cell--mitgliedschaften { padding-inline: 6px; }
  .cta2v6-trust--content .cta2v6-trust__caption { font-size: 12px; }
}
/* Phones: the same container as 2 × 2 (four in a row would leave 80 px per
   cell at 360 px – too narrow for the labels and the BVMS line). */
@media (max-width: 620px) {
  .cta2v6-trust { --cta2v6-seal-row: 64px; }
  .cta2v6-trust--content { --cta2v6-seal-row: 88px; }
  .cta2v6-trust__cells { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cta2v6-trust__cell + .cta2v6-trust__cell { border-left: 0; }
  .cta2v6-trust__cell:nth-child(even) { border-left: 1px solid var(--cta2v6-trust-rule); }
  .cta2v6-trust__cell:nth-child(n + 3) { border-top: 1px solid var(--cta2v6-trust-rule); }
  .cta2v6-trust__cell,
  .cta2v6-trust--content .cta2v6-trust__cell { gap: 10px; padding: 14px 8px 16px; }
  .cta2v6-trust__caption,
  .cta2v6-trust--content .cta2v6-trust__caption { font-size: 12px; }
  .cta2v6-trust__ext { top: 6px; right: 6px; }
  /* Cells of one row differ in height (BVMS line): every seal starts on the
     same line below the label instead of being centred in its cell. */
  .cta2v6-trust__cell { align-items: start; }
  .cta2v6-trust .cta2v6-trust__seal { justify-content: flex-start; }
}

/* 6.4.5 – Bürozeiten (inc/contact.php, eine Quelle für Footer und Kontaktseite). */
.cta2v6-hours { display: grid; gap: 4px; margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--cta2-line, rgba(46, 111, 176, .18)); font-size: 14px; line-height: 1.45; color: var(--cta2-ink, #182634); }
.cta2v6-hours__title { color: var(--cta2-muted, #546577); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.cta2v6-hours__list { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.cta2v6-hours__list li { display: flex; gap: 8px; }
.cta2v6-hours__list li > span:first-child { min-width: 3.4em; font-weight: 700; }
.cta2v6-hours .cta2v6-hours__note { margin: 4px 0 0; color: var(--cta2-muted, #546577); font-size: 13.5px; line-height: 1.45; }
.cta2v6-hours__note a { color: var(--cta2-blue-text, #28629d); font-weight: 700; }
/* 6.5.0 (E2): hint and button texts at least 14 px on phones and tablets, also on /karriere. */
@media (max-width: 899px) {
  .cta2v6-hours .cta2v6-hours__note,
  .cta2v6-footer .cta2v6-footer__socials a,
  html button.cta2v6-faqhint { font-size: 14px; }
}

/* 6.4.5 – FAQ-Hinweis (unten links) und Seitenfenster. Selektoren bewusst spezifisch: das live nachgeladene
   Elementor-Kit stylt button/a/h2 global (Farben, Großschreibung, Hover). */
.cta2v6-faqhint[hidden], .cta2v6-faqd[hidden] { display: none !important; }
button.cta2v6-faqhint {
  position: fixed; left: 16px; bottom: 16px; z-index: 1001; display: inline-flex; align-items: center; gap: 9px;
  max-width: calc(100vw - 100px); min-height: 44px; margin: 0; padding: 7px 15px 7px 8px;
  border: 1px solid rgba(46, 111, 176, .18); border-radius: 999px;
  background: rgba(255, 255, 255, .96); color: #182634; box-shadow: 0 8px 22px rgba(33, 73, 111, .16);
  font-family: inherit; font-size: 13.5px; font-weight: 500; line-height: 1.3; letter-spacing: 0; text-transform: none; text-align: left; cursor: pointer;
  transition: box-shadow .2s, transform .2s;
}
button.cta2v6-faqhint:hover, button.cta2v6-faqhint:focus-visible { background: #fff; color: #182634; box-shadow: 0 10px 26px rgba(33, 73, 111, .24); transform: translateY(-1px); }
button.cta2v6-faqhint:focus-visible { outline: 3px solid #2e6fb0; outline-offset: 2px; }
.cta2v6-faqhint__mark { display: inline-flex; flex: 0 0 28px; width: 28px; height: 28px; align-items: center; justify-content: center; border-radius: 50%; background: #28629d; color: #fff; font-size: 15px; font-weight: 800; line-height: 1; }
.cta2v6-faqhint__text strong { font-weight: 700; white-space: nowrap; }
html.cta2v6-faqd-open, html.cta2v6-faqd-open body { overflow: hidden; }
html.cta2v6-faqd-open button.cta2v6-faqhint, html.mobile-menu-open button.cta2v6-faqhint, html.cta2v6-menu-open button.cta2v6-faqhint { visibility: hidden; }
/* 6.5.0: z-index 1001 – the pill lies above the content sheet and its header
   (z-index 1000) rising at the end of the front-page hero; open menus hide it.
   In the footer (faq-drawer.php, IntersectionObserver) it shrinks to its 44 px
   "?" mark, so it covers no footer content; the text stays its accessible name. */
button.cta2v6-faqhint.is-compact { gap: 0; padding: 7px 7px; }
button.cta2v6-faqhint.is-compact .cta2v6-faqhint__text {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
button.cta2v6-faqhint.is-compact, button.cta2v6-faqhint.is-wide { animation: cta2v6-faqhint-swap .22s ease-out; }
@keyframes cta2v6-faqhint-swap { from { opacity: 0; transform: translateY(6px); } }
@media (max-width: 720px) {
  button.cta2v6-faqhint { left: 12px; bottom: 12px; }
  body:has(#mcta) button.cta2v6-faqhint { bottom: 82px; }
}
.cta2v6-faqd { position: fixed; inset: 0; z-index: 9000; visibility: hidden; }
.cta2v6-faqd.is-open { visibility: visible; }
.cta2v6-faqd__backdrop { position: absolute; inset: 0; background: rgba(7, 17, 27, .5); opacity: 0; transition: opacity .25s; }
.cta2v6-faqd.is-open .cta2v6-faqd__backdrop { opacity: 1; }
.cta2v6-faqd__panel {
  position: absolute; top: 0; right: 0; bottom: 0; display: flex; flex-direction: column; width: min(440px, calc(100vw - 40px));
  background: #f7fafd; color: #182634; box-shadow: -18px 0 48px rgba(7, 17, 27, .28);
  transform: translateX(100%); transition: transform .26s cubic-bezier(.2, .7, .2, 1); outline: 0;
}
.cta2v6-faqd.is-open .cta2v6-faqd__panel { transform: none; }
.cta2v6-faqd__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 14px 14px 22px; border-bottom: 1px solid rgba(46, 111, 176, .18); background: #fff; }
.cta2v6-faqd .cta2v6-faqd__head h2 { margin: 0; color: #182634; font-size: 19px; font-weight: 800; line-height: 1.25; letter-spacing: 0; text-transform: none; }
.cta2v6-faqd button.cta2v6-faqd__close {
  display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; margin: 0; padding: 0;
  border: 1px solid rgba(46, 111, 176, .22); border-radius: 50%; background: #fff; color: #182634; font-family: inherit; font-size: 26px; font-weight: 400; line-height: 1; cursor: pointer; box-shadow: none; text-transform: none;
}
.cta2v6-faqd button.cta2v6-faqd__close:hover, .cta2v6-faqd button.cta2v6-faqd__close:focus-visible { background: #edf3f8; color: #182634; border-color: #2e6fb0; }
.cta2v6-faqd__body { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 14px 16px calc(24px + env(safe-area-inset-bottom)); }
.cta2v6-faqd__item { margin-bottom: 8px; border: 1px solid rgba(46, 111, 176, .18); border-radius: 12px; background: #fff; overflow: hidden; }
.cta2v6-faqd button.cta2v6-faqd__q {
  position: relative; display: block; width: 100%; min-height: 48px; margin: 0; padding: 13px 46px 13px 16px;
  border: 0; border-radius: 0; background: #fff; color: #182634; box-shadow: none;
  font-family: inherit; font-size: 15px; font-weight: 700; line-height: 1.4; letter-spacing: 0; text-transform: none; text-align: left; cursor: pointer;
}
.cta2v6-faqd button.cta2v6-faqd__q::after { content: "+"; position: absolute; right: 16px; top: 50%; color: #28629d; font-size: 22px; font-weight: 400; line-height: 1; transform: translateY(-50%); transition: transform .2s; }
.cta2v6-faqd button.cta2v6-faqd__q[aria-expanded="true"]::after { transform: translateY(-50%) rotate(45deg); }
/* 6.6.0: Frage als Sprung zur Antwort an anderer Stelle (Startseite #faq, Fragen im Seiteninhalt). */
.cta2v6-faqd a.cta2v6-faqd__q { position: relative; display: block; min-height: 48px; padding: 13px 46px 13px 16px; color: #182634; font-size: 15px; font-weight: 700; line-height: 1.4; text-decoration: none; }
.cta2v6-faqd a.cta2v6-faqd__q::after { content: "→"; position: absolute; right: 16px; top: 50%; color: #28629d; font-size: 18px; line-height: 1; transform: translateY(-50%); }
.cta2v6-faqd a.cta2v6-faqd__q:hover, .cta2v6-faqd a.cta2v6-faqd__q:focus-visible { background: #f2f7fc; text-decoration: underline; }
.cta2v6-faqd a.cta2v6-faqd__q:focus-visible { outline: 3px solid #2e6fb0; outline-offset: -3px; }
.cta2v6-faqd button.cta2v6-faqd__q:hover, .cta2v6-faqd button.cta2v6-faqd__q:focus-visible { background: #f2f7fc; color: #182634; }
.cta2v6-faqd button.cta2v6-faqd__q:focus-visible, .cta2v6-faqd button.cta2v6-faqd__close:focus-visible { outline: 3px solid #2e6fb0; outline-offset: -3px; }
.cta2v6-faqd__a[hidden] { display: none; }
.cta2v6-faqd .cta2v6-faqd__a p { margin: 0; padding: 0 16px 15px; color: #38495b; font-size: 14.5px; line-height: 1.65; }
.cta2v6-faqd .cta2v6-faqd__a a, .cta2v6-faqd .cta2v6-faqd__more a { color: #28629d; text-decoration: underline; }
.cta2v6-faqd__more { margin-top: 16px; padding: 14px 16px; border-radius: 12px; background: #e6eff8; font-size: 14.5px; line-height: 1.55; }
.cta2v6-faqd .cta2v6-faqd__more p { margin: 6px 0 0; color: #38495b; }
@media (prefers-reduced-motion: reduce) {
  .cta2v6-faqd__panel, .cta2v6-faqd__backdrop, button.cta2v6-faqhint, .cta2v6-faqd button.cta2v6-faqd__q::after { transition: none; }
  button.cta2v6-faqhint.is-compact, button.cta2v6-faqhint.is-wide { animation: none; }
}
/* 6.4.5 – der FAQ-Hinweis (fix, unten links) darf Impressum/Datenschutz am Seitenende nicht verdecken.
   6.5.0: in der Fußzeile ist er nur noch der 44-px-Kreis (16 px über dem Rand) – Platz 16 + 44 + 8 px;
   bis 720 px 12 + 44 + 8 px. Die Anrufleiste der Startseite hat ihren Zusatz in enhancements.css. */
.cta2v6-footer .cta2v6-footer__legal { padding-bottom: 68px; }
@media (max-width: 720px) {
  .cta2v6-footer .cta2v6-footer__legal { padding-bottom: 64px; }
}

/* 6.4.7 – Handy-Feinschliff (Review-Runde 1); 6.4.9: Schwelle von 720 auf 899 px (Tablets). Gilt nie auf /karriere (Body-Klasse cta2v6-karriere, abgenommen).
   6.5.0: Siegel-Beschriftung steht im Siegel-Block oben (eine Regel für alle Seiten); Selektoren des entfernten Startseiten-Abschnitts „Einsatzpraxis“ (.who, .refnote) gestrichen.
   a) Lesetexte mobil und auf Tablets (bis 899 px) mindestens 14 px (vorher 12,5–13,5 px); Desktop-Größen ab 900 px bleiben unverändert. Versal-Kicker, Zähler (01, 02 …) und Kartenindizes bleiben bewusst klein.
   b) Textlinks im Fließtext der FAQ-Antworten: unsichtbar vergrößerte Trefferfläche (Padding am Inline-Element ändert keine Zeilenhöhe). */
@media (max-width: 899px) {
  body:not(.cta2v6-karriere) :is(
    .kpi .l, .usps .usp, .bchip, .rb, .tag, .cat, .jb, dt, small, figcaption, figcaption .cta2v6-nowrap,
    .card-body p, .card-facts li, .det ul li, .card-route, .card-actions .more, .card-actions .more span, .card-route span,
    .step p, .br p, .pr p, .job p, .tm-role, .tm-role span, .cert-meta, .cert-meta span,
    .cta2v6-hours__note, .cta2v6-hours__note .cta2v6-nowrap, .cta2v6-footer__hint,
    .cta2v6-footer__socials a, .cta2v6-faqhint__text, .cta2v6-faqhint__text strong,
    .cta2v6-toc a, .cta2v6-toc a span, .cta2v6-case-grid strong, .cta2v6-contact-direct__label, .cta2v6-contact-direct__label .cta2v6-nowrap,
    .cta2v6-direct-options span, .cta2v6-direct-options small, .cta2v6-contact-form__fallback span,
    .tm > div > span, .cert > div > span, .leadbox p, .leadbox p .cta2v6-nowrap, .job a, .job a span, .bp span, .totop,
    .cta2v6-contact-form__fallback a, .proof-document span, .hero-motion-toggle span, .hero-motion-toggle
  ), body:not(.cta2v6-karriere) details.cta2v6-mobile > summary {
    font-size: 14px;
  }
}
@media (max-width: 720px) {
  body.cta2v6-front .faq .fa p a {
    padding-block: 14px;
  }
}
/* 6.4.9 – Fußzeilen-Links auf Tablets: Tippziel mindestens 44 px (wie bis 720 px). 6.5.0: auch auf /karriere (E2, Tippziele überall). */
@media (min-width: 721px) and (max-width: 899px) {
  :is(.cta2v6-footer__nav a, .cta2v6-footer__legal a) { min-height: 44px; }
}
/* 6.4.7 – Marke: Bedienknöpfe nutzen die Schrift der Seite statt der Browser-Vorgabe (Arial). Nur die Schriftfamilie. */
body:not(.cta2v6-karriere) :is(button.totop, button.proof-document, button.more, button.hero-motion-toggle, button.cta2v6-faqhint, button.cta2v6-contact-form__submit, button.media-viewer-close) {
  font-family: inherit;
}
