/* ============================================================
   ce-fp.css  – DOM-bereinigt & nach Seitenfluss geordnet (Frontpage)
   Ladereihenfolge: bootstrap → basics → ce-fp
   Entfernt: Header/Nav/Footer/Modal + Basis-Settings (:root, html, body,
   a, .bg-section, .scrolled, .text-white) – kommen aus basics;
   Fremdseiten-Komponenten; tote Keyframes (dash/dash-check);
   identisch-redundante Regeln; @import fonts.min.css.
   Angehaengt: noscript (nicht in basics).
   Gliederung: siehe nummerierte /* ==== n · ... ====  Banner
   ============================================================ */

/* Fonts nur auf Frontpage */

@font-face {
  font-family: Roboto;
  src: url("../fonts/Roboto-MediumItalic-final-v2.woff2") format("woff2");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Roboto;
  src: url("../fonts/Roboto-BoldItalic-final-v2.woff2") format("woff2");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}


body {
  overflow-x: clip;	
}

/* ==== 3 · HERO – BILDBEREICH ======================================= */

.home > .container{
	max-width: none;
	padding-inline: 0;
}

.image-block {
  position: relative;
}

.index-hero {
    padding-top: 304px;
    background: url(/assets/img/images/bg_frontpage.avif) 65% 30px / 1380px no-repeat;
   }

@media (min-width: 576px) {
.index-hero {
  padding-top: 560px; 
}}

@media (min-width: 768px) {
.index-hero {
	background-size: 1700px;
	margin-bottom: 100px;
	padding-top: 600px;
}}


@media (min-width: 1024px) {
.index-hero {
  padding-top: 647px;
  text-align: center;
  background: url(/assets/img/images/bg_frontpage.avif) center center / 1920px no-repeat;
  margin-bottom: 70px;
}
}


/* ==== 4 · HERO – BADGES & SLOGANS ================================== */

.badges {
  position: absolute;
  display: block;
  margin: .5rem auto;
  padding: 15px;
}

.badges.top {
  width: 540px;
  top: 57%;
  left: 25%;
  transform: translate(-20%, -50%);
}


.badges.bottom {
  top: 95%;
  right: 8%;
  width: 354px;
  transform: translateY(-95%);
}

.slogan {
  border-radius: 6px;
}

.slogan>p {
  margin: 0;
}

.badges.top>.slogan.sl-1 {
  background-color: #fda561;
  font-weight: 500;
  font-style: italic;
  font-size: 15px;
  text-align: center;
  color: #353535;
  border-radius: 5px;
  padding: 8px 16px;
  -ms-transform: skewX(340deg);
  transform: skewX(340deg);
  position: relative;
	display: inline-block;
   }

   .badges.top:not(.course)>.slogan.sl-1 { 
     left: 38px; 
	   	}   
	   
@media (min-width: 576px) {
   .badges.top:not(.course)>.slogan.sl-1 { 
    width: 280px;
	  left: -9px; 
  }}
@media (min-width: 1024px) {
   .badges.top:not(.course)>.slogan.sl-1 { 
  	  left: -118px; 
  }}




.badges.top>.slogan.sl-2 {
  background-color: #4ab35b;
  font-weight: 700;
  text-align: center;
  font-style: italic;
  color: #fff;
  font-size: 33px;
  line-height: 2rem;
  letter-spacing: .00125rem;
  width: 456px;
  margin-left: -42px;
  margin-bottom: .5rem;
  border-radius: 5px;
  padding: 17px 34px;
  -ms-transform: skewX(345deg);
  transform: skewX(345deg);
  box-shadow: 2px 2px .0125em .0125rem rgb(53, 124, 64);
}

.badges.top>.slogan.sl-3 {
  background-color: #4ab35b;
  text-align: left;
  font-style: italic;
   color: #fff;
  font-size: 20px;
  line-height: 1.5rem;
  letter-spacing: .00125rem;
  width: 400px;
  border-radius: 5px;
  margin-left: -36px;
  margin-bottom: .5rem;
  padding: 12px 24px;
  -ms-transform: skewX(345deg);
  transform: skewX(345deg);
  box-shadow: 2px 2px .0125em .0125rem rgb(53, 124, 64);
}

.badges.bottom>.slogan.sl-4 {
  background-color: #195ebf;
  text-align: center;
  font-style: italic;
  font-weight: 500;	
  color: #fff;
  font-size: 20px;
  line-height: 2rem;
  letter-spacing: .00125rem;
  width: 320px;
  border-radius: 5px;
  padding: 12px 17px;
  -ms-transform: skewX(345deg);
  transform: skewX(345deg);
  box-shadow: 2px 2px .0125em .0125rem rgb(13, 72, 155);
}

.badges>.slogan.sl-1>p {
  -ms-transform: skewX(18deg) scale(1, 1.1);
  transform: skewX(18deg) scale(1, 1.1);
}

.badges>.slogan.sl-2>p {
  -ms-transform: skewX(13deg) scale(1, 1.15);
  transform: skewX(13deg) scale(1, 1.15);
}

.badges>.slogan.sl-3>h1 {
  -ms-transform: skewX(9deg) scale(1, 1.15);
  transform: skewX(9deg) scale(1, 1.15);
  font-size: 20px;
  font-weight: 500;	
  margin-bottom: 0;
  color: white;
}

.badges>.slogan.sl-4>p {
  -ms-transform: skewX(9deg) scale(1, 1);
  transform: skewX(9deg) scale(1, 1);
}



/* @media (min-width: 576px) {
.image-block .badges.top>.slogan.sl-1 {
        font-size: 13px;
     }} */




@media screen and (min-width:768px) and (max-width:1023.98px) {

  .badges.top {
    width: 420px;
	  top: 66%;
  }

  .badges.top>.slogan.sl-2 {
    font-size: 24px;
    width: 356px;
    padding: 8px 15px;
  }

  .badges.top>.slogan.sl-3 {
    font-size: 15px;
    width: 314px;
    line-height: 1.15rem;
  }

  .badges.bottom>.slogan.sl-4 {
    font-size: 15px;
    width: 288px;
    padding: 8px 15px;
    margin-left: auto;
    margin-right: 0;
  }

  .badges>.slogan.sl-3>h1 {
    font-size: 15px;
    margin-bottom: 0;
  }
}

@media screen and (min-width:576px) and (max-width:767.98px) {

  .badges.top {
    width: 420px;
    top: 65%;
    transform: translate(-20%, -56%);
  }

  .badges.top>.slogan.sl-2 {
    font-size: 24px;
    width: 356px;
    padding: 8px 15px;
  }

  .badges.top>.slogan.sl-3 {
    font-size: 15px;
    width: 314px;
    line-height: 1.15rem;
  }

  .badges>.slogan.sl-3>h1 {
    font-size: 15px;
    margin-bottom: 0;
  }

  .badges.bottom>.slogan.sl-4 {
    font-size: 15px;
    width: 288px;
    padding: 8px 15px;
    margin-left: auto;
    margin-right: 0;
  }

  .image-block .badges.bottom {
    top: 96%;
    width: 100%;
    right: 0;
    right: 5%;
    transform: translateY(-90%);
  }
}

@media screen and (max-width:575.98px) {
  
  .image-block .badges.top {
    top: 0;
    width: 340px;
    right: 0;
    left: 0;
    transform: translate(-10px, -50px);
    position: relative;
  }

  .image-block .badges.bottom {
    top: 100%;
    width: 100%;
    right: 0;
    left: 50%;
    transform: translate(-50%, -97%);
  }

  .image-block .badges.top>.slogan.sl-2 {
    font-size: 24px;
    width: 330px;
    padding: 12px 10px 12px 15px;
    line-height: 1.5rem;
    margin-left: auto;
    margin-right: auto;
  }

  .image-block .badges.top>.slogan.sl-2>p {
    -ms-transform: skewX(13deg) scale(1, 1.25);
    transform: skewX(13deg) scale(1, 1.25);
  }

  .image-block .badges.top>.slogan.sl-3 {
    font-size: 15px;
    width: 294px;
    line-height: 1rem;
    padding: 12px 15px 12px 24px;
    margin-left: auto;
    margin-right: auto;
  }

  .badges>.slogan.sl-3>h1 {
    -ms-transform: skewX(9deg) scale(1, 1.2);
    transform: skewX(9deg) scale(1, 1.2);
    font-size: 15px;
    margin-bottom: 0;
  }

  .image-block .badges.bottom>.slogan.sl-4 {
    font-size: 15px;
    width: 245px;
    padding: 5px 9px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* ==== 5 · VORTEILS-KARTEN (6er-Grid) =============================== */

.home .row.section-padding{
	max-width: 1560px;
	margin-left: auto;
  	margin-right: auto;
}

.main-section-home .row.no-gutters.section-padding {
  padding: 0;
}

.main-section-home .card {
  background-color: transparent;
}

.main-section-home .card,
.main-section-home .card>.card-header {
  border: none;
  border-radius: 0;
  flex-direction: column;
}

.main-section-home .card>.card-header {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 140px;
  padding: 20px 0 0;
  background-color: unset !important;
}

/* Card Icons mit CE-Icon-Fonts */
.main-section-home .card>.card-header>[class^="ce-"],
.main-section-home .card>.card-header>[class*=" ce-"] {
  font-size: 53px;
  line-height: 1;
}

.main-section-home .card>.card-header>.ce-controller {
  font-size: 48px;
}

.main-section-home .card>.card-header>.ce-cert {
  font-size: 70px;
}



.main-section-home .card>.card-body {
  text-align: center;
  padding: 15px 15px 60px;
  border: 0;
}

.main-section-home .card>.card-body>.card-title {
  font-weight: 700;
  margin-bottom: 28px;
  letter-spacing: 1px;
  transform: scale(1, 1.2);
  font-size: 22px;
  display: block;
  text-transform: uppercase;
}

.card-header {
  padding: 0;
}

.card {
  border: none;
}

.card-header {
  margin-bottom: 0;
}

.card-body {
  border-bottom: 1px solid rgba(0, 0, 0, .125);
}

@media (min-width: 576px) {
  .main-section-home .card>.card-body {
    padding-inline: 14%;
  }
}

@media (min-width: 768px) {
  .main-section-home .card>.card-body {
    padding-inline: 7%;
  }
}

@media screen and (min-width:1200px) and (max-width:1291.98px) {
  .main-section-home .card>.card-body>.card-title {
    letter-spacing: 1px !important;
  }
}

@media screen and (min-width:768px) and (max-width:881.98px) {
  .main-section-home .card>.card-body>.card-title {
    letter-spacing: 0px !important;
  }
}

@media screen and (max-width:575.98px) {
  .main-section-home .row.no-gutters.section-padding {
    padding: 0;
  }
}

@media screen and (max-width:398.98px) {
  .main-section-home .card>.card-body>.card-title {
    letter-spacing: 0 !important;
  }
}

/* ==== 6 · KURS-SEKTIONEN – LAYOUT ================================== */

.bg-section {
  top: 240px;
  bottom: auto;
  height: 237px;
}

@media (min-width: 768px) {
.bg-section {
  height: 226px;
}}

@media (min-width: 1024px) {
.bg-section {
  top: 228px;
}}

@media (min-width: 1200px) {
.bg-section {
  top: 222px;
  height: 235px;
}}

@media (min-width: 1380px) {
.bg-section {
  top: 217px;  
}}

/*
 * Nur wo das Kursbild RECHTS steht.
 *
 * Bis zum 21.09.2026 stand hier :nth-of-type(odd) -- die Position also, nicht
 * die Bildseite. Das stimmte nur, solange die vier Kurse in ihrer
 * urspruenglichen Reihenfolge standen. Die Abschnitte sagen es jetzt selbst.
 */
@media (min-width: 1024px) {
  .main-section-home > .info-section.bild-rechts .bg-section {
    top: 222px;
  }
}

@media (min-width: 1200px) {
  .main-section-home > .info-section.bild-rechts .bg-section {
    top: 217px;
  }
}




.main-section-home .info-section {
  position: relative;
  width: 100%;
  padding-bottom: 100px;
}

.main-section-home .info-box {
  position: relative;
  width: 100%;
  height: 620px;
  z-index: 1000;
}

.main-section-home .image-box.dsgvo-img>img {
  left: 50%;
  top: 0;
  display: inline-block;
  position: absolute;
  transform: translateX(-50%);
  z-index: -1;
}

.image-box.is-img>img {
  position: absolute;
  left: -560px;
  z-index: -1;
}

.main-section-home .image-box.mw-img>img {
  left: 50%;
  top: 0;
  display: inline-block;
  position: absolute;
  transform: translateX(-50%);
  z-index: -1;
}

.main-section-home .info-box .info-text {
  display: inline-block;
  position: static;
  margin: 38px auto 0;
  color: #fff;
  top: 0;
  transform: translateY(27%);
}


/* Only when Course pic left */ 
/*
 * Nur wo das Kursbild LINKS steht: dann rueckt der Text nach rechts.
 *
 * Mit :nth-of-type(even) traf diese Regel nach dem Vorziehen der
 * KI-Schulung die falschen Abschnitte. Der Text ist col-lg-6, also 50%
 * breit; zusammen mit margin-left:50% fuellt er die ganze Zeile und die
 * Bildkachel bricht um -- 609 Pixel tiefer, hinter die 3D-Box des
 * naechsten Kurses. Genau im Bereich dieser Medienabfrage.
 */
@media (min-width: 1024px) and (max-width: 1379.98px) {
  .main-section-home > .info-section.bild-links .info-box .info-text {
    margin-left: 50%;
  }
}



.main-section-home .info-box .info-text .info-items {
  margin: 18px 0;
  padding-left: 30px;
  padding-right: 0;
}

.main-section-home .is.info-section .info-box .info-text .info-items {
  padding-left: 0;
  padding-right: 15px;
}

.main-section-home .info-box .info-text .info-title {
  font-weight: 700;
  font-style: italic !important;
  transform: scale(.9875, 1.15);
  margin-bottom: .5em;
}

.main-section-home .info-box .info-text p {
  
  font-style: italic !important;
  font-size: var(--font-size-base);
  transform: scale(.9875, 1.1);
}

@media screen and (min-width:1024px) and (max-width:1199.98px) {
  .info-section .image-box>img {
    width: 1240px;
    top: 100px !important;
  }

  .image-box.is-img>img {
    left: -452px;
  }

  .info-section .info-text {
    padding: 0;
  }

  .main-section-home .info-box .info-text .info-items {
    margin: 30px 0 10px;
    padding-left: 30px;
  }

  .main-section-home .is.info-section .info-text .info-items {
    padding-left: 15px;
  }
}


@media screen and (min-width:1024px) {
  .main-section-home .info-box .info-text .info-items {
    margin: 30px 0 10px;
    padding-left: 30px;
  }
}







@media screen and (max-width:1023.98px) {
  .main-section-home .info-section .container {
    padding: 0;
  }
}

@media screen and (min-width:576px) and (max-width:1023.97px) {
  .info-section .image-box>img {
    max-width: 1494px;
    position: relative !important;
    top: 0 !important;
    margin-left: -40px;
    left: 50%;
    transform: translateX(-50%);
  }
}

@media screen and (min-width:768px) and (max-width:1023.98px) {
  .main-section-home .info-box {
    height: 100%;
  }

  .main-section-home .info-section .bg-section {
    top: 875px;
  }

  .main-section-home .info-box .info-text {
    transform: translateY(-132px);
    margin-top: 0;
  }

  .main-section-home .info-box .info-text .info-items {
    margin-top: 40px;
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
}

@media screen and (min-width:576px) and (max-width:767.98px) {
  .main-section-home .info-box {
    height: 100%;
  }

  .main-section-home .info-section .bg-section {
    top: 864px;
  }

  .main-section-home .info-box .info-text {
    transform: translateY(-142px);
    margin-top: 0;
  }

  .main-section-home .info-box .info-text .info-title {
    font-size: 24px;
  }

  .main-section-home .info-box .info-text .info-items {
    padding-left: 15px;
    margin-top: 40px;
  }

  .main-section-home .is.info-section .info-box .info-text .info-items {
    padding-left: 15px !important;
  }
}

@media screen and (max-width:575.98px) {

  .main-section-home .info-section .info-box .info-text .info-items {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-top: 28px;
  }

  .info-section .image-box>img {
    position: relative !important;
    width: 250%;
    margin-left: -36px;
    left: 50%;
    transform: translateX(-50%);
  }

  .main-section-home .info-box {
    height: 100%;
  }

  .main-section-home .info-section .bg-section {
    top: 18px;
    }

  .main-section-home .info-box .info-text {
    transform: translateY(-100px);
    margin-top: 0;
  }

  .main-section-home .info-box .info-text .info-title {
       margin-bottom: 1.5rem;
  }
}

  .main-section-home .info-box .info-text .info-title {
    font-size: 19px;  }

@media (min-width: 375px){
.main-section-home .info-box .info-text .info-title {
    font-size: 20px;  }}

@media (min-width: 576px){
.main-section-home .info-box .info-text .info-title {
    font-size: 24px;  }}

@media (min-width: 1024px){
.main-section-home .info-box .info-text .info-title {
    font-size: 26px;	
	}}

	/* ............. #Sections Margin - Fix image overlay + entsprechend footer margin........... */
	/*
	 * Der Abstand haengt an der POSITION, nicht am Kurs: Startabschnitt ist
	 * der erste, der erste Kursabschnitt der zweite -- in ihn ragt das Bild
	 * des Startabschnitts hinein, er darf den Abstand also nicht bekommen.
	 * Ab dem dritten gilt er.
	 *
	 * Bis zum 20.09.2026 stand hier :not(.dp). Das war dasselbe gemeint,
	 * traf aber nur zu, solange der Datenschutzkurs an zweiter Stelle stand.
	 */
	.main-section-home > .info-section:nth-of-type(n+3), main.main-section-home ~ footer {
   margin-top: clamp(150px, calc(162.037vw - 433.3333px), 500px);
}	

@media (min-width: 576px) {	
	.main-section-home > .info-section:nth-of-type(n+3), main.main-section-home ~ footer {
    margin-top: 470px;
}}	

@media (min-width: 1024px) {	
	.main-section-home > .info-section:nth-of-type(n+3), main.main-section-home ~ footer {
    margin-top: 80px;
}}	

@media (min-width: 1200px) {	
	.main-section-home > .info-section:nth-of-type(n+3), main.main-section-home ~ footer {
    margin-top: 150px;
}}	


/* ==== 7 · KURS-SEKTIONEN – BADGES & LINKS ========================== */

.main-section-home .info-section .info-text .badges.dp,
.main-section-home .info-section .info-text .badges.mw {
  padding-left: 38px;
  padding-right: 0;
}

.main-section-home .info-section .info-text .badges.is {
  padding-left: 8px;
}

.main-section-home .info-section .info-text .badges.course .slogan.sl-1 {
  font-size: 15px;
 
  max-width: 100%;
  margin-right: 45px;
  background-color: var(--bg-cegreen);
  color: #fff;
  -ms-transform: skewX(345deg);
  transform: skewX(345deg);
  padding: 8px 10px;
}

.main-section-home .info-section .info-text .badges.course .slogan.sl-2 {
  width: 64px;
  font-size: 15px;
  background-color: var(--bg-ceocker);
  line-height: 1;
  color: #fff;
  box-shadow: unset;
  padding: 12px 12px;
  margin-bottom: 0;
}

.main-section-home .info-section .info-text .badges.dp,
.main-section-home .info-section .info-text .badges.is,
.main-section-home .info-section .info-text .badges.mw {
  position: relative;
  top: 0;
  left: 0;
  transform: translate(0, 0);
  padding-top: 0;
  padding-bottom: 0;
  margin: 0;
}

.main-section-home .info-section .info-text .link-inline-container {
  display: flex;
  position: relative;
  width: 100%;
  justify-content: flex-end;
  padding-right: 30px;
}

.main-section-home .info-section .info-text .link-inline-container .link-item {
  padding: 8px 12px;
  text-decoration: none;
  color: #fff;
  background-color: #4ab35b;
  border: 1px solid transparent;
  border-radius: 7px;
  text-align: center;
  align-self: center;
}

.main-section-home .info-section .info-text .link-inline-container .link-item:hover {
  background-color: #353535;
  -webkit-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
  transition: all 0.5s ease;
}

/* only when course pic is left */
/* Nur wo das Kursbild links steht -- siehe oben, vorher :nth-of-type(even). */
@media screen and (min-width: 1024px) {
  .main-section-home > .info-section.bild-links .info-text .badges,
  .main-section-home > .info-section.bild-links .intro-plus-list {
    padding-left: 30px;
  }
}



@media screen and (min-width:768px) and (max-width:1023.98px) {

  .main-section-home .info-section .info-text .link-inline-container {
    justify-content: flex-start;
  }

  .main-section-home .info-section .info-text .badges.dp,
  .main-section-home .info-section .info-text .badges.is,
  .main-section-home .info-section .info-text .badges.mw {
    padding-left: 24px;
    padding-right: 15px;
  }
}

@media screen and (min-width:576px) and (max-width:767.98px) {

  .main-section-home .info-section .info-text .link-inline-container {
    justify-content: flex-start;
  }

  .main-section-home .info-section .info-text .badges.dp,
  .main-section-home .info-section .info-text .badges.is,
  .main-section-home .info-section .info-text .badges.mw {
    padding-left: 15px;
    padding-right: 15px;
  }
}

@media screen and (max-width:575.98px) {

  .main-section-home .info-section .info-text .badges.dp,
  .main-section-home .info-section .info-text .badges.is,
  .main-section-home .info-section .info-text .badges.mw {
    padding: 0 !important;
  }

  .main-section-home .info-section .info-text .link-inline-container {
    justify-content: flex-start;
  }
}

  .main-section-home .info-section .info-text .link-inline-container {
    margin-top: 20px;
    padding-left: 0;
  }

@media (min-width: 1024px){
  .main-section-home .info-section .info-text .link-inline-container {
    margin-top: 0px;
  }}



/* ==== 8 · PRODUKT-FEATURE-LISTE ==================================== */

/*    + Liste Frontpage    */

.info-text ul {
color: var(--text-gray);
}

.plus-icon {
    background: var(--bg-cegreen);    
}

.info-items p {
    min-height: 100px;
}


@media (min-width: 768px) {
.info-items p {
    min-height: 115px;
}}

@media (min-width: 1024px) {
.info-items p {
    min-height: unset;
}}

@media (min-width: 1200px) {
.info-items p {
    min-height: 85px;
}}




/* ==== Global / Layout ====================================== */
@media screen and (max-width:1023.98px) {
  .course {
    padding-left: 0;
    padding-right: 0;
  }
}
@media screen and (max-width:767.98px) {
  .container {
    width: 100%;
  }
}
@media screen and (min-width:360px) and (max-width:575.98px) {
  .container {
    padding-left: 0;
    padding-right: 0;
  }
}



/* Footer, nur Frontpage */

.shop-footer {
    padding: 280px 0 50px;
    z-index: 1000;
	position: relative;
}