.st0{fill:#FFFFFF;}
	.st1{fill:#F39200;}

/* --- Main Layout Container (The Card) --- */
        .professional-layout {
            max-width: 900px; /* Adjust max-width as needed */
            margin: 40px auto; /* Center the content with top/bottom margin */
            padding: 30px 40px; /* Padding inside the container */
            background-color: #2b2b2b; /* Dark background for the card */
            border: 1px solid #444; /* Subtle border for dark theme */
            box-shadow: 0 3px 10px rgba(0,0,0,0.5); /* Adjusted shadow for dark */
            color: #e0e0e0; /* Light default text color for the card */
        }

        /* --- Logo --- */
        .professional-layout .logo {
            display: block;
            margin: 0 auto 30px auto; /* Center logo, add bottom margin */
            max-width: 200px; /* Limit logo size */
            height: auto; /* Maintain aspect ratio */
            /* Consider filter: invert(1) brightness(1.5); if logo needs adapting for dark bg */
        }

        /* --- Headings --- */
        .professional-layout h1,
        .professional-layout h2,
        .professional-layout h3 {
            color: #ffffff; /* White headings for contrast */
            margin-top: 1.5em;
            margin-bottom: 0.8em;
            line-height: 1.3;
        }

        .professional-layout h1 {
            font-size: 1.8em; /* Larger for main title */
            text-align: center;
            margin-top: 0; /* Reduce top margin if it follows logo directly */
            border-bottom: 2px solid #555; /* Dark theme separator line */
            padding-bottom: 0.5em;
        }

        .professional-layout h2 {
            font-size: 1.5em;
            border-bottom: 1px solid #555; /* Dark theme separator line */
            padding-bottom: 0.4em;
            margin-top: 0; /* No top margin for the first H2 in a section */
        }

        .professional-layout h3 {
            font-size: 1.1em;
            text-transform: uppercase; /* As per original inline style */
            color: #cccccc; /* Slightly less bright than main headings */
            margin-top: 2em; /* More space before H3 */
            margin-bottom: 0.6em;
        }

        /* --- Paragraphs & Address --- */
        .professional-layout p,
        .professional-layout address {
            margin-bottom: 1em;
            color: #dcdcdc; /* Light gray text */
        }

        .professional-layout address {
            font-style: normal; /* Override default italic */
        }

     
      

 

        .professional-layout #disclaimer {
           border-top: 1px solid #444; /* Dark theme separator line before disclaimer */
           padding-top: 30px; /* Space above the disclaimer heading */
        }

        /* --- Specific Info Blocks --- */
        .contact-info p,
        .management-info p,
        .legal-info p {
            margin-bottom: 0.5em; /* Tighter spacing within info blocks */
        }
         .management-info strong {
             color: #e5e5e5; /* Ensure strong tag is also light */
         }

        /* --- Hidden Elements --- */
        .professional-layout .hidden-credit {
            display: none; /* Keep this hidden as per original */
        }

        /* --- Responsive Adjustments (Optional) --- */
        @media (max-width: 600px) {
            .professional-layout {
                margin: 20px 10px;
                padding: 20px;
            }
            .professional-layout h1 { font-size: 1.6em; }
            .professional-layout h2 { font-size: 1.4em; }
            .professional-layout h3 { font-size: 1.0em; }
        }

.zm-contact-card {
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    background: #1f1e1e;
    line-height: 23px
}

.zm-logo {
    display: block;
    margin-bottom: 20px
}

.zm-company-name {
    font-size: 1.2em;
    margin-bottom: 1em;
    
}

.zm-address {
    font-style: normal;
    margin-bottom: 1em
}

.zm-phone,.zm-email {
    margin-bottom: 0.5em
}

.zm-contact-card a {
    color: inherit;
    text-decoration: none
}

.zm-contact-card a:hover {
    text-decoration: underline
}

.zm-legal-info {
    font-size: 0.9em;
    color: #898989;
    border-top: 1px solid #eee;
    padding-top: 1em;
    margin-top: 1em
}

.popover {
    display: none !important;
}
.validation-notices {
    display: none !important;
}

#g-mobilemenu-container {
    margin: -7px;
}

.g-cta-button.style1 .g-cta-inner {

    background: #585c53 !important;

}
.tisax-logo .st0 { fill: #FFFFFF; }
.tisax-logo .st1 { fill: #F39200; }

/* Fixierter Header - als sticky, damit beim ersten Scroll nichts springt */
#g-page-surround { overflow-x: clip; overflow-y: visible; }
.g-fixed-container { position: sticky; top: 0; z-index: 1003; }

/* Teilnehmer-Registrierung Formular (modernisiert, im Seiten-Design) */
#pf { width: 100%; display: flex; flex-flow: row-reverse; color: #b9bdb4;
  font-size: .85rem; margin-bottom: .75rem; }
.fabrikForm { max-width: 75rem; margin: 0 auto 3rem; }
.fabrikForm .fabrikGroup { border: 0; margin: 0 0 2rem; padding: 0; background: #3a3d38; }
.fabrikForm .legend { display: block; font-size: 1.15rem; font-weight: 700; color: #fff;
  background: #3a8522; margin: 0 0 1.5rem; padding: .75rem 1.4rem; width: 100%;
  filter: drop-shadow(2px 6px 4px black); line-height: 1.35; }
.cp-reg-title { background: #3a8522; color: #fff; font-size: 1.75rem; font-weight: 700;
  margin: 0 auto 1.5rem; padding: 1rem 1.4rem; max-width: 75rem; line-height: 1.25;
  filter: drop-shadow(2px 6px 4px black); }
#pf { max-width: 75rem; margin: 0 auto .75rem; }
.fabrikForm .fabrikGroup > .row-fluid,
.fabrikForm .fabrikGroup > .fabrikSubGroup { margin-left: 1.4rem; margin-right: 1.4rem; }
.fabrikForm .fabrikGroup > .row-fluid:last-child { padding-bottom: 1.4rem; }
.fabrikForm .row-fluid { display: flex; flex-wrap: wrap; gap: 1.1rem 1.5rem; margin-bottom: 1.1rem; }
.fabrikForm .row-fluid > * { float: none !important; margin-left: 0 !important; box-sizing: border-box; }
.fabrikForm .row-fluid > .control-group { flex: 1 1 18rem; min-width: 0; margin: 0; }
.fabrikForm .row-fluid > .span12 { flex: 1 1 100%; }
.fabrikForm .fabrikLabel { display: block; font-size: .9rem; font-weight: 500; color: #e8eae5;
  margin-bottom: .4rem; line-height: 1.35; }
.fabrikForm .fabrikinput { width: 100%; padding: .7rem .8rem; font-size: .95rem;
  border: 1px solid #5c615a; border-radius: 3px; background: #22241f; color: #f2f4ef; }
.fabrikForm .fabrikinput:focus { outline: none; border-color: #3a8522;
  box-shadow: 0 0 0 2px rgba(58,133,34,.45); }
.fabrikForm select.fabrikinput { appearance: none; padding-right: 2rem;
  background-image: linear-gradient(45deg, transparent 50%, #9aa093 50%),
    linear-gradient(135deg, #9aa093 50%, transparent 50%);
  background-position: calc(100% - 18px) 55%, calc(100% - 12px) 55%;
  background-size: 6px 6px, 6px 6px; background-repeat: no-repeat; }
.fabrikForm input[type="checkbox"].fabrikinput,
.fabrikForm input[type="checkbox"] { width: 1.05rem; height: 1.05rem; accent-color: #3a8522;
  flex: 0 0 auto; margin: 0; }
.fabrikForm .fabrikElement > .row-fluid { display: flex; flex-wrap: wrap; align-items: stretch;
  gap: .5rem .6rem; margin-bottom: 0; }
.fabrikForm .fabrikgrid_checkbox { flex: 0 0 auto; width: auto !important; max-width: none;
  padding: 0; margin: 0; display: flex; }
.fabrikForm .checkbox { display: inline-flex; align-items: center; gap: .5rem; font-size: .9rem;
  line-height: 1.2; margin: 0; padding: .5rem .8rem; border: 1px solid #5c615a; border-radius: 3px;
  background: #2f322d; color: #e8eae5; cursor: pointer; width: 100%; }
.fabrikForm .checkbox:hover { border-color: #3a8522; }
.fabrikForm .checkbox span { white-space: nowrap; }
.fabrikForm select.fabrikinput { line-height: 1.4; height: auto; }
.fabrikForm .fabrikElement { margin-top: .1rem; }
.fabrikForm .checkbox:has(input:checked) { background: rgba(58,133,34,.25); border-color: #3a8522; }
.fabrikForm .cp-birthday-row { display: flex; gap: .5rem; }
.fabrikForm .fabrikSubGroup { position: relative; border: 1px solid rgba(255,255,255,.14);
  border-radius: 3px; background: #33362f; padding: 1.2rem 1.3rem; margin-bottom: 1.4rem; }
.fabrikForm .fabrikSubGroup [data-role="group-repeat-intro"] { font-weight: 700; color: #fff;
  margin-bottom: 1rem; font-size: 1rem; }
.fabrikForm .fabrikGroupRepeater { position: absolute; right: 1rem; top: 1rem; display: flex; gap: .35rem; }
.fabrikForm .btn { border: 0; border-radius: 3px; padding: .4rem .7rem; color: #fff; cursor: pointer;
  line-height: 1; }
.fabrikForm .btn-success { background: #3a8522; }
.fabrikForm .btn-success:hover { background: #3d8b26; }
.fabrikForm .btn-danger { background: #9b2c2c; }
.fabrikForm .form-actions { margin: 1.5rem 0 0; }
.fabrikForm .btn-primary { background: #3a8522; padding: .85rem 1.6rem; font-weight: 700;
  font-size: 1rem; transition: background .25s ease; }
.fabrikForm .btn-primary:hover { background: #3d8b26; }
.fabrikForm .btn-primary[disabled] { opacity: .6; cursor: default; }
.cp-optin { display: inline-flex; margin-top: .5rem; }
.cp-form-success { max-width: 75rem; margin: 0 auto; padding: 1.25rem 1.4rem; color: #fff;
  background: #3a3d38; border-left: 4px solid #3a8522; }
.cp-form-error { padding: .85rem 1rem; background: rgba(200,0,0,.15); border-left: 4px solid #c00;
  color: #ffdada; margin: 0 1.4rem 1rem; }
@media only all and (max-width: 47.99rem) {
  .fabrikForm .row-fluid > .control-group { flex: 1 1 100%; }
}

/* Hero-Carousel: nur der Fade zwischen den Slides (ersetzt Owl-Carousel-JS).
   Alle uebrigen Styles kommen 1:1 aus helium_25.css / custom_25.css. */
.cp-owl { position: relative; display: block; width: 100%; }
.cp-owl .g-owlcarousel-item { position: absolute; top: 0; left: 0; width: 100%; opacity: 0;
  transition: opacity 1.2s ease-in-out; pointer-events: none; }
.cp-owl .g-owlcarousel-item.is-active { position: relative; opacity: 1; pointer-events: auto; }
.cp-owl .g-owlcarousel-item-img img { width: 100%; height: auto; display: block; }

/* Endzustand der anime.js-Animation des Originals (transform wird dort nach
   dem Einblenden auf scaleX(1) gesetzt, wodurch das translate entfaellt). */
.cp-owl .grid-container1.animejs { transform: scaleX(1) !important; }

/* Owl-Carousel setzt im Original .owl-item img { display:block; width:100% } */
.cp-owl .g-owlcarousel-item img { display: block; width: 100%; }

/* --- Hero: schwaecherer Blur, Unblur beim Hover auf den Button --- */
.cp-owl .teas1 .g-owlcarousel-item-img {
  filter: blur(1px);
  opacity: 0.78;
  transition: filter .4s ease, opacity .4s ease;
}
.cp-owl .teas1.cp-unblur .g-owlcarousel-item-img { filter: blur(0); opacity: 1; }

/* "Mehr erfahren" - kleiner und mittig */
.cp-owl span.text.bottom-right {
  position: relative !important;
  right: auto !important;
  text-align: center !important;
  width: 100%;
  left: 50%;
}
.cp-owl a.cp-more-btn {
  display: inline-block;
  font-size: 0.55em;
  letter-spacing: .04em;
  padding: .35em 1.1em;
  border: 1px solid rgba(255,255,255,.8);
  color: #fff;
  text-decoration: none;
  transition: background .25s ease, color .25s ease;
}
.cp-owl a.cp-more-btn:hover { background: #4fae31; border-color: #4fae31; color: #fff; }

/* --- Akkordeon: weiches Auf-/Zuklappen --- */
.uk-accordion-content.cp-panel {
  display: block !important;
  overflow: hidden;
  transition: height .45s cubic-bezier(.22,.7,.3,1), opacity .45s cubic-bezier(.22,.7,.3,1);
  opacity: 1;
}
.uk-accordion-content.cp-panel:not(.uk-active) {
  opacity: 0; padding-top: 0 !important; padding-bottom: 0 !important;
  margin-top: 0 !important; margin-bottom: 0 !important; border: 0 !important;
}

/* --- Leistungen-Überschrift: gleicher Schatten wie die anderen H1 --- */
.leistungen-titel { filter: drop-shadow(2px 6px 4px black); }

/* --- Slideshow im Unternehmens-Block: 5 px nach links schieben --- */
#ueberunsbild .slideshow { transform: translateX(-5px); }

/* --- Weltkarten-Header mittig --- */
#worldmap-header .g-content, #worldmap-header h2 { text-align: center; }
.worldmap { text-align: center; }
.worldmap img { display: inline-block; max-width: 100%; height: auto; }

/* --- Teilnehmer werden --- */
#g-above .tn-intro { max-width: 75rem; margin: 0 auto 2.5rem; background: #272927;
  padding: 0 0 1.75rem; filter: drop-shadow(2px 4px 6px black); }
.tn-page-title { background: #3a8522; color: #fff; font-size: 1.75rem; font-weight: 700; margin: 0;
  padding: 1rem 1.4rem; line-height: 1.25; filter: drop-shadow(2px 6px 4px black); }
.tn-intro-body { padding: 1.5rem 1.6rem 0; line-height: 1.5; }
.tn-intro-body p { margin-bottom: .8rem; }
.tn-intro-body p:last-child { margin-bottom: 0; }
.tn-cards { max-width: 75rem; margin: 0 auto; display: grid; gap: 2rem;
  grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tn-card { background: #272927; display: flex; flex-direction: column; padding: 0 0 1.5rem;
  filter: drop-shadow(2px 4px 6px black); }
.tn-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
.tn-card-title { background: #3a8522; color: #fff; font-size: 1.3rem; font-weight: 700; margin: 0;
  padding: .85rem 1.2rem; line-height: 1.3; filter: drop-shadow(2px 6px 4px black); }
.tn-card-body { padding: 1.2rem 1.4rem 0; line-height: 1.5; }
.tn-card-body p { margin-bottom: .8rem; }
.tn-card-body li { line-height: 1.5; margin-bottom: .35rem; }
.tn-card-body p:last-child { margin-bottom: 0; }
.tn-card-body a, .tn-intro-body a { color: #7fd45f; text-decoration: underline; }

/* Hero-Button "Teilnehmen" */
.cp-tn-hero-btn.button { background: #3a8522 !important; border: 0 !important; color: #fff !important;
  font-weight: 700; letter-spacing: .06em; padding: 1rem 2rem; text-transform: uppercase;
  filter: drop-shadow(2px 4px 6px black); transition: background .25s ease; }
.cp-tn-hero-btn.button:hover { background: #4fae31 !important; }
.tn-cta { max-width: 75rem; margin: 2.5rem auto 0; background: #585c53;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 1rem; padding: 1.25rem 1.4rem; }
.tn-cta h3 { margin: 0; font-size: 1.25rem; color: #fff; }
.tn-cta-button { background: #3a8522; color: #fff !important; text-decoration: none;
  padding: .7rem 1.4rem; font-weight: 700; display: inline-block; transition: background .25s ease; }
.tn-cta-button:hover { background: #4fae31; }
@media only all and (max-width: 47.99rem) {
  .tn-cards { grid-template-columns: 1fr; }
}

/* --- Interaktive Weltkarte --- */
.cp-worldmap { max-width: 75rem; margin: 0 auto; }
.cp-worldmap svg { width: 100%; height: auto; display: block; }
.cp-map-land path { fill: #4a4e47; stroke: #2f322e; stroke-width: .5; }
.cp-marker { cursor: pointer; outline: none; }
.cp-marker-hit { fill: transparent; }
.cp-marker-dot { fill: #4fae31; transition: r .2s ease, fill .2s ease; }
.cp-marker-halo { fill: #4fae31; opacity: .18; transition: opacity .2s ease, r .2s ease; }
.cp-marker:hover .cp-marker-dot, .cp-marker.is-active .cp-marker-dot,
.cp-marker:focus-visible .cp-marker-dot { r: 5.2; fill: #7fd45f; }
.cp-marker:hover .cp-marker-halo, .cp-marker.is-active .cp-marker-halo { opacity: .4; r: 13; }
.cp-map-label text { fill: #fff; font-size: 15px; font-weight: 700;
  paint-order: stroke; stroke: #23251f; stroke-width: 5px; stroke-linejoin: round; }
.cp-worldmap-hint { text-align: center; font-size: .85rem; opacity: .6; margin-top: .5rem; }
#colsheader .g-content, #colsheader h2, #partnerheadertext { text-align: center; }

/* --- Header-Menue vertikal zentrieren --- */
#g-navigation .g-grid:nth-of-type(3) { align-items: center; }
#topmenu .g-content { display: flex; align-items: center; min-height: 107px; }
.g-main-nav { width: 100%; }
.g-toplevel { display: flex; align-items: center; }

/* --- Partner: Logos immer in Farbe, keine Effekte --- */
#partnerband a,
#partnerband img,
#partnerband a:hover img,
#partnerband img:hover { transform: none !important; transition: none !important;
  filter: none !important; opacity: 1 !important; }
#partnerband a { perspective: none !important; transform-style: flat !important; }

/* --- Hero: konstante Hoehe unabhaengig vom Bildformat --- */
.cp-owl .g-owlcarousel-item-img { height: 512px; overflow: hidden; }
.cp-owl .g-owlcarousel-item-img img { height: 100%; width: 100%; object-fit: cover; object-position: center; }
@media (max-width: 900px) { .cp-owl .g-owlcarousel-item-img { height: 320px; } }

/* --- Weltkarten-Header wirklich mittig --- */
#worldmap-header .g-content > *, #worldmap-header h2 { margin-left: auto; margin-right: auto; }

/* ============ Neues Registrierungs-Formular ============ */
.cp-reg { max-width: 66rem; margin: 0 auto 4rem; padding: 0 1rem; }
.cp-reg .cp-reg-title { max-width: none; margin: 0 0 1.75rem; }
.cp-reg .cp-hint { color: #b9bdb4; font-size: .85rem; margin: 0 0 1.25rem; text-align: right; }
.cp-reg .cp-req { color: #7ec24f; }

.cp-card { background: #34372f; border: 1px solid rgba(255,255,255,.08); margin: 0 0 1.75rem; }
.cp-card-title { background: #3a8522; color: #fff; font-size: 1.05rem; font-weight: 700;
  letter-spacing: .02em; margin: 0; padding: .85rem 1.4rem; line-height: 1.35;
  filter: drop-shadow(2px 6px 4px rgba(0,0,0,.55)); }
.cp-card-body { padding: 1.6rem 1.4rem; }

.cp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1.5rem; }
.cp-field { min-width: 0; display: flex; flex-direction: column; }
.cp-field-wide { grid-column: 1 / -1; }
.cp-label { display: block; font-size: .82rem; font-weight: 600; letter-spacing: .03em;
  text-transform: uppercase; color: #cfd3ca; margin: 0 0 .4rem; line-height: 1.3; }
.cp-input { width: 100%; box-sizing: border-box; padding: .7rem .85rem; font-size: .95rem;
  line-height: 1.35; color: #f2f4ef; background: #24261f; border: 1px solid #4a4e45;
  border-radius: 2px; transition: border-color .18s ease, box-shadow .18s ease; }
.cp-input::placeholder { color: #8b8f85; }
.cp-input:hover { border-color: #6a6f63; }
.cp-input:focus { outline: none; border-color: #4fae31; box-shadow: 0 0 0 2px rgba(79,174,49,.25); }
input.cp-input:disabled { background-color: #24261f; border-color: #4a4e45; color: #8b8f85;
  cursor: not-allowed; opacity: 1; }
select.cp-input { appearance: none; -webkit-appearance: none; padding-right: 2.6rem; cursor: pointer;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b9bdb4' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-position: right .7rem center; background-size: 1.05rem 1.05rem;
  background-repeat: no-repeat; }
select.cp-input:hover { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); }
select.cp-input option { background: #24261f; color: #e8eae5; }
select.cp-input:disabled { background-color: #24261f; border-color: #4a4e45; color: #8b8f85;
  cursor: not-allowed; opacity: 1; }
/* gleiche Hoehe/Optik wie die durchsuchbaren Comboboxen */
.cp-input, select.cp-input, .cp-combo-input { min-height: 44px; }
.cp-triple { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }

.cp-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.cp-chip { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem .9rem;
  font-size: .9rem; line-height: 1.2; color: #e8eae5; background: #24261f;
  border: 1px solid #4a4e45; border-radius: 999px; cursor: pointer;
  transition: background .18s ease, border-color .18s ease, color .18s ease; }
.cp-chip input { width: 1rem; height: 1rem; margin: 0; accent-color: #4fae31; cursor: pointer; }
.cp-chip:hover { border-color: #4fae31; }
.cp-chip.is-checked { background: rgba(79,174,49,.18); border-color: #4fae31; color: #fff; }

.cp-vehicle { border: 1px solid rgba(255,255,255,.1); background: #2b2e27; padding: 1.2rem 1.2rem 1.3rem;
  margin: 0 0 1.2rem; }
.cp-vehicle.is-new { animation: cpVehicleIn .38s cubic-bezier(.22,.7,.3,1) both; }
@keyframes cpVehicleIn {
  from { opacity: 0; transform: translateY(-10px) scaleY(.96); max-height: 0; padding-top: 0; padding-bottom: 0;
    margin-bottom: 0; overflow: hidden; }
  to { opacity: 1; transform: none; max-height: 3000px; }
}
@media (prefers-reduced-motion: reduce) { .cp-vehicle.is-new { animation: none; } }

.cp-vehicle-head { display: flex; align-items: center; justify-content: space-between;
  margin: 0 0 1rem; }
.cp-vehicle-nr { font-weight: 700; color: #fff; font-size: .95rem; letter-spacing: .04em;
  text-transform: uppercase; }

.cp-btn-ghost { background: transparent; border: 1px solid #6a6f63; color: #cfd3ca;
  padding: .35rem .8rem; font-size: .8rem; border-radius: 2px; cursor: pointer;
  transition: color .18s ease, border-color .18s ease; }
.cp-btn-ghost:hover { color: #fff; border-color: #b5443c; background: rgba(181,68,60,.18); }
.cp-btn-secondary { background: transparent; border: 1px dashed #6a6f63; color: #e8eae5;
  padding: .7rem 1.2rem; font-size: .9rem; border-radius: 2px; cursor: pointer; width: 100%;
  transition: border-color .18s ease, background .18s ease; }
.cp-btn-secondary:hover { border-color: #4fae31; background: rgba(79,174,49,.12); color: #fff; }

.cp-optin { display: flex; align-items: flex-start; gap: .7rem; font-size: .9rem; line-height: 1.5;
  color: #dfe2da; background: #34372f; border: 1px solid rgba(255,255,255,.08);
  padding: 1rem 1.2rem; margin: 0 0 1.5rem; cursor: pointer; }
.cp-optin input { width: 1.05rem; height: 1.05rem; margin-top: .15rem; accent-color: #4fae31;
  flex: 0 0 auto; cursor: pointer; }
.cp-optin a { color: #7ec24f; text-decoration: underline; }

.cp-actions { display: flex; justify-content: center; }
.cp-btn-primary { background: #3a8522; color: #fff; border: 0; padding: 1.15rem 3.25rem;
  min-width: 18rem; font-size: 1.12rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  border-radius: 2px; cursor: pointer; filter: drop-shadow(2px 6px 4px rgba(0,0,0,.5));
  transition: background .18s ease, transform .18s ease; }
.cp-btn-primary:hover { background: #4fae31; transform: translateY(-1px); }
.cp-btn-primary[disabled] { opacity: .6; cursor: default; transform: none; }

.cp-note { padding: 1rem 1.2rem; font-size: .95rem; line-height: 1.5; margin: 0 0 1.25rem; }
.cp-note-ok { background: rgba(79,174,49,.18); border-left: 4px solid #4fae31; color: #eaf5e4; }
.cp-note-error { background: rgba(181,68,60,.2); border-left: 4px solid #b5443c; color: #fbe7e5; }

/* --- Durchsuchbare Auswahl (Combobox) --- */
.cp-combo { position: relative; }
.cp-combo-input { padding-right: 2.4rem; }
.cp-combo-clear { position: absolute; top: 50%; right: .35rem; transform: translateY(-50%);
  width: 2rem; height: 2rem; display: flex; align-items: center; justify-content: center;
  background: transparent; border: 0; border-radius: 999px; color: #b9bdb4; font-size: 1.35rem;
  line-height: 1; cursor: pointer; transition: color .15s ease, background .15s ease; }
.cp-combo-clear:hover { color: #fff; background: rgba(255,255,255,.1); }
/* Auswahlliste ohne Suche: Chevron wie bei den frueheren Selects */
.cp-combo-plain .cp-combo-input { cursor: pointer; padding-right: 2.6rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b9bdb4' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-position: right .7rem center; background-size: 1.05rem 1.05rem; background-repeat: no-repeat; }
.cp-combo-plain .cp-combo-clear { right: 1.9rem; }
.cp-combo-list { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 60;
  margin: 0; padding: .25rem; list-style: none; max-height: 16rem; overflow-y: auto;
  background: #24261f; border: 1px solid #4fae31; border-radius: 2px;
  box-shadow: 0 12px 28px rgba(0,0,0,.55); -webkit-overflow-scrolling: touch; }
.cp-combo-list li { margin: 0; }
.cp-combo-option { display: block; width: 100%; text-align: left; background: transparent;
  border: 0; color: #e8eae5; font-size: .95rem; line-height: 1.3; padding: .575rem .8rem;
  cursor: pointer; border-radius: 2px; }
.cp-combo-option.is-active { background: rgba(79,174,49,.22); color: #fff; }
.cp-combo-option.is-selected { color: #7ec24f; font-weight: 600; }
.cp-combo-empty { padding: .75rem .8rem; color: #8b8f85; font-size: .9rem; }

@media (max-width: 700px) {
  .cp-grid { grid-template-columns: 1fr; gap: .95rem; }
  .cp-actions { justify-content: stretch; }
  .cp-btn-primary { width: 100%; padding: 1.05rem 1rem; min-width: 0; font-size: 1.02rem; }
  .cp-reg { padding: 0 .75rem; }
  .cp-card-body { padding: 1.1rem .9rem; }
  .cp-vehicle { padding: 1rem .85rem 1.1rem; }
  .cp-triple { gap: .35rem; }
  .cp-triple .cp-input { padding: .7rem .4rem; }
  .cp-chips { gap: .45rem; }
  .cp-chip { flex: 1 1 auto; justify-content: flex-start; min-height: 44px; }
  .cp-hint { text-align: left; }
  /* iOS zoomt bei Schriftgroessen unter 16px in Eingabefelder hinein */
  .cp-input, select.cp-input, .cp-combo-input { font-size: 16px; }
  .cp-combo-list { max-height: 14rem; }
  .cp-combo-option { min-height: 44px; padding: .7rem .8rem; }
}


/* --- Mobiles Off-Canvas-Menü + responsiver Header --- */
.cp-burger { display: none; position: fixed; top: .55rem; right: .55rem; z-index: 1200;
  width: 46px; height: 46px; padding: 0; border: 0; border-radius: 3px;
  background: rgba(30,32,28,.9); color: #fff; font-size: 1.35rem; line-height: 1;
  cursor: pointer; align-items: center; justify-content: center; }
.cp-burger:focus-visible { outline: 2px solid #4fae31; outline-offset: 2px; }

.cp-offcanvas-overlay { position: fixed; inset: 0; z-index: 1150; background: rgba(0,0,0,.55);
  opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.cp-offcanvas-overlay.is-open { opacity: 1; pointer-events: auto; }

.cp-offcanvas { position: fixed; top: 0; right: 0; bottom: 0; z-index: 1180; width: min(84vw, 20rem);
  background: #22241f; box-shadow: -6px 0 24px rgba(0,0,0,.5); padding: 4.25rem 0 2rem;
  overflow-y: auto; -webkit-overflow-scrolling: touch;
  transform: translateX(100%); transition: transform .28s ease; visibility: hidden; }
.cp-offcanvas.is-open { transform: translateX(0); visibility: visible; }
.cp-offcanvas-list { list-style: none; margin: 0; padding: 0; }
.cp-offcanvas-list li { border-bottom: 1px solid rgba(255,255,255,.08); }
.cp-offcanvas-list a { display: block; padding: .95rem 1.4rem; min-height: 44px; color: #f2f4ef;
  font-size: 1rem; line-height: 1.4; text-decoration: none; }
.cp-offcanvas-list a:hover, .cp-offcanvas-list a:focus { background: #3a8522; color: #fff; }

/* Sprach-Pille neben dem Burger (nur im eingeklappten Header) */
.cp-lang-mini { display: none; position: fixed; top: .55rem; right: 3.9rem; z-index: 1200;
  align-items: center; justify-content: center; height: 48px; padding: 0 .8rem;
  border-radius: 6px; border: 1px solid rgba(255,255,255,.14);
  background: rgba(24,26,22,.92); box-shadow: 0 4px 14px rgba(0,0,0,.4);
  color: #f2f4ef; font-size: .8rem; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; text-decoration: none;
  transition: background .2s ease, color .2s ease; }
.cp-lang-mini:hover, .cp-lang-mini:focus { background: #3a8522; color: #fff; }

/* Header klappt bereits im Tablet-Bereich auf das Burger-Menue um,
   weil Logo + Menue + Sprachumschalter unter ~1100px kollidieren. */
@media only all and (max-width: 68.75rem) {
  .cp-burger { display: flex; }
  .cp-lang-mini { display: inline-flex; }
  #topmenu, #language-selector, #sliderlinks { display: none !important; }
  #g-navigation .g-container { padding-left: .75rem; padding-right: .75rem; }
  #toplogo .g-content { padding: .35rem 0; }
  #toplogo img { max-height: 84px !important; width: auto; }
  #toplogo .g-block, #g-navigation .g-block.size-22 { width: 100%; flex: 0 0 100%; }
}
@media only all and (max-width: 47.99rem) {
  #toplogo img { max-height: 70px !important; }
}

/* ============ Mobiles Menü: Feinschliff + animierter Burger ============ */
.cp-burger { width: 48px; height: 48px; border-radius: 6px;
  background: rgba(24,26,22,.92); border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 4px 14px rgba(0,0,0,.4); transition: background .25s ease, transform .2s ease; }
.cp-burger:active { transform: scale(.94); }
.cp-burger.is-open { background: #3a8522; border-color: #3a8522; }
.cp-burger-box { position: relative; display: block; width: 22px; height: 16px; }
.cp-burger-box span { position: absolute; left: 0; width: 100%; height: 2px; border-radius: 2px;
  background: #fff; transition: transform .28s cubic-bezier(.4,0,.2,1), opacity .18s ease, top .28s ease; }
.cp-burger-box span:nth-child(1) { top: 0; }
.cp-burger-box span:nth-child(2) { top: 7px; }
.cp-burger-box span:nth-child(3) { top: 14px; }
.cp-burger.is-open .cp-burger-box span:nth-child(1) { top: 7px; transform: rotate(45deg); }
.cp-burger.is-open .cp-burger-box span:nth-child(2) { opacity: 0; transform: scaleX(.2); }
.cp-burger.is-open .cp-burger-box span:nth-child(3) { top: 7px; transform: rotate(-45deg); }

.cp-offcanvas { background: linear-gradient(180deg, #262922 0%, #1b1d18 100%);
  border-left: 1px solid rgba(255,255,255,.06); }
.cp-offcanvas-overlay { backdrop-filter: blur(2px); }
.cp-offcanvas-list a { position: relative; display: flex; align-items: center;
  padding: 1rem 1.4rem; font-weight: 600; letter-spacing: .02em;
  transform: translateX(14px); opacity: 0; transition: background .2s ease, color .2s ease; }
.cp-offcanvas.is-open .cp-offcanvas-list a { animation: cpMenuIn .34s cubic-bezier(.2,.7,.3,1) forwards; }
.cp-offcanvas-list li:nth-child(1) a { animation-delay: .06s; }
.cp-offcanvas-list li:nth-child(2) a { animation-delay: .1s; }
.cp-offcanvas-list li:nth-child(3) a { animation-delay: .14s; }
.cp-offcanvas-list li:nth-child(4) a { animation-delay: .18s; }
.cp-offcanvas-list li:nth-child(5) a { animation-delay: .22s; }
.cp-offcanvas-list li:nth-child(6) a { animation-delay: .26s; }
.cp-offcanvas-list li:nth-child(7) a { animation-delay: .3s; }
.cp-offcanvas-list a::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0;
  width: 3px; background: #4fae31; transform: scaleY(0); transform-origin: center;
  transition: transform .22s ease; }
.cp-offcanvas-list a:hover::before, .cp-offcanvas-list a:focus::before { transform: scaleY(1); }
@keyframes cpMenuIn { to { transform: translateX(0); opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .cp-offcanvas-list a { transform: none; opacity: 1; }
  .cp-offcanvas.is-open .cp-offcanvas-list a { animation: none; }
}

/* ============ Hero mobil: Bild mittig, Button sichtbar ============ */
@media only all and (max-width: 47.99rem) {
  .cp-owl .g-owlcarousel-item-img { height: 320px; }
  .cp-owl .g-owlcarousel-item-img img { object-position: 50% 50%; }
  .cp-owl .g-owlcarousel-item-content-container { width: 100% !important; }
  .cp-owl .g-owlcarousel-item-content-wrapper { position: static !important; left: 0 !important;
    top: 0 !important; padding: 0 1.25rem !important; }
  .cp-owl .g-owlcarousel-item-content { text-align: center; padding: 0 !important; }

  /* Startseite: Logo + "Mehr erfahren" statt der versteckten Desktop-Anordnung */
  .cp-owl .g-owlcarousel-item-desc { display: block !important; margin: 0; padding: 0; }
  .cp-owl .animejs { position: static !important; transform: none !important; height: auto;
    margin: 0 auto; font-size: 1rem !important; }
  .cp-owl .grid-container1 { display: flex !important; flex-direction: column;
    align-items: center; justify-content: center; gap: .9rem; }
  .cp-owl .grid-container1 br { display: none; }
  .cp-owl span.text.upleft { display: none; }
  .cp-owl span.text.middle { position: static !important; left: auto !important;
    max-width: 62vw !important; }
  .cp-owl span.text.middle img { min-width: 0 !important; width: 100%; max-width: 240px; }
  .cp-owl span.text.bottom-right { position: static !important; left: auto !important;
    right: auto !important; width: auto; white-space: normal; }
  .cp-owl a.cp-more-btn { font-size: .8rem; padding: .6em 1.4em; }
  .cp-owl .teas1 .g-owlcarousel-item-img { filter: blur(0); opacity: .55; }

  /* Teilnehmer-werden: Titel + Button sichtbar und mittig */
  .cp-owl .g-owlcarousel-item-button,
  .cp-owl .g-owlcarousel-item-link { display: block !important; }
  .cp-owl .g-owlcarousel-item-title { text-align: center; font-size: 1.6rem !important;
    line-height: 2.1rem !important; margin: 0 0 1rem !important; }
  .cp-tn-hero-btn.button { display: inline-block !important; padding: .8rem 1.4rem;
    font-size: .8rem; }
}

/* ============ Mobil: Partnerleiste, TISAX-Leiste, Weltkarte ============ */
@media only all and (max-width: 47.99rem) {
  /* Partnerlogos: statt gequetschter Reihe ein aufgeräumtes Raster */
  #partnerband { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .25rem .5rem; padding: 1rem .75rem !important; border-top-width: 1.25rem !important;
    border-bottom-width: 1.25rem !important; align-items: center; justify-items: center; }
  #partnerband a { display: flex; align-items: center; justify-content: center; width: 100%; }
  #partnerband img { max-width: 100% !important; width: auto; max-height: 52px;
    padding: .5rem !important; filter: none !important; }
  #colsheader h2, #partnerheadertext { font-size: 1.4rem; line-height: 1.3; }

  /* TISAX-Leiste: gestapelt, mittig, angenehme Textgröße */
  #g-testimonials { font-size: 1rem !important; line-height: 1.5 !important;
    padding: 1.5rem 1rem !important; }
  #g-testimonials .g-grid { flex-direction: column; }
  #g-testimonials .g-block.size-50 { width: 100% !important; flex: 0 0 100% !important; }
  #g-testimonials .g-content { padding: .5rem 0 !important; margin: 0 !important; }
  #g-testimonials .g-block.align-left { text-align: center !important; }
  #partnertext { text-align: center; margin: 0; }
  #g-testimonials .tisax-logo { max-width: 180px; height: auto; margin: 0 auto; display: block; }

  /* Weltkarte: größere Marker/Labels, kein Hinweistext */
  .cp-worldmap { padding: 0 .25rem; }
  .cp-marker-dot { r: 4.6; }
  .cp-marker-halo { r: 11; opacity: .28; }
  .cp-map-label text { font-size: 13px; stroke-width: 4px; }
  .cp-worldmap-hint { display: none; }
}
@media only all and (max-width: 47.99rem) {
  #partnerband a:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .cp-marker-dot { r: 3.8; }
  .cp-marker-halo { r: 9; opacity: .2; }
}

/* Honeypot-Feld: unsichtbar, nur fuer Bots */
.cp-hp { position: absolute !important; left: -9999px !important; top: auto; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }

/* ===============================================================
   Rechtstexte (Datenschutzerklaerung / Privacy Policy)
   =============================================================== */
.cp-legal .item-page {
  max-width: 900px; margin: 0 auto; padding: 0 0 3rem;
}
.cp-legal .page-header {
  margin: 0 0 2rem; padding: 0; border: 0;
  filter: drop-shadow(2px 6px 4px black);
}
.cp-legal .page-header h2 {
  background: #3a8522; color: #fff; margin: 0;
  padding: 1rem 1.4rem; font-size: 1.75rem; font-weight: 700; line-height: 1.25;
}
.cp-legal [itemprop="articleBody"] {
  background: #2f322e; border: 1px solid rgba(255,255,255,.08);
  padding: 2rem 2.2rem 2.4rem; border-radius: 2px;
  filter: drop-shadow(2px 4px 6px rgba(0,0,0,.45));
}
.cp-legal [itemprop="articleBody"] p {
  color: #d9dcd6; font-size: .97rem; line-height: 1.6; margin: 0 0 1rem;
  hyphens: auto;
}
.cp-legal [itemprop="articleBody"] p:last-child { margin-bottom: 0; }
.cp-legal [itemprop="articleBody"] p br:first-child { display: none; }
.cp-legal .cp-legal-h {
  display: flex; align-items: baseline; gap: .6rem;
  color: #fff; font-size: 1.18rem; font-weight: 700; line-height: 1.3;
  margin: 2.4rem 0 1rem; padding: 0 0 .6rem;
  border-bottom: 2px solid rgba(58,133,34,.55);
  scroll-margin-top: 120px;
}
.cp-legal .cp-legal-h:first-child { margin-top: 0; }
.cp-legal .cp-legal-num {
  flex: 0 0 auto; background: #3a8522; color: #fff;
  font-size: .82rem; font-weight: 700; line-height: 1;
  padding: .38rem .55rem; border-radius: 2px; min-width: 1.9rem; text-align: center;
  filter: drop-shadow(1px 3px 3px rgba(0,0,0,.5));
}
.cp-legal [itemprop="articleBody"] strong { color: #fff; }
.cp-legal [itemprop="articleBody"] a {
  color: #8ec96f; text-decoration: none; border-bottom: 1px solid rgba(142,201,111,.4);
  word-break: break-word;
}
.cp-legal [itemprop="articleBody"] a:hover { color: #fff; border-bottom-color: #fff; }
.cp-legal [itemprop="articleBody"] ul,
.cp-legal [itemprop="articleBody"] ol { margin: 0 0 1.2rem 1.2rem; color: #d9dcd6; }
.cp-legal [itemprop="articleBody"] li { line-height: 1.6; margin-bottom: .35rem; }
.cp-legal [itemprop="articleBody"] table {
  width: 100%; border-collapse: collapse; margin: 0 0 1.2rem; color: #d9dcd6;
}
.cp-legal [itemprop="articleBody"] td,
.cp-legal [itemprop="articleBody"] th {
  border: 1px solid rgba(255,255,255,.12); padding: .55rem .7rem; text-align: left;
}
.cp-legal [itemprop="articleBody"] span[id^="cloak"] { color: #8ec96f; }

@media only all and (max-width: 47.99rem) {
  .cp-legal [itemprop="articleBody"] { padding: 1.3rem 1.1rem 1.6rem; }
  .cp-legal .page-header h2 { font-size: 1.35rem; padding: .8rem 1rem; }
  .cp-legal .cp-legal-h { font-size: 1.05rem; margin-top: 1.9rem; }
}

/* --- Ken-Burns-Slideshow: Sprung am Schleifenende und Dauer-Repaints beheben --- */
.slideshow { contain: paint; }
.slideshow-image {
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
/* Endstufe der ersten Ebene auf den Startwert angleichen (kein Sprung beim Neustart) */
@keyframes kenburns-1 {
  0%   { opacity: 1; transform: scale(1.3) translateX(-28px); }
  0.9375%  { opacity: 1; }
  24.0625% { opacity: 1; }
  25.9375% { opacity: 0; transform: scale(1); }
  99.0625% { opacity: 0; transform: scale(1.3) translateX(-28px); }
  100%     { opacity: 0; transform: scale(1.3) translateX(-28px); }
}
/* Animation anhalten, solange der Block nicht sichtbar ist */
.slideshow.is-paused .slideshow-image { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .slideshow-image { animation: none !important; opacity: 1; }
  .slideshow-image:not(:first-child) { opacity: 0; }
}
