/* Core Lenis 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;
}

::selection {
  background-color: #da291c;
  color: white;
}



/* Custom Cursor interactions */















/* Magnetic Button Utility */
.magnetic-wrap {
  display: inline-block;
}

.premium-btn {
  /* Common utility for buttons to ensure relative positioning */
  position: relative;
  overflow: hidden;
}

/* Make sure service images stick properly */
.service-img {
  will-change: opacity, transform;
}

/* Fade out effect for language switch */
body.lang-transitioning #content-wrapper {
  opacity: 0;
}

/* Custom Tailwind Abstractions (as normal CSS logic mapped to Tailwind classes using Tailwind semantics) */

/* Button Abstraction */
.lang-btn {
  width: 100%;
  text-align: left;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
  display: flex;
  align-items: center;
  gap: 0.75rem; /* space-x-3 */
}
.lang-btn:hover {
  background-color: #da291c;
  color: white;
}
.lang-btn.active-lang {
  color: white;
}
.lang-btn:not(.active-lang) {
  color: #d1d5db; /* text-gray-300 */
}

/* Premium Button Component */
.premium-btn-link {
  display: inline-flex;
  align-items: center;
  gap: 1rem; /* space-x-4 */
  font-size: clamp(0.75rem, 1vw + 0.25rem, 0.875rem); /* text-fluid-nav */
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em; /* tracking-widest */
  position: relative;
}
.premium-btn-link .premium-btn-line {
  width: 3rem; /* w-12 */
  height: 1px;
  background-color: #da291c;
  display: block;
  transform-origin: left;
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}
.group:hover .premium-btn-link {
  color: white;
}
.group:hover .premium-btn-link .premium-btn-line {
  transform: scaleX(1.5);
}

/* Partner Card Component */
.partner-card-box {
  position: relative;
  padding: 2rem;
  border-width: 1px;
  border-color: #e5e7eb; /* border-gray-200 */
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-duration: 500ms;
  background-color: #f8f8f8; /* brand-light */
  overflow: hidden;
  cursor: pointer;
}
.partner-card-box:hover {
  border-color: #da291c; /* brand-red */
  background-color: white;
}

.partner-card-bg {
  position: absolute;
  inset: 0;
  background-color: #da291c;
  transform: scaleY(0);
  transform-origin: bottom;
  transition-property: transform;
  transition-duration: 500ms;
  transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
  z-index: 0;
}
.group:hover .partner-card-bg {
  transform: scaleY(100%);
}

.partner-card-content {
  position: relative;
  z-index: 10;
}
.partner-card-icon {
  width: 3rem;
  height: 3rem;
  margin-bottom: 2rem;
  color: #da291c;
  transition-property: color;
  transition-duration: 500ms;
}
.group:hover .partner-card-icon {
  color: white;
}

.partner-card-title {
  font-size: 1.25rem;
  line-height: 1.75rem;
  font-weight: 700;
  margin-bottom: 1rem;
  transition-property: color;
  transition-duration: 500ms;
}
.group:hover .partner-card-title {
  color: white;
}

.partner-card-desc {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 300;
  color: #6b7280; /* text-gray-500 */
  line-height: 1.625; /* leading-relaxed */
  transition-property: color;
  transition-duration: 500ms;
}
.group:hover .partner-card-desc {
  color: rgba(255, 255, 255, 0.8);
}

/* Project Card Tailwind extraction */
  }
}







/* Hover State for links/buttons */



/* ANTI-CYAN FIX: When on a red background, disable blend mode and force dark cursor */









/* Background Images Definitions */
.bg-hero-1 { background-image: url('https://images.unsplash.com/photo-1503387762-592deb58ef4e?q=80&w=2071&auto=format&fit=crop'); }
.bg-hero-2 { background-image: url('https://images.unsplash.com/photo-1541888082425-eb1bbd92a46a?q=80&w=2070&auto=format&fit=crop'); }
.bg-hero-3 { background-image: url('https://images.unsplash.com/photo-1504307651254-35680f356f58?q=80&w=2070&auto=format&fit=crop'); }

.bg-service-1 { background-image: url('https://images.unsplash.com/photo-1513694203232-719a280e022f?q=80&w=2069&auto=format&fit=crop'); }
.bg-service-2 { background-image: url('https://images.unsplash.com/photo-1589939705384-5185137a7f0f?q=80&w=2070&auto=format&fit=crop'); }
.bg-service-3 { background-image: url('https://images.unsplash.com/photo-1513694203232-719a280e022f?q=80&w=2069&auto=format&fit=crop'); }
.bg-service-4 { background-image: url('https://images.unsplash.com/photo-1589939705384-5185137a7f0f?q=80&w=2070&auto=format&fit=crop'); }
.bg-service-5 { background-image: url('https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?q=80&w=2071&auto=format&fit=crop'); }

.bg-project-1 { background-image: url('https://images.unsplash.com/photo-1541888082425-eb1bbd92a46a?q=80&w=2070&auto=format&fit=crop'); }
.bg-project-2 { background-image: url('https://images.unsplash.com/photo-1503387762-592deb58ef4e?q=80&w=2071&auto=format&fit=crop'); }
.bg-project-3 { background-image: url('https://images.unsplash.com/photo-1581094794329-c8112a89af12?q=80&w=2070&auto=format&fit=crop'); }
.bg-project-4 { background-image: url('https://images.unsplash.com/photo-1621252179027-94459d278660?q=80&w=2070&auto=format&fit=crop'); }
.bg-project-5 { background-image: url('https://images.unsplash.com/photo-1590486803833-1c5dc8ddd4c8?q=80&w=2070&auto=format&fit=crop'); }
.bg-project-6 { background-image: url('https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?q=80&w=2070&auto=format&fit=crop'); }

.bg-pattern-dots {
  background-image: radial-gradient(circle, #fff 1px, transparent 1px);
  background-size: 40px 40px;
}

/* Native CSS Hover Effects for Buttons */
.circle-btn {
  transition: transform 0.3s cubic-bezier(0.19, 1, 0.22, 1), background-color 0.3s, color 0.3s, border-color 0.3s;
}

.circle-btn:hover {
  transform: scale(1.1);
}

