/* =========================================================
   GCGF TRACKMAN DRAWER
   Jahresmitgliedschaft TrackMan Range

   Hash: #anmeldung-trackman
   CF7: Anmeldung Trackman / ID 4a6b0e4

   Eigenständige Klassen:
   .gcgf-tm-
   ========================================================= */


/* =========================================================
   OVERLAY
   ========================================================= */

#top .gcgf-tm-overlay {
  position: fixed !important;
  inset: 0;

  background: rgba(24, 61, 37, 0.48);

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transition:
    opacity 0.3s ease,
    visibility 0.3s ease;

  z-index: 999990 !important;
}

#top .gcgf-tm-overlay.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}


/* =========================================================
   DRAWER
   Desktop rechts und vertikal zentriert
   ========================================================= */

#top .gcgf-tm-drawer {
  position: fixed !important;

  top: 50%;
  right: 24px;

  width: min(500px, calc(100% - 48px));
  max-height: 88vh;

  overflow-y: auto;
  overflow-x: hidden;

  box-sizing: border-box;

  border: 2px solid rgba(103, 153, 56, 0.75);
  border-radius: 22px;

  background:
    linear-gradient(
      135deg,
      #ffffff 0%,
      #f8f9f7 100%
    );

  box-shadow:
    0 24px 70px rgba(24, 61, 37, 0.24),
    0 6px 20px rgba(24, 61, 37, 0.12);

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transform:
    translateX(calc(100% + 60px))
    translateY(-50%);

  transition:
    transform 0.35s ease,
    opacity 0.25s ease,
    visibility 0.35s ease;

  z-index: 999999 !important;
}

#top .gcgf-tm-drawer.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;

  transform:
    translateX(0)
    translateY(-50%);
}


/* =========================================================
   INNERER INHALT
   ========================================================= */

#top .gcgf-tm-inner {
  padding: 30px 34px 32px;
  box-sizing: border-box;
}


/* =========================================================
   SCHLIESSEN-BUTTON
   ========================================================= */

#top .gcgf-tm-close {
  position: absolute;

  top: 15px;
  right: 15px;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 38px;
  height: 38px;

  margin: 0;
  padding: 0;

  border: 0;
  border-radius: 50%;

  background: rgba(103, 153, 56, 0.10);
  color: #557f2f;

  font-family: Arial, sans-serif;
  font-size: 29px;
  font-weight: 300;
  line-height: 1;

  cursor: pointer;

  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;

  z-index: 2;
}

#top .gcgf-tm-close:hover,
#top .gcgf-tm-close:focus-visible {
  background: #679938;
  color: #ffffff;
  transform: rotate(4deg);
  outline: none;
}


/* =========================================================
   KOPFBEREICH
   ========================================================= */

#top .gcgf-tm-head {
  display: block;

  margin: 0 48px 28px 0;
  padding: 0;
}


/* TrackMan-Logo */

#top .gcgf-tm-logo {
  display: block;

  width: 215px;
  max-width: 75%;
  height: auto;

  margin: 0 0 14px;
  padding: 0;
}


/* Hauptüberschrift */

#top .gcgf-tm-head h2 {
  margin: 0 0 3px;
  padding: 0;

  font-family: "Open Sans", Arial, sans-serif !important;
  font-size: 30px;
  line-height: 1.15;
  font-weight: 700;

  color: #25362b !important;
}


/* Unterzeile */

#top .gcgf-tm-head p {
  margin: 0;
  padding: 0;

  color: #1f2c24;

  font-size: 16px;
  line-height: 1.45;
  font-weight: 400;
}


/* =========================================================
   BODY LOCK
   Verhindert Scrollen der Website bei geöffnetem Drawer
   ========================================================= */

body.gcgf-tm-drawer-open {
  overflow: hidden;
}


/* =========================================================
   CONTACT FORM 7 – BASIS
   ========================================================= */

#top .gcgf-tm-drawer .wpcf7,
#top .gcgf-tm-drawer .wpcf7 form {
  margin: 0;
  padding: 0;
}


/* Standardabsätze von CF7 */

#top .gcgf-tm-drawer .wpcf7 form > p {
  margin: 0 0 15px;
  padding: 0;
}

#top .gcgf-tm-drawer .wpcf7 form > p:last-of-type {
  margin-bottom: 0;
}


/* Überflüssige Leerzeilen neutralisieren */

#top .gcgf-tm-drawer .wpcf7 br {
  display: none;
}


/* =========================================================
   FORMULAR-LABEL
   ========================================================= */

#top .gcgf-tm-drawer .wpcf7 label {
  display: block;

  margin: 0;
  padding: 0;

  color: #25362b;

  font-size: 13px;
  line-height: 1.35;
  font-weight: 700;
}

#top .gcgf-tm-drawer .wpcf7-form-control-wrap {
  display: block;

  margin: 5px 0 0;
  padding: 0;
}


/* =========================================================
   TEXT-, E-MAIL-, TELEFON- UND AUSWAHLFELDER
   ========================================================= */

#top .gcgf-tm-drawer .wpcf7 input[type="text"],
#top .gcgf-tm-drawer .wpcf7 input[type="email"],
#top .gcgf-tm-drawer .wpcf7 input[type="tel"],
#top .gcgf-tm-drawer .wpcf7 input[type="number"],
#top .gcgf-tm-drawer .wpcf7 textarea,
#top .gcgf-tm-drawer .wpcf7 select {
  display: block;

  width: 100%;
  min-height: 42px;

  margin: 0;
  padding: 10px 12px;

  box-sizing: border-box;

  border: 1px solid rgba(24, 61, 37, 0.16);
  border-radius: 8px;

  background: #ffffff;
  color: #1f2c24;

  font-family: inherit;
  font-size: 13px;
  line-height: 1.4;

  box-shadow: none;

  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

#top .gcgf-tm-drawer .wpcf7 select {
  height: 42px;
}

#top .gcgf-tm-drawer .wpcf7 textarea {
  min-height: 100px;
  resize: vertical;
}


/* Platzhalter */

#top .gcgf-tm-drawer .wpcf7 input::placeholder,
#top .gcgf-tm-drawer .wpcf7 textarea::placeholder {
  color: rgba(31, 44, 36, 0.38);
  opacity: 1;
}


/* Fokuszustand */

#top .gcgf-tm-drawer .wpcf7 input[type="text"]:focus,
#top .gcgf-tm-drawer .wpcf7 input[type="email"]:focus,
#top .gcgf-tm-drawer .wpcf7 input[type="tel"]:focus,
#top .gcgf-tm-drawer .wpcf7 input[type="number"]:focus,
#top .gcgf-tm-drawer .wpcf7 textarea:focus,
#top .gcgf-tm-drawer .wpcf7 select:focus {
  outline: none;

  background: #ffffff;
  border-color: rgba(103, 153, 56, 0.75);

  box-shadow:
    0 0 0 3px rgba(103, 153, 56, 0.13);
}


/* =========================================================
   DATENSCHUTZ / ACCEPTANCE CHECKBOX
   ========================================================= */

#top .gcgf-tm-drawer .wpcf7-acceptance,
#top .gcgf-tm-drawer .wpcf7-acceptance .wpcf7-list-item {
  display: block !important;

  margin: 0 !important;
  padding: 0 !important;
}

#top .gcgf-tm-drawer
.wpcf7-acceptance
.wpcf7-list-item > label {
  display: flex !important;
  align-items: flex-start !important;
  gap: 7px !important;

  width: 100% !important;

  margin: 0 !important;
  padding: 0 !important;
}


/* Checkbox */

#top .gcgf-tm-drawer
.wpcf7-acceptance
input[type="checkbox"] {
  appearance: auto !important;
  -webkit-appearance: checkbox !important;

  display: inline-block !important;

  width: 18px !important;
  height: 18px !important;

  min-width: 18px !important;
  max-width: 18px !important;
  min-height: 18px !important;
  max-height: 18px !important;

  flex: 0 0 18px !important;

  margin: 1px 0 0 !important;
  padding: 0 !important;

  border: initial !important;
  border-radius: 3px !important;

  background: initial !important;
  box-shadow: none !important;

  accent-color: #679938;
}


/* Checkbox-Text */

#top .gcgf-tm-drawer
.wpcf7-acceptance
.wpcf7-list-item-label {
  display: block !important;

  flex: 1 1 auto !important;

  margin: 0 !important;
  padding: 0 !important;

  color: #344237 !important;

  font-size: 11.5px !important;
  line-height: 1.45 !important;
  font-weight: 400;
}


/* Datenschutzlink */

#top .gcgf-tm-drawer .wpcf7-acceptance a {
  color: #557f2f;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

#top .gcgf-tm-drawer .wpcf7-acceptance a:hover,
#top .gcgf-tm-drawer .wpcf7-acceptance a:focus-visible {
  color: #679938;
}


/* =========================================================
   ABSENDEN-BUTTON
   ========================================================= */

#top .gcgf-tm-drawer .wpcf7-submit,
#top .gcgf-tm-drawer input[type="submit"].wpcf7-submit {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;

  margin: 4px 0 0;
  padding: 13px 22px;

  border: 0;
  border-radius: 999px !important;

  background: #679938;
  color: #ffffff !important;

  font-family: inherit;
  font-size: 14px;
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: 0.04em;

  box-shadow:
    0 10px 22px rgba(24, 61, 37, 0.18);

  cursor: pointer;

  transition:
    background-color 0.2s ease,
    transform 0.15s ease,
    box-shadow 0.2s ease;
}

#top .gcgf-tm-drawer .wpcf7-submit:hover,
#top .gcgf-tm-drawer
input[type="submit"].wpcf7-submit:hover {
  background: #557f2f;
  color: #ffffff !important;

  box-shadow:
    0 12px 26px rgba(24, 61, 37, 0.23);
}

#top .gcgf-tm-drawer .wpcf7-submit:active {
  transform: translateY(1px);
}


/* Lade-Symbol */

#top .gcgf-tm-drawer .wpcf7-spinner {
  display: block;

  margin: 10px auto 0;
}


/* =========================================================
   CLOUDFLARE TURNSTILE
   ========================================================= */

#top .gcgf-tm-drawer .cf-turnstile {
  margin: 8px 0 20px;

  transform: scale(0.92);
  transform-origin: left top;
}


/* =========================================================
   CF7 FEHLER- UND ERFOLGSMELDUNGEN
   ========================================================= */

#top .gcgf-tm-drawer .wpcf7-not-valid-tip {
  display: block;

  margin: 5px 0 0;
  padding: 0;

  color: #841d5b;

  font-size: 12px;
  line-height: 1.3;
}

#top .gcgf-tm-drawer .wpcf7-response-output {
  margin: 14px 0 0 !important;
  padding: 11px 13px !important;

  border: 1px solid rgba(24, 61, 37, 0.15) !important;
  border-radius: 10px;

  background: #f8f7f1;
  color: #25362b;

  font-size: 13px;
  line-height: 1.45;
}


/* =========================================================
   INFORMATION UNTER DEM FORMULAR
   ========================================================= */

#top .gcgf-tm-info {
  margin: 15px 0 0;
  padding: 15px 0 0;

  border-top: 1px solid rgba(24, 61, 37, 0.14);
}

#top .gcgf-tm-info p {
  margin: 0 0 13px;
  padding: 0;

  color: #344237;

  font-size: 13px;
  line-height: 1.65;
}

#top .gcgf-tm-info p:last-child {
  margin-bottom: 0;
}

#top .gcgf-tm-info a {
  color: #557f2f;
  font-weight: 700;
  text-decoration: none;
}

#top .gcgf-tm-info a:hover,
#top .gcgf-tm-info a:focus-visible {
  color: #679938;
  text-decoration: underline;
  text-underline-offset: 2px;
}


/* =========================================================
   SCROLLBAR – DEZENT
   ========================================================= */

#top .gcgf-tm-drawer {
  scrollbar-width: thin;
  scrollbar-color:
    rgba(103, 153, 56, 0.55)
    transparent;
}

#top .gcgf-tm-drawer::-webkit-scrollbar {
  width: 8px;
}

#top .gcgf-tm-drawer::-webkit-scrollbar-track {
  background: transparent;
}

#top .gcgf-tm-drawer::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: 999px;

  background:
    rgba(103, 153, 56, 0.45);

  background-clip: padding-box;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media only screen and (max-width: 640px) {

  #top .gcgf-tm-drawer {
    top: 50%;
    right: 12px;

    width: calc(100% - 24px);
    max-height: 92vh;

    border-radius: 20px;

    transform:
      translateX(calc(100% + 30px))
      translateY(-50%);
  }

  #top .gcgf-tm-drawer.is-open {
    transform:
      translateX(0)
      translateY(-50%);
  }

  #top .gcgf-tm-inner {
    padding: 26px 20px 28px;
  }

  #top .gcgf-tm-close {
    top: 13px;
    right: 13px;

    width: 36px;
    height: 36px;

    font-size: 27px;
  }

  #top .gcgf-tm-head {
    margin: 0 40px 24px 0;
  }

  #top .gcgf-tm-logo {
    width: 185px;
    max-width: 75%;

    margin-bottom: 12px;
  }

  #top .gcgf-tm-head h2 {
    font-size: 27px;
  }

  #top .gcgf-tm-head p {
    font-size: 15px;
  }

  #top .gcgf-tm-drawer .wpcf7 form > p {
    margin-bottom: 14px;
  }

  #top .gcgf-tm-drawer .wpcf7 input[type="text"],
  #top .gcgf-tm-drawer .wpcf7 input[type="email"],
  #top .gcgf-tm-drawer .wpcf7 input[type="tel"],
  #top .gcgf-tm-drawer .wpcf7 input[type="number"],
  #top .gcgf-tm-drawer .wpcf7 textarea,
  #top .gcgf-tm-drawer .wpcf7 select {
    min-height: 41px;
    padding: 9px 11px;
  }

  #top .gcgf-tm-drawer .wpcf7 select {
    height: 41px;
  }

  #top .gcgf-tm-drawer
  .wpcf7-acceptance
  input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;

    min-width: 20px !important;
    max-width: 20px !important;
    min-height: 20px !important;
    max-height: 20px !important;

    flex-basis: 20px !important;
  }

  #top .gcgf-tm-drawer .cf-turnstile {
    transform: scale(0.86);
  }

  #top .gcgf-tm-info {
    margin-top: 22px;
    padding-top: 18px;
  }

  #top .gcgf-tm-info p {
    font-size: 12.5px;
    line-height: 1.6;
  }

}


/* =========================================================
   SEHR KLEINE SMARTPHONES
   ========================================================= */

@media only screen and (max-width: 380px) {

  #top .gcgf-tm-inner {
    padding-left: 17px;
    padding-right: 17px;
  }

  #top .gcgf-tm-head h2 {
    font-size: 25px;
  }

  #top .gcgf-tm-logo {
    width: 165px;
  }

  #top .gcgf-tm-drawer .cf-turnstile {
    transform: scale(0.80);
  }

}

