/* Critical Tailwind utilities for above-the-fold content */
.bg-white {
  background-color: #ffffff;
}
.bg-deep {
  background-color: #262959;
}
.bg-chilled {
  background-color: #8ec9e6;
}
.text-white {
  color: #ffffff;
}
.text-deep {
  color: #262959;
}
.text-energised {
  color: #f08312;
}
.text-bright {
  color: #fab60f;
}

/* Critical layout utilities */
.container {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.max-w-5xl {
  max-width: 64rem;
}
.max-w-6xl {
  max-width: 72rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.py-20 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
.py-16 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}

/* Critical typography */
.text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-6xl {
  font-size: 3.75rem;
  line-height: 1;
}
.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.font-bold {
  font-weight: 700;
}
.font-extrabold {
  font-weight: 800;
}
.font-medium {
  font-weight: 500;
}

/* Critical grid and flexbox */
.grid {
  display: grid;
}
.md\:grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.gap-12 {
  gap: 3rem;
}
.items-center {
  align-items: center;
}

/* Critical positioning */
.relative {
  position: relative;
}
.absolute {
  position: absolute;
}
.inset-0 {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.z-10 {
  z-index: 10;
}

/* Critical background utilities */
.bg-cover {
  background-size: cover;
}
.bg-center {
  background-position: center;
}
.bg-no-repeat {
  background-repeat: no-repeat;
}

/* Critical responsive utilities */
.hidden {
  display: none;
}
.md\:inline {
  display: inline;
}
.md\:text-6xl {
  font-size: 3.75rem;
  line-height: 1;
}
.md\:text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.md\:grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1rem));
}

/* Critical button styles */
.bg-bright {
  background-color: #fab60f;
}
.text-deep {
  color: #262959;
}
.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.rounded-lg {
  border-radius: 0.5rem;
}
.hover\:bg-bright:hover {
  background-color: #fab60f;
}
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-300 {
  transition-duration: 300ms;
}
.transform {
  transform: translateX(var(--tw-translate-x))
    translateY(var(--tw-translate-y)) rotate(var(--tw-rotate))
    skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
    scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:scale-105:hover {
  transform: scale(1.05);
}
.shadow-md {
  box-shadow:
    0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
.hover\:shadow-lg:hover {
  box-shadow:
    0 10px 15px -3px rgba(0, 0, 0, 0.1),
    0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

/* Critical form styles */
.flex {
  display: flex;
}
.flex-col {
  flex-direction: column;
}
.md\:flex-row {
  flex-direction: row;
}
.gap-4 {
  gap: 1rem;
}
.justify-center {
  justify-content: center;
}
.items-center {
  align-items: center;
}

/* Critical input styles */
.border {
  border-width: 1px;
}
.border-gray-300 {
  border-color: #d1d5db;
}
.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.focus\:ring-2:focus {
  box-shadow: 0 0 0 2px #3b82f6;
}
.focus\:ring-blue-500:focus {
  box-shadow: 0 0 0 2px #3b82f6;
}

/* Critical spacing utilities */
.mb-6 {
  margin-bottom: 1.5rem;
}
.mb-8 {
  margin-bottom: 2rem;
}
.mb-12 {
  margin-bottom: 3rem;
}
.mb-16 {
  margin-bottom: 4rem;
}
.space-y-6 > * + * {
  margin-top: 1.5rem;
}
.space-y-8 > * + * {
  margin-top: 2rem;
}

/* Hide fallback when JS is enabled; React will replace #root content */
.html-js .no-js-homepage-fallback {
  display: none !important;
}

/* Critical responsive breakpoints */
@media (min-width: 768px) {
  .md\:inline {
    display: inline;
  }
  .md\:text-6xl {
    font-size: 3.75rem;
    line-height: 1;
  }
  .md\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }
  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .md\:flex-row {
    flex-direction: row;
  }
}
