/* ===================================================================
 * paricon global CSS — loaded on EVERY page
 * Migrated from Kit #9 custom CSS field
 * Only truly site-wide rules belong here.
 * =================================================================== */

/* Fix: force pointer cursor on interactive elements */
a, button,
input[type="submit"], input[type="button"],
select, label[for], .link,
.elementor-button,
[role="button"], [type="submit"],
.uicore-btn {
  cursor: pointer !important;
}

/* Extend pointer cursor to button wrapper containers so full visual area shows pointer */
.elementor-button-wrapper,
.elementor-button-wrapper * {
  cursor: pointer !important;
}

/* Fix Swiper: override cursor:grab on slides so it doesn't fight with pointer cursor.
   The grab cursor on .swiper-wrapper (drag indicator) stays; slides reset to auto
   so interactive elements inside them can show pointer correctly. */
.swiper-slide {
  cursor: auto !important;
}
.swiper-slide a,
.swiper-slide button,
.swiper-slide .elementor-button,
.swiper-slide .swiper-slide-inner,
.swiper-slide .swiper-slide-contents {
  cursor: pointer !important;
}

/* Ensure custom cursor overlay inherits cursor from underlying element */
.ui-cursor, .ui-cursor::after,
.ui-cursor-main, .ui-cursor-main::after {
  cursor: inherit !important;
}
/* END cursor fix */

/* Gallery/lightbox backdrop blur */
.elementor-lightbox {
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

/* KPI prefix sizing + spacing */
.ui-e-prefix {
  font-size: 0.45em !important;
  font-weight: 400 !important;
  opacity: 0.85;
  vertical-align: baseline;
}
.ui-e-suffix {
  font-size: 0.6em !important;
  font-weight: 400 !important;
  vertical-align: baseline;
}

/* === Blog page — hide Newsletter button + Alle Beiträge button (post 517) ===
 * No newsletter exists yet. Alle Beiträge button links to a UiCore demo URL.
 * Selectors are unique to post 517 — inert on all other pages. */
.elementor-element-27b4f23  { display: none !important; }
.elementor-element-1ed0a04e { display: none !important; }

/* === Square portrait cards — Führungsteam section on About page (/about/, post 427) ===
 * Four rows of leadership team portrait photos, each 1703×2560px (tall/portrait orientation).
 * Row containers (unique to post 427, not present on any other page):
 *   3fc0762: Achim, André, Anton
 *   0819afc: Carsten, Christoph, Florian
 *   2831ba5: Jan, Jörg, Julia
 *   b83cb0f: Kujtim, Michael, Thomas
 * Partner section (e0647c3) which also has widget-image elements is NOT targeted.
 * Images are <img> tags rendered by elementor-widget-image — use aspect-ratio + object-fit.
 * object-position: center top keeps face in frame (faces are near top of portrait shots). */
.elementor-element-3fc0762 .elementor-widget-image img,
.elementor-element-0819afc .elementor-widget-image img,
.elementor-element-2831ba5 .elementor-widget-image img,
.elementor-element-b83cb0f .elementor-widget-image img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center 25%;
    width: 100%;
    display: block;
}

/* ── Footer pink banner restore (2026-06-05) ──────────────────────────
 * The footer marquee strip (footer template post 303, container e53ef57,
 * background = paricon-banner.jpg) is rendered through an Elementor Pro
 * background motion-effect: the image lives on a JS-injected
 * .elementor-motion-effects-layer inside an .elementor-motion-effects-container.
 * Their fill positioning ships ONLY in elementor-pro motion-fx.min.css, which
 * Pro's conditional ("improved") asset loading stopped enqueueing after the
 * Elementor core 3.35.6 / Pro 3.34.0 version split. With that file absent the
 * container computes to position:static; height:0, so the layer (height:100%)
 * collapses to 0 and the pink strip disappears — data, post-303.css and the
 * image file were all intact. We re-supply the exact vendor positioning,
 * scoped to the footer banner only. Harmless if motion-fx.min.css returns.
 * Element id e53ef57 is shared by both the DE footer (post 303) and the EN
 * footer (post 2856), so the unprefixed id selector covers both languages.
 * NOTE: motion-fx.min.css is absent site-wide, so any OTHER background-motion
 * element is also currently collapsed; this rule only restores the footer
 * banner. A generic .elementor-motion-effects-container rule would fix all. */
.elementor-element-e53ef57 .elementor-motion-effects-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
.elementor-element-e53ef57 .elementor-motion-effects-layer {
    position: absolute;
    top: 0;
    left: 0;
    background-repeat: no-repeat;
    background-size: cover;
}

/* ===== ZERT-2/2H (JJ round 2): equal-height media area on the 3 cert cards =====
   zertifizierungen (post 1026). The 3 logos have very different aspect ratios
   (SAP siegel 300x59 wide/short, ISO badge 283x143 tall, EcoVadis 300x300 square),
   so the media area was unequal and the tall ISO badge got cropped. Fix: a fixed
   132px media box, logo centered + object-fit:contain so every logo is fully
   visible and all three card bodies start at the same height. Scoped to 1026. */
body:is(.page-id-1026,.page-id-2804) .ui-e-ico-box .ui-e-icon-wrp {
  height: 152px !important;            /* ZERT-2: uniform border-box height so all 3 card titles align (was 132 on ISO vs 152 padded on SAP/ESG) */
  box-sizing: border-box !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-bottom: 20px !important;
  overflow: visible !important;
}
body:is(.page-id-1026,.page-id-2804) .ui-e-ico-box .ui-e-icon-wrp img {
  max-height: 120px !important;
  height: auto !important;
  width: auto !important;
  max-width: 82% !important;
  object-fit: contain !important;
}

/* INFO-1 (ISO 1634): cert hero in /about/-style — eyebrow + two-tone headline + lede over the photo.
   Hides the old heading widgets + the separate cyan-headline section; the new .prc-cert-hero HTML widget
   (added to section f6b7e19) carries the content. Mirrors .prc-renewed-about__1-hero. */
body:is(.page-id-1634,.page-id-2808) .elementor-element-9783a4e,
body:is(.page-id-1634,.page-id-2808) .elementor-element-24eb588,
body:is(.page-id-1634,.page-id-2808) .elementor-element-3a31990 { display: none !important; }
body:is(.page-id-1634,.page-id-2808) .prc-cert-hero { max-width: 1180px; margin: 0 auto; padding: 24px 0 8px; text-align: left; }
body:is(.page-id-1634,.page-id-2808) .prc-cert-hero .prc-eyebrow {
  display: block; font-size: .95rem; letter-spacing: .18em; text-transform: uppercase;
  color: #02CBFF; font-weight: 600; margin: 0 0 14px;
}
body:is(.page-id-1634,.page-id-2808) .prc-cert-hero__title {
  font-size: clamp(2.5rem, 5.5vw + 1rem, 5.75rem); font-weight: 700; line-height: 1.02; margin: 0 0 22px;
}
body:is(.page-id-1634,.page-id-2808) .prc-cert-hero__title .prc-cyan { color: #02CBFF; display: block; }
body:is(.page-id-1634,.page-id-2808) .prc-cert-hero__title .prc-white { color: #FFFFFF; display: block; }
body:is(.page-id-1634,.page-id-2808) .prc-cert-hero .prc-lede {
  font-size: clamp(1rem, .5vw + .875rem, 1.375rem); line-height: 1.55;
  color: rgba(255,255,255,.85); max-width: 640px; margin: 0;
}

/* ESG-2 (ESG 1654): cert hero in /about/-style — mirror of INFO-1. Hides old NACHHALTIGKEIT headings +
   the separate cyan-headline section; the .prc-cert-hero HTML widget (added to 871cb42) carries content. */
body:is(.page-id-1654,.page-id-2806) .elementor-element-7700281,
body:is(.page-id-1654,.page-id-2806) .elementor-element-3587718,
body:is(.page-id-1654,.page-id-2806) .elementor-element-9c75903 { display: none !important; }
body:is(.page-id-1654,.page-id-2806) .prc-cert-hero { max-width: 1180px; margin: 0 auto; padding: 24px 0 8px; text-align: left; }
body:is(.page-id-1654,.page-id-2806) .prc-cert-hero .prc-eyebrow {
  display: block; font-size: .95rem; letter-spacing: .18em; text-transform: uppercase;
  color: #02CBFF; font-weight: 600; margin: 0 0 14px;
}
body:is(.page-id-1654,.page-id-2806) .prc-cert-hero__title {
  font-size: clamp(2.5rem, 5.5vw + 1rem, 5.75rem); font-weight: 700; line-height: 1.02; margin: 0 0 22px;
}
body:is(.page-id-1654,.page-id-2806) .prc-cert-hero__title .prc-cyan { color: #02CBFF; display: block; }
body:is(.page-id-1654,.page-id-2806) .prc-cert-hero__title .prc-white { color: #FFFFFF; display: block; }
body:is(.page-id-1654,.page-id-2806) .prc-cert-hero .prc-lede {
  font-size: clamp(1rem, .5vw + .875rem, 1.375rem); line-height: 1.55;
  color: rgba(255,255,255,.85); max-width: 660px; margin: 0;
}

/* INFO-1/ESG-2 legibility: the about-style hero text sits over a photo on the cert pages, so add a
   left-anchored dark scrim ("smoke") behind it + a soft text-shadow. Photo stays visible on the right.
   Scoped to the two cert hero sections (f6b7e19 ISO, 871cb42 ESG). */
body:is(.page-id-1634,.page-id-2808) .elementor-element-f6b7e19,
body:is(.page-id-1654,.page-id-2806) .elementor-element-871cb42 { position: relative; }
body:is(.page-id-1634,.page-id-2808) .elementor-element-f6b7e19::before,
body:is(.page-id-1654,.page-id-2806) .elementor-element-871cb42::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, rgba(9,14,24,.86) 0%, rgba(9,14,24,.66) 40%, rgba(9,14,24,.30) 72%, rgba(9,14,24,0) 100%);
}
body:is(.page-id-1634,.page-id-2808) .elementor-element-f6b7e19 > .e-con-inner,
body:is(.page-id-1634,.page-id-2808) .elementor-element-f6b7e19 > .elementor-widget-wrap,
body:is(.page-id-1654,.page-id-2806) .elementor-element-871cb42 > .e-con-inner,
body:is(.page-id-1654,.page-id-2806) .elementor-element-871cb42 > .elementor-widget-wrap { position: relative; z-index: 2; }
body:is(.page-id-1634,.page-id-2808) .prc-cert-hero,
body:is(.page-id-1654,.page-id-2806) .prc-cert-hero { position: relative; z-index: 2; }
body:is(.page-id-1634,.page-id-2808) .prc-cert-hero .prc-eyebrow,
body:is(.page-id-1634,.page-id-2808) .prc-cert-hero__title,
body:is(.page-id-1634,.page-id-2808) .prc-cert-hero .prc-lede,
body:is(.page-id-1654,.page-id-2806) .prc-cert-hero .prc-eyebrow,
body:is(.page-id-1654,.page-id-2806) .prc-cert-hero__title,
body:is(.page-id-1654,.page-id-2806) .prc-cert-hero .prc-lede { text-shadow: 0 2px 16px rgba(0,0,0,.5); }

/* a11y (WCAG 1.4.1): in-text prose links must not be distinguished by colour
   alone — underline them. Scoped to text/content widgets so it never touches
   button widgets or arrow-cue CTAs. Fixes the legal/ODR links on impressum +
   legaldisclosures (a11y audit 2026-06-16). */
.elementor-widget-text-editor a:not(.elementor-button):not([class*="button"]),
.elementor-widget-theme-post-content a:not(.elementor-button):not([class*="button"]) {
  text-decoration: underline;
}

/* Success-stories card CTAs ("Story ansehen"): solid, high-visibility button.
   White reads on BOTH the cyan- and pink-overlay cards (a single brand colour
   vanishes on same-colour cards) and passes AA. Hover → brand cyan. 2026-06-16. */
body.page-id-1024 .elementor-button-link.elementor-size-xs,
body.page-id-2814 .elementor-button-link.elementor-size-xs {
  background-color: #FFFFFF !important;
  border-color: #FFFFFF !important;
  color: #192D41 !important;
  box-shadow: 0 6px 18px rgba(0,0,0,0.30) !important;
}
body.page-id-1024 .elementor-button-link.elementor-size-xs .elementor-button-text,
body.page-id-2814 .elementor-button-link.elementor-size-xs .elementor-button-text {
  color: #192D41 !important;
}
body.page-id-1024 .elementor-button-link.elementor-size-xs:hover,
body.page-id-2814 .elementor-button-link.elementor-size-xs:hover {
  background-color: #02CBFF !important;
  border-color: #02CBFF !important;
}

/* ESG-RATING (1654) — EcoVadis medal SVG stretched to full column width (~524px),
   dominating the two-column block. Cap it so the badge supports the text, not vice
   versa. Marcel review 9.1, 2026-06-22. CSS (not _elementor_data) on purpose:
   reversible + collision-proof while a parallel session edits Elementor data. */
body.page-id-1654 .elementor-element-5d064aa img,
body.page-id-1654 img.wp-image-1657 {
  max-width: 320px !important;  /* beats Elementor post-1654.css ".elementor-1654 ... img{max-width:100%}" (0,3,1) */
  width: 100% !important;
  height: auto !important;
  display: block !important;
  margin-inline: auto !important;
}

/* ESG-RATING (1654) 9.1 cont. — rebalance the medal|text row (8bad4eb medal / 98c4eab text):
   medal column was the wider one (662 vs 494). Narrow the medal side, widen the text side.
   Desktop only; mobile keeps Elementor's stacked layout. Marcel review, 2026-06-22. */
@media (min-width: 1025px) {
  body.page-id-1654 .elementor-element-8bad4eb {
    flex: 0 0 400px !important;
    width: 400px !important;
    max-width: 400px !important;
  }
  body.page-id-1654 .elementor-element-98c4eab {
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: none !important;
  }
}
