/*
 Theme Name:   Child-Theme Uniquos Digital Solions
 Description:  Child-Theme für PSB
 Tags: Blank, HTML5, CSS3
  Author:       Uniquos Development Team
  Template:     Divi
  Version:      1.22 Build 20230412
*/

/* =========================
   Divi-Mobile Menü
   ========================= */

/* Einheitliche Linien per Border */
.divi-mobile-menu nav.menu-side #dm-menu > li.menu-item {
  border-top: 2px solid rgba(40,15,14,.35);
  border-bottom: 2px solid rgba(40,15,14,.35);
}

/* damit die Linien nicht doppelt wirken: nur unten pro Eintrag */
.divi-mobile-menu nav.menu-side #dm-menu > li.menu-item {
  border-top: none;               /* Standard: nur unten */
  border-bottom: 2px solid rgba(40,15,14,.35);
}

/* Erste Zeile bekommt zusätzlich die obere Linie */
.divi-mobile-menu nav.menu-side #dm-menu > li.menu-item:first-child {
  border-top: 2px solid rgba(40,15,14,.35);
}


/* =========================
   Navi-Trenner
   ========================= */
.et-menu-nav li.menu-item-199 + li::before {
  content: "\2758"; /* Schlanker Balken */
  color: #fff;
  font-size: 18px;
  font-family: inherit; /* Vermeidet Josefin Sans nur für den Trenner */
  font-weight: 400;
  display: inline-block;
  line-height: 1;
  vertical-align: middle;
  margin-right: 25px;
  pointer-events: none;
}

/* =========================
   Responsive Button Grid
   ========================= */

  /* Desktop (≥981px): 4 nebeneinander */
  .button-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    width: 100%;
    padding: 20px 0;
    box-sizing: border-box;
  }

  /* Tablet (768–980px): 2 nebeneinander */
  @media (max-width: 980px) {
    .button-row {
      grid-template-columns: repeat(2, 1fr);
      gap: 20px;
      padding: 18px 0;
    }
  }

  /* Phone (≤767px): untereinander */
  @media (max-width: 767px) {
    .button-row {
      grid-template-columns: 1fr;
      gap: 16px;
      padding: 16px 0;
    }
  }

  /* ================================
     Buttons (Responsive Button Grid)
     ================================ */
  .pill-btn {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    min-height: 50px;        /* darf wachsen */
    padding: 12px 24px;
    box-sizing: border-box;

    border: 1px solid #fff;
    border-radius: 999px;
    background: transparent;
    color: #fff;

    font-size: 16px;
    letter-spacing: 3px;
    text-transform: uppercase;
    text-align: center;
    line-height: 1.3;

    /* kein künstliches Abschneiden/Einzeilig-Zwang */
    white-space: normal !important;
    overflow: visible;
    text-overflow: clip;

    -webkit-tap-highlight-color: transparent;
    transition: background-color .25s ease, color .25s ease, transform .12s ease;
  }

  .pill-btn:hover { background:#fff; color:#2b0f0d; }
  .pill-btn:focus { outline:none; box-shadow:0 0 0 3px rgba(255,255,255,.25); }
  .pill-btn:focus-visible { outline:2px solid #fff; outline-offset:2px; }

  /* Der eigentliche Label-Text: hier erlauben wir den sauberen Umbruch */
  .pill-label{
    display:block;
    max-width: 100%;
    white-space: normal;          /* Umbruch erlaubt */
    word-break: normal;           /* nicht mitten im Wort, wenn möglich */
    overflow-wrap: anywhere;      /* bricht extrem lange Tokens */
    hyphens: auto;                /* Silbentrennung */
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
  }

  /* Typo-Tuning für kleinere Screens */
  @media (max-width: 980px) {
    .pill-btn { font-size: 15px; letter-spacing: 2px; padding: 12px 20px; }
  }
  @media (max-width: 767px) {
    .pill-btn { font-size: 14px; letter-spacing: 1.5px; padding: 14px 18px; line-height: 1.35; }
  }
  @media (max-width: 360px) {
    .pill-btn { font-size: 13px; letter-spacing: 1px; padding: 14px 16px; }
  }

  /* Bewegungspräferenz */
  @media (prefers-reduced-motion: reduce){
    .pill-btn{ transition:none; }
  }

/* =========================
   Custom Button
   ========================= */
.custom-btn{
    width:55%;
    box-sizing:border-box;
    display:flex;                /* gleiche Höhe & zentrierter Text */
    align-items:center;
    justify-content:center;
    min-height:50px;
    padding:12px 24px;
    border:1px solid #fff;
    border-radius:999px;
    background:transparent;
    color:#fff;
    font-size:16px;
    letter-spacing:3px;
    text-transform:uppercase;
    text-align:center;
    text-decoration:none;
    transition:background-color .25s ease, color .25s ease, transform .12s ease;
  }
  .custom-btn:hover{
    background:#fff;             /* invertieren */
    color:#2b0f0d;
  }
  .custom-btn:focus{ outline:none; box-shadow:0 0 0 3px rgba(255,255,255,.25); }

/* Hot fixes Responsive */
@media only screen and (max-width: 980px) {
	.et_pb_row_4col>.et_pb_column.et_pb_column_1_4{
		margin-right: 0% !important;}

    h1, h2, h3 {
  hyphens: auto;
   }
	
	.dm-custom-header.page-template-default #page-container{
		padding-top: 0 !important;
	}
}


/* Last Child Footer - Contact-Box */
@media only screen and (min-width: 980px) {
	.et_pb_column.et_pb_column_3_8.et_pb_column_inner.et_pb_column_inner_2_tb_footer.et-last-child{
		width: auto;
    	float: right;
		padding-right: 8%;
	}
}


@media only screen and (max-width: 1272px) {
	.et_pb_menu .et-menu>li{
		padding-left: 5px;
		padding-right: 5px;
	}
	.et-menu-nav li.menu-item-199 + li::before{
		margin-right: 5px;
	}
	.et_pb_menu_0_tb_header.et_pb_menu ul li a{
		font-size: 14px !important;
	}
}

.et-l--header svg{
	height: 30px;
}

html{
	margin-top: 0px !important;
}

header.et-l.et-l--header:after{
	display: none !important;
}

.scroll_section{
	padding-top: 8rem;
}


/* Break columns into 2 on mobile (statt 1-Spalte-Stack) 
@media (max-width: 767px) {
  .two-columns-mobile .et_pb_column {
    width: 50% !important;
    float: left;
    clear: none !important;
  }
}*/

/* Footer-Tabelle auf Mobile in eine Spalte umbrechen */
@media (max-width: 980px) {
  /* greift, egal ob die Klasse an der Spalte ODER am Textmodul hängt */
  .stack-table-mobile table,
  .stack-table-mobile .et_pb_text table,
  .et_pb_column.stack-table-mobile .et_pb_text table {
    width: 100% !important;
    border-collapse: collapse !important;
  }

  .stack-table-mobile thead,
  .stack-table-mobile .et_pb_text thead,
  .et_pb_column.stack-table-mobile .et_pb_text thead {
    display: none !important;
  }

  /* jede Tabellenzeile wird ein Grid mit 1 Spalte (= Zellen untereinander) */
  .stack-table-mobile tr,
  .stack-table-mobile .et_pb_text tr,
  .et_pb_column.stack-table-mobile .et_pb_text tr {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0.5rem !important;
  }

  /* Zellen: normaler Textumbruch + Abstand unten */
  .stack-table-mobile td,
  .stack-table-mobile th,
  .stack-table-mobile .et_pb_text td,
  .stack-table-mobile .et_pb_text th,
  .et_pb_column.stack-table-mobile .et_pb_text td,
  .et_pb_column.stack-table-mobile .et_pb_text th {
    display: block !important;
    width: auto !important;
    text-align: left !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: none !important;
    letter-spacing: normal !important;

    /* HIER der Abstand */
    margin-bottom: 1rem !important; /* oder padding-bottom: 1rem */
  }

  /* letzte Zelle ohne zusätzlichen Abstand */
  .stack-table-mobile td:last-child,
  .stack-table-mobile th:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
}

/*Hot fixes for go-live */
footer{
	z-index: 0;
	position: relative;
}

.divi-mobile-menu-inner .hamburger{
	height: 45px;
	width: 45px;
	margin-right: 5px;
}

.hamburger-inner{
	justify-self: anchor-center;
}

.et_pb_section{
	z-index: 1;
}

.et_pb_section.et_pb_section_0{
	z-index: 999;
}
