/* 
Theme Name:    Derjosef-Child
Theme URI:     http://childtheme-generator.com/
Description:   Derjosef-Child is a child theme of DerJosef
Author:       Josef Gerhardter
Author URI:    https://derjosef.com
Template:      derjosef
Version:      1.0.0
Text Domain:   derjosef-child
*/

/*
    Add your custom styles here
*/

:root {
  --color-lila: #b55dfa;
  --color-gray: #f1f1f1;
  --color-black: #2b2b27;
  --color-orange: #fe4a00;

  --font-size-base: 14px;
  --font-size-h1: 3.96vw;
  --font-size-h2: 3.3vw;
  --font-size-h3: 3.3vw;
  --font-size-h4: 2.5vw;
  --font-size-h5: 1.71vw;
  --font-size-h6: 3.3vw;
  --line-height: 1.6;

  --spacing-small: 8px;
  --spacing-medium: 16px;
  --spacing-large: 32px;
  --spacing-xlarge: 150px;

  --corner-size-small: 25px;
  --corner-size-big: 50px;
}

/* Fonts */

@font-face {
  font-family: "PPPangaia-Bold";
  src: url("/wp-content/themes/derjosef-child/fonts/PPPangaia-Bold.woff2")
      format("woff2"),
    url("/wp-content/themes/derjosef-child/fonts/PPPangaia-Bold.woff")
      format("woff");
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: "PPPangaia-Medium";
  src: url("/wp-content/themes/derjosef-child/fonts/PPPangaia-Medium.woff2")
      format("woff2"),
    url("/wp-content/themes/derjosef-child/fonts/PPPangaia-Medium.woff")
      format("woff");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "Afacad-Bold";
  src: url("/wp-content/themes/derjosef-child/fonts/Afacad-Bold.woff2")
      format("woff2"),
    url("/wp-content/themes/derjosef-child/fonts/Afacad-Bold.woff")
      format("woff");
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: "Afacad-BoldItalic";
  src: url("/wp-content/themes/derjosef-child/fonts/Afacad-BoldItalic.woff2")
      format("woff2"),
    url("/wp-content/themes/derjosef-child/fonts/Afacad-BoldItalic.woff")
      format("woff");
  font-weight: bold;
  font-style: italic;
}

@font-face {
  font-family: "Afacad-Italic";
  src: url("/wp-content/themes/derjosef-child/fonts/Afacad-Italic.woff2")
      format("woff2"),
    url("/wp-content/themes/derjosef-child/fonts/Afacad-Italic.woff")
      format("woff");
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: "Afacad-Medium";
  src: url("/wp-content/themes/derjosef-child/fonts/Afacad-Medium.woff2")
      format("woff2"),
    url("/wp-content/themes/derjosef-child/fonts/Afacad-Medium.woff")
      format("woff");
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: "Afacad-MediumItalic";
  src: url("/wp-content/themes/derjosef-child/fonts/Afacad-MediumItalic.woff2")
      format("woff2"),
    url("/wp-content/themes/derjosef-child/fonts/Afacad-MediumItalic.woff")
      format("woff");
  font-weight: 500;
  font-style: italic;
}

@font-face {
  font-family: "Afacad-Regular";
  src: url("/wp-content/themes/derjosef-child/fonts/Afacad-Regular.woff2")
      format("woff2"),
    url("/wp-content/themes/derjosef-child/fonts/Afacad-Regular.woff")
      format("woff");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: "Afacad-SemiBold";
  src: url("/wp-content/themes/derjosef-child/fonts/Afacad-SemiBold.woff2")
      format("woff2"),
    url("/wp-content/themes/derjosef-child/fonts/Afacad-SemiBold.woff")
      format("woff");
  font-weight: 600;
  font-style: normal;
}

/* Fonts */
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  scroll-behavior: smooth;
  height: fit-content;
}
::-webkit-scrollbar-track {
  background: var(--color-orange);
}
body {
  margin: 0;
  font-family: "Afacad-Regular" !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  will-change: transform;
  background-color: var(--color-gray) !important;
  overflow-x: hidden;
  overflow-y: auto;
}
h1,
.h1 {
  font-size: calc(2rem + 1vw) !important;
  line-height: 1.2;
  font-family: "PPPangaia-Medium";
  margin-bottom: 0.5em;
}

h1 p {
  font-family: "Afacad-Regular" !important;
  font-size: 1.6rem !important;
}

h2,
.h2 {
  font-size: calc(1.4rem + 0.8vw) !important;
  line-height: 1.3;
  font-family: "PPPangaia-Medium";
  margin-bottom: 0.5em;
}

h3,
.h3 {
  font-size: calc(1.3rem + 0.4vw) !important;
  line-height: 1.4;
  font-family: "PPPangaia-Medium";
  margin-bottom: 0.5em;
}

h4,
.h4 {
  font-size: calc(1.2rem + 0.3vw) !important;
  line-height: 1.5;
  font-family: "PPPangaia-Medium";
  margin-bottom: 0.5em;
}

h5,
.h5 {
  font-size: calc(1.1rem + 0.2vw) !important;
  line-height: 1.6;
  font-family: "PPPangaia-Medium";
  margin-bottom: 0.5em;
}

h6,
.h6 {
  font-size: calc(1rem + 1vw) !important;
  line-height: 1.7;
  font-family: "PPPangaia-Medium";
  margin-bottom: 0.5em;
}

h1 strong,
h2 strong,
h3 strong,
h4 strong,
h5 strong,
h6 strong {
  color: var(--color-green);
  font-family: "PPPangaia-Medium" !important;
  font-weight: normal !important;
}

.subheadline {
  font-family: "Afacad-Regular" !important;
  text-transform: uppercase;
  letter-spacing: 0.1;
  font-size: calc(0.9rem + 0.2vw) !important;
}

.h1-xl {
  font-size: calc(3rem + 1vw) !important;
  font-family: "PPPangaia-Medium";
  margin-bottom: 0.2em;
}

p,
li,
.p {
  margin-bottom: 1em;
  font-family: "Afacad-Regular" !important;
  font-size: 1.6rem !important;
  line-height: 1.2;
}

.normal-text {
  font-family: "Afacad-Medium" !important;
}

main a {
  font-family: "Afacad-Regular" !important;
  color: var(--color-black) !important;
}

a:hover {
}

small {
  font-size: 0.8em !important;
}

strong {
  font-family: "Afacad-Medim" !important;
}

button {
  font-family: "Afacad-Regular" !important;
  font-size: 0.8em !important;
}

.caption {
  font-family: "Afacad-Regular" !important;
}

i,
em {
  font-family: "PPPangaia-Medium" !important;
  color: var(--color-lila);
}
/* layout */

#main {
  margin-top: 0 !important;
}
.container,
.container-fluid,
.container-lg,
.container-md,
.container-sm,
.container-xl,
.container-xxl {
  padding-left: 40px !important;
  padding-right: 40px !important;
}
/* Spacer */
.spacer-none {
  margin: 0px 0px;
}

.round {
  border-radius: 40px !important;
}

.border-all {
  border: 2px solid var(--color-black) !important;
}

/* color */
/* Textfarben */
.text-lila {
  color: var(--color-lila) !important;
}

.text-gray {
  color: var(--color-gray) !important;
}

.text-black {
  color: var(--color-black) !important;
}

.text-orange {
  color: var(--color-orange) !important;
}

/* Hintergrundfarben */
.bg-lila {
  background-color: var(--color-lila) !important;
}

.bg-gray {
  background-color: var(--color-gray) !important;
}

.bg-black {
  background-color: var(--color-black) !important;
}

.bg-orange {
  background-color: var(--color-orange) !important;
}
/* button */
.button-primary {
  position: relative;
  display: inline-block;
  padding: 2px 20px;
  font-size: 1.5rem !important;
  color: var(--color-orange) !important;
  text-decoration: none;
  overflow: hidden;
  border: 2px solid var(--color-orange);
  border-radius: 50px;
  transition: color 0.4s ease-in-out;
  z-index: 1;
}

.button-primary::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0px; /* Startgröße des Kreises */
  height: 0px;
  background-color: var(--color-orange);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.4s ease-out, width 0.4s ease-out, height 0.4s ease-out;
  z-index: -1;
}

.button-primary:hover::before {
  width: 300px; /* Kreis wächst gleichmäßig */
  height: 300px;
}

.button-primary:hover {
  color: white !important;
}
/* header */
/* header */
header {
  border-bottom: 2px solid var(--color-black); /* Border unten */
  position: sticky; /* Stellt sicher, dass der Header beim Scrollen oben bleibt */
  top: 0; /* Der Header bleibt immer oben */
  z-index: 1000; /* Damit der Header über anderen Inhalten bleibt */
  transition: all 0.3s ease; /* Sanfte Übergänge für Schrumpfen */
  padding: 0; /* Initiales Padding */
  background-color: var(--color-gray);
}

header.shrink {
  padding: 0; /* Reduziertes Padding bei Shrink */
}

.navbar-nav {
  text-align: right;
}

.navbar-brand img {
  height: 80px !important;
  transition: height 0.3s ease; /* Sanfter Übergang für die Logo-Größe */
}

header.shrink .navbar-brand img {
  height: 40px !important; /* Kleinere Logo-Höhe im Shrink-Zustand */
}
.sticky-top {
  position: sticky;
  top: 0;
  z-index: 1030; /* Bootstrap Standard, kann angepasst werden */
}

a.nav-link {
  text-transform: uppercase;
  font-size: 1.6rem !important;
  color: var(--color-black) !important;
  display: inline-block;
  padding-left: 20px !important;
  padding-right: 20px !important;
  padding-top: 20px !important;
  padding-bottom: 20px !important;
  border: 2px solid transparent; /* Für gleichbleibende Größe, auch ohne Hover */
  border-radius: 40px;
  transition: all 0.3s ease;
}

a.nav-link:hover {
  color: var(--color-orange) !important;
  border-color: var(--color-orange);
}

li.nav-item {
  margin-right: 16px; /* Abstand zwischen den Items */
  line-height: 0px;
  margin-bottom: 0px !important;
}

li.nav-item:last-child {
  margin-right: 0; /* Kein Abstand nach dem letzten Item */
}

/* footer */
/* Footer Grundlayout */
.footer {
  position: relative;
  padding: 50px 80px;
}

/* Logo links unten */
.footer-left {
  display: flex;
  align-items: flex-end;
}

/* Kontakt-Infos rechts */
/* Footer Grundlayout */
.footer {
  position: relative;
  width: 100%;
  padding-bottom: 20px;
  overflow: hidden;
  min-height: 370px;
  z-index: 1;
}

/* Hintergrund-Welle */
.footer-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100%;
  background: url(/wp-content/themes/derjosef-child/img/wave.svg) no-repeat
    bottom left;
  background-size: contain;
  min-height: 560px;
  z-index: -1;
}

.footer-content {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.footer-left {
  position: absolute;
  bottom: 30px;
  left: 40px;
  z-index: 99;
}
.kontakt-info a {
  color: var(--color-black) !important;
  text-decoration: none;
}

.footer-logo {
  max-width: 400px;
}

/* Kontaktinfos rechts */
.footer-right {
  text-align: left;
  color: black;
}

.kontakt-info {
  list-style: none;
  padding: 0;
}

.kontakt-info li {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.icon {
  width: 25px;
  height: 25px;
}

/* Impressum & Datenschutz unten rechts */
.footer-bottom {
  /* position: absolute; */
  /* bottom: 40px; */
  /* right: 40px; */
  /* font-size: 14px; */
  /* color: var(--color-black); */
  display: flex;
  justify-content: flex-end;
  height: 200px;
  align-items: flex-end;
}

.footer-bottom a {
  color: var(--color-black);
  text-decoration: none;

  margin: 0 5px;
}
.footer ol,
.footer ul {
  padding-left: 0px;
}

/* ---------------------- */
/* 📱 MOBILE OPTIMIERUNG  */
/* ---------------------- */
@media (max-width: 768px) {
  /* nav */

  /* Standard Hamburger-Icon */
  .navbar-toggler {
    border: none;
    padding: 0.25rem 0.75rem;
    background: none;
  }
  .navbar-toggler .custom-toggler-icon {
    display: block;
    width: 30px;
    height: 2px;
    background-color: #333;
    position: relative;
    transition: all 0.3s ease;
  }
  .navbar-toggler .custom-toggler-icon::before,
  .navbar-toggler .custom-toggler-icon::after {
    content: "";
    position: absolute;
    width: 30px;
    height: 2px;
    background-color: #333;
    transition: all 0.3s ease;
  }
  .navbar-toggler .custom-toggler-icon::before {
    top: -8px;
  }
  .navbar-toggler .custom-toggler-icon::after {
    top: 8px;
  }

  /* Wenn das Menü geöffnet ist (Klasse collapsed fehlt), wird das Icon zu einem "X" */
  .navbar-toggler:not(.collapsed) .custom-toggler-icon {
    background-color: transparent;
  }
  .navbar-toggler:not(.collapsed) .custom-toggler-icon::before {
    transform: translateY(8px) rotate(45deg);
  }
  .navbar-toggler:not(.collapsed) .custom-toggler-icon::after {
    transform: translateY(-8px) rotate(-45deg);
  }

  /* Schöneres offenes Menü */
  .navbar-collapse {
    padding: 1rem;
    transition: all 0.3s ease;
  }
  .navbar-nav .nav-link {
    padding: 0.5rem 1rem;
    transition: color 0.3s ease;
  }

  .navbar-brand img {
    height: 50px !important;
    transition: height 0.3s ease;
  }
  .container,
  .container-fluid,
  .container-lg,
  .container-md,
  .container-sm,
  .container-xl,
  .container-xxl {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* Layout */

  body .p-5 {
    padding: 1rem !important;
  }
  /* header */
  .image-text-section-header .row.h-100 {
    display: flex;
    flex-direction: column-reverse;
  }
  .image-text-section-header {
    padding: 0px 0 !important;
    height: 100% !important;
  }
  .right-column-image {
    height: 50vh !important;
    margin-bottom: 40px;
  }
  .storer-circle {
    position: absolute !important;
    bottom: 30px !important;
    left: 0px !important;
    right: unset !important;
    border-radius: 50% !important;
    padding: 30px !important;
    height: 150px !important;
    width: 150px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    transform: rotate(-9deg) !important;
  }
  html,
  body {
    overflow-x: hidden;
  }
  body {
    position: relative;
  }
  /* angebot */
  .angebot-image.position-relative.d-flex.align-items-center.justify-content-center {
    height: 70vh !important;
    background: url(/wp-content/uploads/2025/04/senior-woman-doing-dumbbells-exercises-gym.jpg)
      no-repeat top center !important;
    object-fit: contain !important;
  }
  .angebot-section .overlay.position-absolute.w-100 {
    height: 100%;
  }
  /* Payment */
  .payment-image {
    position: absolute !important;
    top: -228px !important;
    right: 10vw !important;
    width: 230px !important;
    height: auto !important;
    transform: rotate(95deg) !important;
    z-index: 0 !important;
  }
  .angebot-section h2.normal-text,
  .dropdown-icon-container {
    z-index: 999;
  }

  .footer-content {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 40px 20px;
  }

  .footer-left {
    position: relative;
    bottom: unset;
    left: unset;
    margin-bottom: 20px;
  }

  .footer-logo {
    max-width: 250px; /* Kleinere Logos für mobile */
  }

  .footer-right {
    width: 100%;
  }

  .kontakt-info {
    text-align: center;
  }

  .footer-bottom {
    position: relative;
    bottom: unset;
    right: unset;
    margin-top: 20px;
    justify-content: center;
  }
  ul.kontakt-info {
    text-align: left;
  }
  .footer-content {
    display: flex;
    align-items: flex-start;
    flex-direction: column-reverse;
  }

  .footer-bottom {
    position: absolute;
    bottom: 0px;
    left: 10px;
  }
  .footer-right {
    margin-bottom: 110px;
  }
  .footer {
    position: relative;
    padding: unset;
  }
  .footer-background {
    width: 190vw;
  }

  /* nav */
  button.navbar-toggler.collapsed,
  button.navbar-toggler {
    box-shadow: unset !important;
    border: unset !important;
  }
  ul#menu-main-menu {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  ul#menu-main-menu {
    margin-top: 40px;
    margin-bottom: 40px;
  }
  li.nav-item {
    margin-right: 0!important;

}
}
