:root {
  /*--hf-background-image-url: url("/img/background.jpg");*/
  --hf-main-color: rgb(96, 91, 240);
  --hf-primary-color: rgb(60, 171, 245);
  --hf-secondary-color: rgb(255, 236, 245);
  --hf-neutral-color: rgb(152, 162, 165);
  --hf-highlight-color: rgb(255, 236, 245);
  --hf-bg-color: rgba(255, 255, 255, 0.95);

  --hf-shadow-color: rgba(0, 0, 0, 0.3);
  --hf-placeholder-color: rgba(230, 230, 230, 0.3);

  --hf-success-color: rgb(2, 167, 2);
  --hf-info-color: rgb(0, 100, 182);
  --hf-warning-color: rgb(189, 160, 0);
  --hf-danger-color: rgb(173, 26, 0);

  /* The following colours are derived from the colors above */
  --hf-default-text-color: color-mix(in srgb, var(--hf-main-color) 45%, black 55%);
  --hf-subheading-color: color-mix(in srgb, var(--hf-primary-color) 50%, black 50%);
  --hf-navbar-fg-color: var(--hf-secondary-color);
  --hf-navbar-trans-color: color-mix(in srgb, var(--hf-main-color) 95%, transparent);
  --hf-nav-active-fg-color: var(--hf-secondary-color);
  --hf-nav-active-bg-color: var(--hf-primary-color);
  --hf-nav-inactive-fg-color: var(--hf-secondary-color);
  --hf-nav-inactive-bg-color: color-mix(in srgb, var(--hf-main-color) 90%, var(--hf-secondary-color));
  --hf-nav-hover-fg-color: var(--hf-primary-color);
  --hf-nav-hover-bg-color: var(--hf-secondary-color);
  --hf-nav-dropdown-fg-color: var(--hf-primary-color);
  --hf-nav-dropdown-bg-color: var(--hf-secondary-color);
  --hf-form-bg-color: color-mix(in srgb, var(--hf-secondary-color) 20%, transparent);
  --hf-button-bg-color: var(--hf-main-color);
  --hf-button-fg-color: var(--hf-secondary-color);
  --hf-button-bg-hover-color: var(--hf-secondary-color);
  --hf-button-fg-hover-color: var(--hf-main-color);
  --hf-button-bg-disabled-color: color-mix(in srgb, var(--hf-button-bg-color) 90%, transparent);
  --hf-button-fg-disabled-color: color-mix(in srgb, var(--hf-button-fg-color) 90%, transparent);
  --hf-footer-color: var(--hf-neutral-color);
  --hf-main-spinner-color: var(--hf-highlight-color);
  --hf-startup-spinner-color: var(--hf-main-color);
  --hf-lang-specific-bg-color: color-mix(in srgb, var(--hf-main-color) 5%, transparent);
  --hf-lang-label-code-color: color-mix(in srgb, var(--hf-main-color) 50%, currentColor);
  --hf-card-bg-color: color-mix(in srgb, white 97%, var(--hf-main-color));
  --hf-current-color: var(--hf-default-text-color);

  --hf-box-shadow: 0px 0px 18px -8px color-mix(in srgb, var(--hf-main-color) 40%, transparent 60%);

}


@keyframes pulse {
  from {
    transform: translate(-50%, -50%) scale(0);
  }
  to {
    transform: translate(-50%, -50%) scale(1);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

.pulse {
  animation: pulse .5s linear infinite;
}

.fade-in {
  animation: fadeIn 1s;
}

.fade-out {
  animation: fadeOut 1s;
}


.hf-primary-color-fg {
  color: var(--hf-primary-color);
}

.hf-primary-color-bg {
  background-color: var(--hf-primary-color);
}

.hf-secondary-color-fg {
  color: var(--hf-secondary-color);
}

.hf-secondary-color-bg {
  background-color: var(--hf-secondary-color);
}

.hf-navbar-color-fg {
  color: var(--hf-main-color);
}

.hf-navbar-color-bg {
  background-color: var(--hf-main-color);
}

@font-face {
  font-family: "Ubuntu";
  src: local('Ubuntu'), local('Ubuntu-Regular'), url('/fonts/Ubuntu-Regular.woff');
}

@font-face {
  font-family: "Ubuntu";
  src: local('Ubuntu Bold'), local('Ubuntu-Bold'), url('/fonts/Ubuntu-Bold.woff');
  font-weight: bold;
}

@font-face {
  font-family: "Ubuntu";
  src: local('Ubuntu Italic'), local('Ubuntu-Italic'), url('/fonts/Ubuntu-Italic.woff');
  font-style: italic;
}

@font-face {
  font-family: "Ubuntu";
  src: local('Ubuntu Bold Italic'), local('Ubuntu-BoldItalic'), url('/fonts/Ubuntu-BoldItalic.woff');
  font-weight: bold;
  font-style: italic;
}


@keyframes hf-jump-in-animation {
  0% {
    transform: scale(1);
  }
  60% {
    transform: scale(1.2);
  }
  80% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes hf-scale-in-animation {
  0% {
    transform: scale(0);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes hf-rotate-360-animation {
  0% {
    transform: rotateZ(0)
  }
  100% {
    transform: rotateZ(-360deg);
  }
}


/* Class to scale to text height, for inline images */
.scaletotext {
  height: 1em;
}

html,
body {
  height: 100%;
  width: 100%;
}

body {
  background-color: var(--hf-bg-color);
  /*background: var(--hf-background-image-url) no-repeat center center fixed; */
  background-size: cover;
  font-family: 'Ubuntu', sans-serif;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
.card {
  color: var(--hf-default-text-color);
}

#site-wrapper {
  width: 100%;
  height: 100%;
  box-shadow: inset 0 0 1rem var(--hf-shadow-color);
  overflow: auto;
  scroll-behavior: smooth;
}

#site-wrapper-inner {
  position: sticky; /* important for scrolling and box-shadow */
  max-width: 100rem;
  margin: auto;
}

.navbar {
  height: 3.6rem;
  background-color: var(--hf-navbar-trans-color);
  color: var(--hf-navbar-fg-color) !important;
  transition: background-color .4s ease 0s;
  box-shadow: 0px 4px .25rem 0px var(--hf-shadow-color);
}

.hf-navbar-title {
  color: var(--hf-navbar-fg-color) !important;
  font-weight: bold;
}

.hf-navbar-subtitle {
  color: var(--hf-navbar-fg-color) !important;
  font-size: x-small;
  font-weight: normal;
  position: relative;
}

.navbar img {
  display: inline-block;
  height: 1.618034rem;
  width: auto;
}

.navbar .hf-navbar-center {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  line-height: 1;
}

.navbar .hf-navbar-right {
  line-height: 1;
}

.hf-navbar-toggler-btn {
  color: var(--hf-navbar-fg-color);
  background-color: transparent;
  border-color: transparent;
  border-style: solid;
  border-width: 2px;
  border-radius: 3px;
  padding-left: 5px;
  padding-right: 5px;
  padding-top: 2px;
  padding-bottom: 2px;
  transition: border-color .4s ease 0s;
}

#userTabTopBarActivator {
  color: var(--hf-button-fg-color);
}

#userTabTopBarActivator:hover {
  color: var(--hf-primary-color);
}

#userTabTopBarActivator [data-user-displayname] {
  font-size: x-small;
}

.hf-navbar-toggler-btn:hover {
  border-color: var(--hf-primary-color);
}

.hf-larger {
  font-size: x-large;
}

.btn-primary {
  color: var(--hf-button-fg-color);
  background-color: var(--hf-button-bg-color);
  border-color: var(--hf-primary-color);
}

.btn-primary:hover {
  color: var(--hf-button-fg-hover-color);
  background-color: var(--hf-button-bg-hover-color);
}

.btn-primary:disabled {
  color: var(--hf-button-fg-disabled-color);
  background-color: var(--hf-button-bg-disabled-color);
}

.btn-outline-primary {
  color: var(--hf-button-bg-color);
  border-color: var(--hf-button-bg-color);
}

.btn-outline-primary:hover {
  color: var(--hf-button-fg-hover-color);
}

.btn-outline-primary:checked {
  color: var(--hf-button-fg-color);
  background-color: var(--hf-button-bg-color);
}

a {
  text-decoration: none !important;
}

[data-hf-main-spinner] .spinner-border {
  color: var(--hf-main-spinner-color);
}

[data-hf-startup-spinner] .spinner-border {
  width: 6rem;
  height: 6rem;
  margin-top: 2rem;
  margin-bottom: 3rem;
  color: var(--hf-startup-spinner-color);
}

.offcanvas {
  background-color: var(--hf-navbar-trans-color);
}

.offcanvas img {
  height: 4rem;
}

.offcanvas-body ul {
  margin-bottom: 3rem;
}

.offcanvas .dropdown-toggle {
  color: var(--hf-primary-color);
  background-color: var(--hf-secondary-color);
}

.offcanvas .dropdown-menu {
  color: var(--hf-nav-dropdown-fg-color);
  background-color: var(--hf-nav-dropdown-bg-color);
}

.offcanvas .dropdown-item:hover,
.offcanvas .dropdown-item:focus {
  /* Reverse  */
  color: var(--hf-nav-dropdown-bg-color);
  background-color: var(--hf-nav-dropdown-fg-color);
}

.offcanvas-title {
  margin-left: 1rem;
  color: var(--hf-secondary-color);
}

.nav .nav-link.active,
.nav .nav-link.active:focus,
.nav .nav-link.active:hover {
  color: var(--hf-nav-active-fg-color);
  background-color: var(--hf-nav-active-bg-color);
}

.nav .nav-link:not(.active) {
  color: var(--hf-nav-inactive-fg-color);
  background-color: var(--hf-nav-inactive-bg-color);
}

.nav .nav-link:not(.active):hover,
.nav .nav-link:not(.active):focus {
  background-color: var(--hf-nav-hover-bg-color);
  border: var(--hf-nav-hover-fg-color);
  color: var(--hf-nav-hover-fg-color);
}

#header-container,
.card {
  max-width: 50rem;
}

.tab-content {
  /* navbar is 3.6rem */
  padding-top: 4.6rem;
  padding-left: .618034rem;
  padding-right: .618034rem;
  height: 100%;
  width: 100%;
}

.tab-pane {
  margin: auto;
  padding-top: 2rem;
}

.hf-tabnav-title {
  font-weight: bold;
}

.hf-tabnav-subtitle {
  font-size: smaller;
}

.hf-text-tagicon {
  max-height: 1.5em;
  min-height: 1.5em;
}

.hf-icon-adjust-up {
  position: relative;
  top: -.25ex;
}

#home {
  padding-left: 1rem;
  padding-right: 1rem;
}

.hf-home-item {
  margin-bottom: 2rem;
  min-width: 10rem;
  max-width: 25rem;
  height: auto;
  color: var(--hf-default-text-color);
  background-color: var(--hf-button-bg-hover-color);
  box-shadow: var(--hf-box-shadow);
  border-radius: 8px;
  border-style: solid;
  border-width: 4px;
  border-color: var(--hf-main-color);
}

.hf-home-item:hover {
  color: var(--hf-highlight-color);
  background-color: var(--hf-button-bg-color);
}

.hf-notify {
  background-color: var(--hf-form-bg-color);
  box-shadow: var(--hf-box-shadow);
  border: 1px solid;
  max-width: 35rem;
  text-align: center;
  border-radius: 5px;
  margin-left: auto;
  margin-right: auto;
  /*margin-top: 0.5rem;*/
  margin-bottom: 0.5rem;
  padding: 5px;
  display: inline-block;
}

.hf-notify-success {
  color: var(--hf-success-color);
  background-color: color-mix(in srgb, var(--hf-success-color) 8%, white);
}

.hf-notify-info {
  color: var(--hf-info-color);
  background-color: color-mix(in srgb, var(--hf-info-color) 8%, white);
}

.hf-notify-warning {
  color: var(--hf-warning-color);
  background-color: color-mix(in srgb, var(--hf-warning-color) 8%, white);
}

.hf-notify-danger {
  color: var(--hf-danger-color);
  background-color: color-mix(in srgb, var(--hf-danger-color) 8%, white);
}

.hf-hide-if-actual-empty:has(.hf-actual:empty) {
  display: none;
}

.hf-internal-link {
  cursor: pointer;
  color: var(--hf-primary-color);
}

.hf-internal-link:hover,
.hf-internal-link:focus {
  color: color-mix(in srgb, var(--hf-primary-color) 20%, var(--hf-main-color) 80%);
}

.hf-internal-link img {
  height:1.5em;
}

.hf-org-title-input {
  font-weight: bold;
}

.hf-on-top-floating {
  position: fixed;
  top: 4.1rem;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(8px);
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  z-index: 1000; /* Ensure it's above other content */
}

.hf-on-top-floating .btn-check:checked + .btn {
  background-color: var(--hf-main-color);
}

.hf-ex-now-upcoming ul {
  padding-left: 0;
}

.form-floating,
input[type="file"] {
  margin-bottom: 1rem;
}

.hf-circled {
  display: inline-flex;
  line-height: 0;
  width: 1.5em;
  height: 1.2em;
  background-color: var(--hf-main-color);
  border-color: color-mix(in srgb, var(--hf-main-color) 80%, black);
  border-style: solid;
  border-width: 2px;
  border-radius: 25%; /* circle with 50% and height = width */
  color: var(--hf-secondary-color);
  justify-content: center;
  align-items: center;
}

.hf-circled-std {
  font-family: 'Ubuntu';
  font-style: normal;
  font-weight: bold;
  font-size: 1.618034rem;
}


/* Auth tab specific */

.log-in-out-section {
  width: auto;
  max-width: 20rem;
  border: 1px solid var(--hf-main-color);
  box-shadow: var(--hf-box-shadow);
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-bottom: 0.5rem;
  margin-left: auto;
  margin-right: auto;
  margin-top: 2rem;
  margin-bottom: 0.5rem;
  background-color: var(--hf-form-bg-color);
}

.log-in-out-section>* {
  margin-top: .5rem;
}

#pop-oc-chooser li {
  cursor: pointer;
}

#pop-oc-chooser li:hover {
  background-color: var(--hf-hover-bg-color);
}

/* .accordion-button:not(.collapsed) {
  color: #FFF !important;
  background-color: #5500C9 !important;
}

.accordion-button:link, .accordion-button:visited, .accordion-button:hover, .accordion-button:active  {
  background-color: #5500C9 !important;
    color:#FFF !important;
    text-decoration: none !important;
     border: hidden !important;
       border-color: #FFF !important;
    box-shadow: 0px !important;
}

.accordion-button:focus {
  z-index: 3;
  border-color: #FFF !important;
  outline: 0;
  box-shadow: 0 0 0 .25rem #FFF !important;
}

.accordion-button:not(.collapsed)::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  transform: rotate(180deg)
} */


fieldset {
  /* border: var(--hf-main-color) solid 1px; */
  margin-top: .5rem;
  margin-bottom: .5rem;
  padding: .5rem;
}

.wday-input-group .wday-name {
  width: 4em;
}

.wday-input-group input[data-model-arg="time-open"],
.wday-input-group input[data-model-arg="time-close"] {
  max-width: 3.8em;
}

input[data-model-arg="fee-amount"] {
  /* display: inline-block; */
  max-width: 5.5em;
}

input[data-model-name$="ord"] {
  width: 5em !important;
}

textarea[data-model-name="i18n.introtext"] {
  height: 10rem !important;
}

.input-group {
  margin-bottom: .2rem;
}

.hf-input-group {
  padding: .25rem;
  border: solid 1px;
  border-radius: 5px;
  border-color: lightgray;
  margin-bottom: .5rem;
}

form :not(.input-group-text):not(.form-floating) > label:not(.form-check-label) {
  margin-top: .5rem;
}

input[data-model-lang],
textarea[data-model-lang] {
  background-color: var(--hf-lang-specific-bg-color);
}

.input-label-lang {
  font-size: smaller;
  font-weight: bold;
  color: var(--hf-lang-label-code-color);
  padding-left: .2em;
}

img[data-org-main-image] {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 25rem;
}

.hf-public-app img[data-org-main-image] {
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.hf-public-app img[data-org-main-image].loaded {
  opacity: 1;
}

#site-header-image {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 10rem;
  background-blend-mode: multiply;
  transition: background-color 0.5s ease-in-out;
  /*
  background-color: var(--hf-main-color);

  */
}

input:invalid {
  border-color: var(--hf-danger-color);
}

.card h5 {
  margin-top: 2ex;
  font-weight: bold !important;
}

input::placeholder,
textarea::placeholder {
  font-style: italic;
  color: var(--hf-placeholder-color)
}

ul {
  list-style-type: none;
  margin-bottom: .5rem;
  padding-left: .5rem;
}

.card h3 {
  margin: 0;
}

.card h6 {
  margin-top: 1em;
  margin-bottom: .5em;
}

.now-upcoming-title {
  color: var(--hf-subheading-color);
}

.excat-title {
  /*font-size: larger;*/
  font-style: italic;
  font-weight: bold;
  color: var(--hf-subheading-color);
}

.ex-entry.ex-entry-current {
  font-weight: bold;
  color: var(--hf-current-color);
}

@media (min-width: 576px) {
  .ex-entry .ex-date {
    /* padding-left: 1.618034rem; */
    padding-left: calc(var(--bs-gutter-x) * .5);
    padding-right: 0;
  }
}

/* Indent the ex title on small screens */
@media (max-width: 575.99px) {
  .ex-entry .ex-date,
  .ex-entry .ex-title {
    /* padding-left: 1.618034rem; */
    padding-left: calc(var(--bs-gutter-x) * .5);
    padding-right: calc(var(--bs-gutter-x) * .5);
    text-align: center;
  }
}

@media (max-width: 575.99px) {
  .ex-entry {
    margin-bottom: .5rem !important;
  }
}

@media (max-width: 575.99px) {
  .excat-title,
  .now-upcoming-title {
    text-align: center;
  }
}

.img-thumb-container {
  margin-bottom: .5rem;
}

.card {
  margin: auto;
  background-color: var(--hf-card-bg-color);
  box-shadow: var(--hf-box-shadow);
}

footer {
  bottom: 0;
  width: 100%;
  margin-top: 4rem;
  margin-bottom: 1rem;
  font-size: 0.8em;
  color: var(--hf-footer-color);
}

footer p {
  max-width: 25rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
