@font-face {
  font-family: "Chivo";
  src: url("../fonts/Chivo-VariableFont_wght.ttf") format("truetype");
}

@font-face {
  font-family: "Roboto";
  src: url("../fonts/Roboto-VariableFont_wdth\,wght.ttf") format("truetype");
}

:root {
  --keycloak-logo-url: url("../img/logo.svg");
  --keycloak-logo-height: 65px;

  --wienticket-blue: #29ace4;
  --wienticket-blue-dark: #009fe3;
  --wienticket-bg-darkgray: #bbbbbb;
  --wienticket-bg-gray: #ececec;
  --wienticket-bg-lightgray: #ffffff;

  --primary: var(--wienticket-blue);
  --primary-2: var(--wienticket-blue-dark);
  --primary-background: linear-gradient(252deg, var(--wienticket-blue) 0%, var(--wienticket-blue-dark) 100%);

  --secondary: #797979;
  --secondary-light: #989898;
  --secondary-background: linear-gradient(252deg, #989898 0%, #797979 100%);

  --bg-darkgray: #bbbbbb;
  --bg-gray: white;
  --bg-lightgray: #ffffff;

  --font-family: "Chivo", arial, helvetica, clean, sans-serif !important;

  --pf-v5-global--primary-color--100: var(--primary) !important;
  --pf-v5-global--primary-color--200: var(--primary-2) !important;
  --pf-v5-global--primary-color--darkgray-100: var(--primary) !important;
  --pf-v5-global--primary-color--darkgray-200: var(--primary-2) !important;
  --pf-v5-c-form-control--focus--BorderBottomColor: var(--primary) !important;
  --pf-v5-c-form-control--BorderBottomColor: var(--primary) !important;
  --pf-v5-c-form-control--hover--BorderBottomColor: var(--primary) !important;
  --pf-v5-global--active-color--100: var(--primary) !important;
  --pf-v5-global--active-color--200: var(--primary-2) !important;
  --keycloak-card-top-color: white !important;
  --pf-v5-global--FontFamily--heading: var(--font-family);

  body {
    font-family: var(--font-family);
  }
}

.login-pf body {
  background: none;
  background-color: var(--bg-gray);
  height: 100%;
}

.login-pf {
  main {
    border-radius: 10px;
    box-shadow: unset;
  }

  .pf-v5-c-login__container {
    z-index: 10;
  }

  .pf-v5-c-login__main-header {
    border-top: none;
    border-radius: 10px;
    margin-bottom: 0.5rem;
    padding-block-start: 0;
  }

  .pf-v5-c-login__main-body {
    padding-block-end: unset;
  }

  .pf-v5-c-login__main-footer-band {
    border-block-start: unset;
    padding-block-start: unset;
    margin-block-start: var(--pf-v5-global--spacer--md);
    padding-block-end: var(--pf-v5-global--spacer--md);
  }

  #authenticateWebAuthnButton {
    margin-block-start: var(--pf-v5-global--spacer--md);
    background: var(--secondary-background);
  }
}

div.kc-logo-text {
  background-position: center;
}

#kc-form-login {
  --pf-v5-global--gutter--md: 0.5rem;
}

footer {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100vw;
  max-width: 100vw;

  display: flex;
  justify-content: center;
  gap: 1.5rem;

  padding: 0.5rem 1rem;

  a {
    color: #131314;
  }
}

.pf-v5-c-button {

  &.pf-m-primary,
  &.pf-m-secondary {
    display: inline-block;
    position: relative;
    text-decoration: none;
    padding: 15px 20px;
    cursor: pointer;
    border-radius: 10px;
    font-size: inherit;
    font-weight: 700;
    line-height: 20px;
    text-align: center;
    text-decoration: none;
    z-index: 1;
    overflow: hidden;
    transition: 0.3s ease-in-out;
    -moz-transition: 0.3s ease-in-out;
    -o-transition: 0.3s ease-in-out;
    -webkit-transition: 0.3s ease-in-out;
    -ms-transition: 0.3s ease-in-out;
    transition: 0.3s ease-in-out;

    &:after {
      border: none;
    }

    &:not(.no-btn):hover,
    &:not(.no-btn):focus-visible,
    &:not(.no-btn).active {
      box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.3019607843);
    }

    button,
    input[type="submit"],
    input[type="button"] {
      width: 100%;
      overflow: visible;
    }

    button::-moz-focus-inner {
      border: none;
    }
  }

  &.pf-m-primary {
    background: var(--primary-background);
    color: #fff;
    border: none;
  }

  &.pf-m-secondary {
    background: var(--secondary);
    color: #fff;
    border: none;
  }

  &.kc-login-tooltip {
    >span.kc-tooltip-text {
      left: unset;
      right: 0;
      top: unset;
      bottom: calc(100% + 0.5em);

      &::after {
        display: none;
      }
    }
  }
}

#kc-social-providers {
  padding-left: var(--pf-v5-c-page__header-nav--xl--PaddingLeft);
  padding-right: var(--pf-v5-c-page__header-nav--xl--PaddingRight);

  >ul {
    @media only screen and (min-width: 470px) {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: calc(var(--pf-v5-c-page__header-nav--xl--PaddingLeft) / 2);
    }

    @media only screen and (min-width: 550px) {
      gap: var(--pf-v5-c-page__header-nav--xl--PaddingLeft);
    }
  }

  .pf-m-secondary {
    padding: 12px 16px !important;
  }

  #social-apple,
  #social-google {
    &::before {
      position: absolute;
      left: 0;
      top: 0;
      width: 4rem;
      height: 100%;
      content: '';
      background-position: center !important;
      background-repeat: no-repeat !important;
    }
  }

  #social-apple {
    background: black;
    justify-content: center !important;

    &::before {
      background: url('../img/apple_white.svg');
      transform: scale(1.1) translateY(0.05em);
    }

    .fa {
      font-family: system-ui;
      font-weight: initial;
      font-size: 14px;

      transform: translateY(-0.05em);
      padding-left: 2em;

      &::before {
        display: none;
      }
    }

    span {
      line-height: 20px;
    }
  }

  #social-google {
    background: #131314;
    font-family: Roboto;
    font-weight: initial;
    font-size: 14px;

    &::before {
      background: url('../img/google_transparent.svg');
      transform: scale(0.45);
    }

    >svg {
      display: none;
    }

    >span {
      padding-left: 2em;
      transform: translateY(-0.05em);
    }
  }
}

.registration-container {
  padding-left: calc(var(--pf-v5-c-login__main-footer-band--PaddingLeft) * 2);
  padding-right: calc(var(--pf-v5-c-login__main-footer-band--PaddingRight) * 2);
  padding-top: calc(var(--pf-v5-c-login__main-footer-band--PaddingTop));

  .registration-header {
    z-index: 1;
    position: relative;
    margin-bottom: var(--pf-v5-global--spacer--md);
    display: flex;
    justify-content: center;

    &::before {
      z-index: -1;
      position: absolute;
      content: '';
      left: 0;
      top: 50%;
      transform: translateY(-50%);
      width: 100%;
      height: 2px;
      background: black;
    }

    >span {
      padding: 0 0.75rem;
      background: white;
    }
  }

  #crm-register {
    background: var(--secondary-background);
  }
}

@media (min-width: 576px) {
  :root {
    --bg-gray: #ececec;
  }

  .pf-v5-c-login__container {
    transform: translateY(calc(var(--keycloak-logo-height) / 2 * -1));

    div.pf-v5-c-login__main-header {
      padding-block-start: var(--pf-v5-c-login__main-header--PaddingTop);
    }

    main {
      box-shadow: var(--pf-v5-c-login__main--BoxShadow);
      padding-bottom: var(--pf-v5-global--spacer--xl);
    }
  }
}

@media (min-width: 768px) {
  div.pf-v5-c-login__main-header {
    grid-template-columns: 100%;
  }
}

@media (min-width: 1200px) {
  .pf-v5-c-login__container {
    transform: translateY(calc(var(--keycloak-logo-height) * -1));
  }
}