/* Version: 2026-03-19-v842 */
/*
 * Home Page Styles
 *
 * Layout and appearance for the home page wrapper, header, and home-specific buttons.
 */

.wrapper--home {
  margin: 0 auto;
  padding: 30px 10px 70px 10px;
  background: var(--color-white-95);
  box-shadow: 0 0 164px 0 var(--color-black-20);
  border-radius: 50px;
  height: auto;
  backdrop-filter: blur(5px);
}

/* Home page specific header margin (mobile first) */
header {
  margin-bottom: -2rem;
}

.button--home {
  width: fit-content;
  text-align: center;
  padding: 10px 15px;
  font-size: 1rem;
  text-decoration: none;
  font-weight: 600;
  font-variation-settings: "wght" 600;
  border-radius: 30px;
  background-color: var(--color-primary);
  color: var(--color-white);
  margin: 0 auto;
  outline: none;
  cursor: pointer;
  border: none;
  display: block;
}

.button--home:hover,
.button--home:focus,
.button--home:active {
  box-shadow: 0px 0px 0px 5px var(--color-primary);
  background-color: var(--color-primary);
  text-decoration: underline;
  border-radius: 30px;
  transition: all 0.1s ease-in;
  color: var(--color-white);
  z-index: 1;
  width: fit-content;
}

.button--404 {
  background-color: var(--color-secondary);
  color: var(--color-text);
  margin: 0 auto;
  max-width: 200px;
}

.button--404:hover,
.button--404:focus,
.button--404:active {
  box-shadow: 0px 0px 0px 5px var(--color-secondary-50);
  background-color: var(--color-secondary);
  text-decoration: underline;
  border-radius: 30px;
  transition: all 0.1s ease-in;
  color: var(--color-text);
  z-index: 1;
  width: fit-content;
}

.headline--home {
  font-size: 3rem;
  line-height: 0.75;
  text-align: center;
  margin: 0;
  margin-bottom: 0.25rem;
  letter-spacing: -3px;
  font-weight: 900;
  font-variation-settings: "wght" 900;
}

.subheadline--home {
  text-align: center;
  font-size: 1.5rem;
  letter-spacing: -1px;
  margin-bottom: 20px;
}

.image--home {
  aspect-ratio: auto;
  height: auto;
  width: 100%;
  min-width: 50px;
  max-height: 125px;
  transform-origin: 60% 70%;
  will-change: transform;
  object-fit: contain;
  cursor: pointer;
  transition: transform 0.2s ease;
}

/* Ensure the SVG rect always has the right fill color and is visible */
.image--home rect {
  fill: var(--color-secondary) !important;
  opacity: 1;
}

/* Ensure the SVG is always visible */
.image--home {
  opacity: 1;
  visibility: visible;
}

/* Hand icon hover effect */
.image--home:hover {
  transform: scale(1.05);
}

/* Class for animation - used both on load and on click */
.image--home.wave-animation {
  animation: waveHand 2.5s ease-in-out;
  will-change: transform;
  opacity: 1;
  visibility: visible;
}

/* Hand wave animation */
@keyframes waveHand {
  0% {
    transform: rotate(0deg);
  }

  10% {
    transform: rotate(14deg);
  }

  20% {
    transform: rotate(-8deg);
  }

  30% {
    transform: rotate(14deg);
  }

  40% {
    transform: rotate(-4deg);
  }

  50% {
    transform: rotate(10deg);
  }

  60% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(0deg);
  }
}

/* Media queries for home page specific elements */
@media screen and (min-width: 350px) {
  .wrapper--home {
    padding: 30px 10px 70px 10px;
  }
}

@media screen and (min-width: 350px) and (min-height: 650px) {
  .wrapper--home {
    padding: 50px 20px;
  }
}

@media screen and (min-width: 530px) {
  .wrapper--home {
    display: grid;
    grid-template-columns: 1fr 2fr;
    grid-template-rows: auto auto auto;
    grid-gap: 15px;
  }

  .button--home {
    margin: 0;
    display: inline-block;
  }

  .headline--home {
    order: 1;
    font-size: 3.7em;
    text-align: left;
  }

  .subheadline--home {
    order: 2;
    grid-column: 2;
    grid-row: 2;
    font-size: 1.8em;
    text-align: left;
    margin-bottom: 0;
  }

  .button--home {
    order: 3;
    grid-column: 2;
    grid-row: 3;
    margin: 0;
  }

  .image--home {
    order: 3;
    grid-column: 1;
    grid-row: 1;
    margin-top: 12px;
    max-height: 200px;
  }

  .image--home.featured--image {
    max-width: 150px;
    width: 100%;
  }
}

@media screen and (min-width: 768px) and (min-height: 600px) {
  .headline--home {
    font-size: 4.5em;
  }

  .wrapper--home {
    margin-top: 50px;
    padding: 50px;
  }
}

@media screen and (min-width: 960px) and (min-height: 800px) {
  .headline--home {
    font-size: 5em;
  }
}

@media screen and (min-width: 1200px) and (min-height: 800px) {
  .headline--home {
    font-size: 6em;
  }

  .wrapper--home {
    margin-top: 100px;
  }
}

@media screen and (min-width: 1244px) {
  .wrapper--home {
    max-width: 960px;
  }

  .image--home.featured--image {
    max-width: 250px;
    width: 100%;
  }
}

/* Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {

  .image--home,
  .image--home.wave-animation {
    animation: none;
    transition: none;
  }
}
