/* Lenis Recommended Styles */
html.lenis, html.lenis body {
  height: auto;
}
.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}
.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}
.lenis.lenis-stopped {
  overflow: hidden;
}
.lenis.lenis-scrolling iframe {
  pointer-events: none;
}

/* Fluid Typography (Awwwards Standard) */
:root {
  /* Font Sizes from mobile to desktop using clamp */
  --text-h1: clamp(2.5rem, 5vw + 1rem, 5rem);
  --text-h2: clamp(2rem, 4vw + 1rem, 3.5rem);
  --text-h3: clamp(1.5rem, 3vw + 1rem, 2.5rem);
  --text-body: clamp(1rem, 1.5vw + 0.8rem, 1.25rem);
  --text-small: clamp(0.875rem, 0.5vw + 0.75rem, 1rem);
  
  /* Fluid Spacing */
  --space-sm: clamp(1rem, 2vw, 2rem);
  --space-md: clamp(2rem, 4vw, 4rem);
  --space-lg: clamp(4rem, 8vw, 8rem);
  --space-xl: clamp(6rem, 12vw, 12rem);
}

/* Selection */
::selection {
  background-color: #7B2CBF;
  color: #fff;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 8px;
}
::-webkit-scrollbar-track {
  background: #F5F5F5;
}
::-webkit-scrollbar-thumb {
  background: #1E88E5;
  border-radius: 4px;
}

/* Base resets & styles */
body {
  font-family: 'Montserrat', sans-serif;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6, .font-title {
  font-family: 'Montserrat', sans-serif;
}

/* Typography Utilities */
.fluid-h1 { font-size: var(--text-h1); line-height: 1.1; letter-spacing: -0.02em; }
.fluid-h2 { font-size: var(--text-h2); line-height: 1.2; letter-spacing: -0.02em; }
.fluid-h3 { font-size: var(--text-h3); line-height: 1.3; letter-spacing: -0.01em; }
.fluid-body { font-size: var(--text-body); line-height: 1.6; }
.fluid-small { font-size: var(--text-small); line-height: 1.5; }

/* Micro-interactions for buttons */
.btn-primary {
  position: relative;
  overflow: hidden;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease;
  z-index: 1;
}
.btn-primary::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 100%;
  background: #032B3D;
  transition: top 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: -1;
}
.btn-primary:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 20px rgba(11, 79, 108, 0.25);
  color: #fff;
}
.btn-primary:hover::after {
  top: 0;
}

.btn-secondary {
  position: relative;
  overflow: hidden;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s ease;
}
.btn-secondary:hover {
  transform: translateY(-2px);
  background-color: #e5e7eb;
}

/* Responsive Image wrappers */
.img-wrapper {
  overflow: hidden;
  border-radius: 1.5rem;
  background-color: #f3f4f6;
}
.img-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.img-wrapper:hover img {
  transform: scale(1.03);
}

/* Accordion */
.accordion-content {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.4s ease-out;
}
.accordion-content > div {
  overflow: hidden;
}
.accordion-item.active .accordion-content {
  grid-template-rows: 1fr;
}
.accordion-icon {
  transition: transform 0.3s ease;
}
.accordion-item.active .accordion-icon {
  transform: rotate(45deg);
}

/* Awwwards specific utilities */
.reveal-text {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
}

.glass-panel {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.5);
}
