@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

*, ::before, ::after{
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(147 197 253 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::before,
::after {
  --tw-content: '';
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

:root {
    --background: oklch(0.99 0.002 240);
    --foreground: oklch(0.13 0.02 240);

    --card: oklch(1 0 0);
    --card-foreground: oklch(0.13 0.02 240);

    --popover: oklch(1 0 0);
    --popover-foreground: oklch(0.13 0.02 240);

    --primary: oklch(0.47 0.19 255);
    --primary-foreground: oklch(1 0 0);

    --secondary: oklch(0.95 0.01 240);
    --secondary-foreground: oklch(0.2 0.03 240);

    --muted: oklch(0.96 0.008 240);
    --muted-foreground: oklch(0.5 0.02 240);

    --accent: oklch(0.93 0.04 255);
    --accent-foreground: oklch(0.3 0.12 255);

    --destructive: oklch(0.55 0.22 25);
    --destructive-foreground: oklch(1 0 0);

    --border: oklch(0.9 0.01 240);
    --input: oklch(0.9 0.01 240);
    --ring: oklch(0.47 0.19 255);

    --success: oklch(0.55 0.15 145);
    --warning: oklch(0.7 0.18 75);

    --radius: 0.5rem;

    /* Blue palette */
    --blue-50: oklch(0.97 0.02 255);
    --blue-100: oklch(0.93 0.04 255);
    --blue-200: oklch(0.87 0.08 255);
    --blue-300: oklch(0.78 0.13 255);
    --blue-400: oklch(0.65 0.17 255);
    --blue-500: oklch(0.55 0.2 255);
    --blue-600: oklch(0.47 0.19 255);
    --blue-700: oklch(0.4 0.17 255);
    --blue-800: oklch(0.33 0.14 255);
    --blue-900: oklch(0.27 0.1 255);

    /* Mega menu glass tokens */
    --mega-bg: oklch(0.995 0.003 240 / 0.92);
    --mega-border: oklch(0.47 0.19 255 / 0.18);
    --mega-shadow: 0 8px 40px oklch(0.47 0.19 255 / 0.14), 0 2px 12px oklch(0.13 0.02 240 / 0.08);
    --mega-item-hover-bg: oklch(0.93 0.04 255 / 0.7);
    --mega-item-hover-border: oklch(0.47 0.19 255 / 0.22);
    --mega-featured-bg: oklch(0.96 0.025 255 / 0.85);
    --mega-featured-border: oklch(0.47 0.19 255 / 0.25);
    --mega-divider: oklch(0.47 0.19 255 / 0.15);
    --mega-bottom-border: oklch(0.47 0.19 255 / 0.12);
  }

.dark {
    --background: oklch(0.13 0.02 240);
    --foreground: oklch(0.97 0.005 240);
    --card: oklch(0.17 0.025 240);
    --card-foreground: oklch(0.97 0.005 240);
    --popover: oklch(0.17 0.025 240);
    --popover-foreground: oklch(0.97 0.005 240);
    --primary: oklch(0.6 0.2 255);
    --primary-foreground: oklch(1 0 0);
    --secondary: oklch(0.22 0.03 240);
    --secondary-foreground: oklch(0.9 0.01 240);
    --muted: oklch(0.22 0.03 240);
    --muted-foreground: oklch(0.65 0.02 240);
    --accent: oklch(0.25 0.06 255);
    --accent-foreground: oklch(0.8 0.1 255);
    --destructive: oklch(0.55 0.22 25);
    --destructive-foreground: oklch(1 0 0);
    --border: oklch(0.25 0.03 240);
    --input: oklch(0.25 0.03 240);
    --ring: oklch(0.6 0.2 255);
  }

*{
  --tw-border-opacity: 1;
  border-color: oklch(var(--border) / var(--tw-border-opacity, 1));
}

body{
  --tw-bg-opacity: 1;
  background-color: oklch(var(--background) / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: oklch(var(--foreground) / var(--tw-text-opacity, 1));
    font-family: 'Inter', 'Plus Jakarta Sans', sans-serif;
    font-size: 17px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

html {
    scroll-behavior: smooth;
  }

.pointer-events-none{
  pointer-events: none;
}

.absolute{
  position: absolute;
}

.relative{
  position: relative;
}

.inset-0{
  inset: 0px;
}

.-bottom-4{
  bottom: -1rem;
}

.-left-4{
  left: -1rem;
}

.-right-4{
  right: -1rem;
}

.-top-4{
  top: -1rem;
}

.bottom-0{
  bottom: 0px;
}

.bottom-6{
  bottom: 1.5rem;
}

.left-0{
  left: 0px;
}

.left-1\/2{
  left: 50%;
}

.left-4{
  left: 1rem;
}

.left-6{
  left: 1.5rem;
}

.right-0{
  right: 0px;
}

.right-4{
  right: 1rem;
}

.right-40{
  right: 10rem;
}

.right-6{
  right: 1.5rem;
}

.top-0{
  top: 0px;
}

.top-1\/2{
  top: 50%;
}

.top-16{
  top: 4rem;
}

.-z-10{
  z-index: -10;
}

.z-0{
  z-index: 0;
}

.z-10{
  z-index: 10;
}

.z-20{
  z-index: 20;
}

.z-30{
  z-index: 30;
}

.col-start-2{
  grid-column-start: 2;
}

.row-span-2{
  grid-row: span 2 / span 2;
}

.row-start-1{
  grid-row-start: 1;
}

.mx-3{
  margin-left: 0.75rem;
  margin-right: 0.75rem;
}

.mx-3\.5{
  margin-left: 0.875rem;
  margin-right: 0.875rem;
}

.mx-6{
  margin-left: 1.5rem;
  margin-right: 1.5rem;
}

.mx-auto{
  margin-left: auto;
  margin-right: auto;
}

.mb-1{
  margin-bottom: 0.25rem;
}

.mb-12{
  margin-bottom: 3rem;
}

.mb-14{
  margin-bottom: 3.5rem;
}

.mb-16{
  margin-bottom: 4rem;
}

.mb-2{
  margin-bottom: 0.5rem;
}

.mb-3{
  margin-bottom: 0.75rem;
}

.mb-4{
  margin-bottom: 1rem;
}

.mb-5{
  margin-bottom: 1.25rem;
}

.mb-6{
  margin-bottom: 1.5rem;
}

.mb-8{
  margin-bottom: 2rem;
}

.ml-auto{
  margin-left: auto;
}

.mt-0\.5{
  margin-top: 0.125rem;
}

.mt-1{
  margin-top: 0.25rem;
}

.mt-1\.5{
  margin-top: 0.375rem;
}

.mt-10{
  margin-top: 2.5rem;
}

.mt-12{
  margin-top: 3rem;
}

.mt-14{
  margin-top: 3.5rem;
}

.mt-16{
  margin-top: 4rem;
}

.mt-2{
  margin-top: 0.5rem;
}

.block{
  display: block;
}

.flex{
  display: flex;
}

.inline-flex{
  display: inline-flex;
}

.grid{
  display: grid;
}

.hidden{
  display: none;
}

.aspect-video{
  aspect-ratio: 16 / 9;
}

.h-0\.5{
  height: 0.125rem;
}

.h-1\.5{
  height: 0.375rem;
}

.h-10{
  height: 2.5rem;
}

.h-11{
  height: 2.75rem;
}

.h-14{
  height: 3.5rem;
}

.h-2{
  height: 0.5rem;
}

.h-2\.5{
  height: 0.625rem;
}

.h-20{
  height: 5rem;
}

.h-3\.5{
  height: 0.875rem;
}

.h-32{
  height: 8rem;
}

.h-4{
  height: 1rem;
}

.h-48{
  height: 12rem;
}

.h-5{
  height: 1.25rem;
}

.h-6{
  height: 1.5rem;
}

.h-7{
  height: 1.75rem;
}

.h-72{
  height: 18rem;
}

.h-8{
  height: 2rem;
}

.h-9{
  height: 2.25rem;
}

.h-full{
  height: 100%;
}

.w-1\.5{
  width: 0.375rem;
}

.w-10{
  width: 2.5rem;
}

.w-11{
  width: 2.75rem;
}

.w-14{
  width: 3.5rem;
}

.w-2{
  width: 0.5rem;
}

.w-2\.5{
  width: 0.625rem;
}

.w-2\/3{
  width: 66.666667%;
}

.w-20{
  width: 5rem;
}

.w-24{
  width: 6rem;
}

.w-3\.5{
  width: 0.875rem;
}

.w-32{
  width: 8rem;
}

.w-4{
  width: 1rem;
}

.w-48{
  width: 12rem;
}

.w-5{
  width: 1.25rem;
}

.w-6{
  width: 1.5rem;
}

.w-64{
  width: 16rem;
}

.w-7{
  width: 1.75rem;
}

.w-72{
  width: 18rem;
}

.w-8{
  width: 2rem;
}

.w-9{
  width: 2.25rem;
}

.w-full{
  width: 100%;
}

.min-w-0{
  min-width: 0px;
}

.max-w-2xl{
  max-width: 42rem;
}

.max-w-7xl{
  max-width: 80rem;
}

.max-w-xl{
  max-width: 36rem;
}

.flex-1{
  flex: 1 1 0%;
}

.flex-shrink-0{
  flex-shrink: 0;
}

.border-collapse{
  border-collapse: collapse;
}

.-translate-x-1{
  --tw-translate-x: -0.25rem;
  transform: translate(var(--tw-translate-x), 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));
}

.-translate-x-1\/2{
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), 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));
}

.-translate-y-1\/2{
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), 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));
}

.scale-105{
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), 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));
}

@keyframes clientsTicker{

  0%{
    transform: translateX(0);
  }

  100%{
    transform: translateX(-50%);
  }
}

.animate-clients-ticker{
  animation: clientsTicker 35s linear infinite;
}

@keyframes float{

  0%, 100%{
    transform: translateY(0px);
  }

  50%{
    transform: translateY(-10px);
  }
}

@keyframes pulse{

  50%{
    opacity: .5;
  }
}

.animate-pulse{
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes ticker{

  0%{
    transform: translateX(0);
  }

  100%{
    transform: translateX(-50%);
  }
}

.animate-ticker{
  animation: ticker 30s linear infinite;
}

.cursor-default{
  cursor: default;
}

.grid-cols-1{
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-5{
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.grid-cols-\[0_1fr\]{
  grid-template-columns: 0 1fr;
}

.grid-rows-\[auto_auto\]{
  grid-template-rows: auto auto;
}

.flex-row{
  flex-direction: row;
}

.flex-col{
  flex-direction: column;
}

.flex-col-reverse{
  flex-direction: column-reverse;
}

.flex-wrap{
  flex-wrap: wrap;
}

.items-start{
  align-items: flex-start;
}

.items-center{
  align-items: center;
}

.items-baseline{
  align-items: baseline;
}

.justify-center{
  justify-content: center;
}

.justify-between{
  justify-content: space-between;
}

.gap-0\.5{
  gap: 0.125rem;
}

.gap-1{
  gap: 0.25rem;
}

.gap-1\.5{
  gap: 0.375rem;
}

.gap-10{
  gap: 2.5rem;
}

.gap-12{
  gap: 3rem;
}

.gap-2{
  gap: 0.5rem;
}

.gap-2\.5{
  gap: 0.625rem;
}

.gap-3{
  gap: 0.75rem;
}

.gap-4{
  gap: 1rem;
}

.gap-5{
  gap: 1.25rem;
}

.gap-6{
  gap: 1.5rem;
}

.gap-8{
  gap: 2rem;
}

.space-y-16 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(4rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(4rem * var(--tw-space-y-reverse));
}

.space-y-2 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}

.space-y-2\.5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));
}

.space-y-3 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}

.space-y-4 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}

.space-y-6 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}

.divide-x > :not([hidden]) ~ :not([hidden]){
  --tw-divide-x-reverse: 0;
  border-right-width: calc(1px * var(--tw-divide-x-reverse));
  border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
}

.divide-y > :not([hidden]) ~ :not([hidden]){
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}

.divide-border > :not([hidden]) ~ :not([hidden]){
  --tw-divide-opacity: 1;
  border-color: oklch(var(--border) / var(--tw-divide-opacity, 1));
}

.overflow-hidden{
  overflow: hidden;
}

.truncate{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.whitespace-nowrap{
  white-space: nowrap;
}

.rounded-2xl{
  border-radius: 1rem;
}

.rounded-3xl{
  border-radius: 1.5rem;
}

.rounded-full{
  border-radius: 9999px;
}

.rounded-lg{
  border-radius: var(--radius);
}

.rounded-xl{
  border-radius: 0.75rem;
}

.border{
  border-width: 1px;
}

.border-2{
  border-width: 2px;
}

.border-\[1\.5px\]{
  border-width: 1.5px;
}

.border-y{
  border-top-width: 1px;
  border-bottom-width: 1px;
}

.border-b{
  border-bottom-width: 1px;
}

.border-l{
  border-left-width: 1px;
}

.border-l-4{
  border-left-width: 4px;
}

.border-r{
  border-right-width: 1px;
}

.border-t{
  border-top-width: 1px;
}

.border-dashed{
  border-style: dashed;
}

.border-blue-100{
  border-color: var(--blue-100);
}

.border-blue-200{
  border-color: var(--blue-200);
}

.border-border{
  --tw-border-opacity: 1;
  border-color: oklch(var(--border) / var(--tw-border-opacity, 1));
}

.border-border\/50{
  border-color: oklch(var(--border) / 0.5);
}

.border-input{
  --tw-border-opacity: 1;
  border-color: oklch(var(--input) / var(--tw-border-opacity, 1));
}

.border-primary{
  --tw-border-opacity: 1;
  border-color: oklch(var(--primary) / var(--tw-border-opacity, 1));
}

.border-primary\/20{
  border-color: oklch(var(--primary) / 0.2);
}

.border-primary\/30{
  border-color: oklch(var(--primary) / 0.3);
}

.border-transparent{
  border-color: transparent;
}

.border-white\/10{
  border-color: rgb(255 255 255 / 0.1);
}

.border-white\/20{
  border-color: rgb(255 255 255 / 0.2);
}

.border-l-blue-500{
  border-left-color: var(--blue-500);
}

.border-l-blue-700{
  border-left-color: var(--blue-700);
}

.border-l-primary{
  --tw-border-opacity: 1;
  border-left-color: oklch(var(--primary) / var(--tw-border-opacity, 1));
}

.border-l-transparent{
  border-left-color: transparent;
}

.border-t-transparent{
  border-top-color: transparent;
}

.bg-accent{
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
}

.bg-background{
  --tw-bg-opacity: 1;
  background-color: oklch(var(--background) / var(--tw-bg-opacity, 1));
}

.bg-blue-50{
  background-color: var(--blue-50);
}

.bg-blue-500{
  background-color: var(--blue-500);
}

.bg-blue-600{
  background-color: var(--blue-600);
}

.bg-blue-700{
  background-color: var(--blue-700);
}

.bg-blue-800{
  background-color: var(--blue-800);
}

.bg-border{
  --tw-bg-opacity: 1;
  background-color: oklch(var(--border) / var(--tw-bg-opacity, 1));
}

.bg-indigo-500{
  --tw-bg-opacity: 1;
  background-color: rgb(99 102 241 / var(--tw-bg-opacity, 1));
}

.bg-indigo-600{
  --tw-bg-opacity: 1;
  background-color: rgb(79 70 229 / var(--tw-bg-opacity, 1));
}

.bg-indigo-700{
  --tw-bg-opacity: 1;
  background-color: rgb(67 56 202 / var(--tw-bg-opacity, 1));
}

.bg-primary{
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
}

.bg-primary\/20{
  background-color: oklch(var(--primary) / 0.2);
}

.bg-primary\/40{
  background-color: oklch(var(--primary) / 0.4);
}

.bg-primary\/5{
  background-color: oklch(var(--primary) / 0.05);
}

.bg-sky-600{
  --tw-bg-opacity: 1;
  background-color: rgb(2 132 199 / var(--tw-bg-opacity, 1));
}

.bg-sky-700{
  --tw-bg-opacity: 1;
  background-color: rgb(3 105 161 / var(--tw-bg-opacity, 1));
}

.bg-slate-50{
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}

.bg-white{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.bg-white\/10{
  background-color: rgb(255 255 255 / 0.1);
}

.bg-white\/20{
  background-color: rgb(255 255 255 / 0.2);
}

.bg-white\/40{
  background-color: rgb(255 255 255 / 0.4);
}

.bg-white\/95{
  background-color: rgb(255 255 255 / 0.95);
}

.bg-yellow-400{
  --tw-bg-opacity: 1;
  background-color: rgb(250 204 21 / var(--tw-bg-opacity, 1));
}

.bg-gradient-to-br{
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}

.bg-gradient-to-l{
  background-image: linear-gradient(to left, var(--tw-gradient-stops));
}

.bg-gradient-to-r{
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}

.from-accent{
  --tw-gradient-from: oklch(var(--accent) / 1) var(--tw-gradient-from-position);
  --tw-gradient-to: oklch(var(--accent) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-blue-50{
  --tw-gradient-from: var(--blue-50) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-transparent{
  --tw-gradient-from: transparent var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-white{
  --tw-gradient-from: #fff var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-white\/95{
  --tw-gradient-from: rgb(255 255 255 / 0.95) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.via-primary\/30{
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), oklch(var(--primary) / 0.3) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.to-accent{
  --tw-gradient-to: oklch(var(--accent) / 1) var(--tw-gradient-to-position);
}

.to-blue-100{
  --tw-gradient-to: var(--blue-100) var(--tw-gradient-to-position);
}

.to-blue-50{
  --tw-gradient-to: var(--blue-50) var(--tw-gradient-to-position);
}

.to-transparent{
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
}

.bg-cover{
  background-size: cover;
}

.bg-center{
  background-position: center;
}

.bg-no-repeat{
  background-repeat: no-repeat;
}

.fill-yellow-400{
  fill: #facc15;
}

.fill-yellow-900{
  fill: #713f12;
}

.p-10{
  padding: 2.5rem;
}

.p-2{
  padding: 0.5rem;
}

.p-3{
  padding: 0.75rem;
}

.p-6{
  padding: 1.5rem;
}

.p-7{
  padding: 1.75rem;
}

.p-8{
  padding: 2rem;
}

.px-2{
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.px-2\.5{
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}

.px-3{
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.px-4{
  padding-left: 1rem;
  padding-right: 1rem;
}

.px-6{
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.px-8{
  padding-left: 2rem;
  padding-right: 2rem;
}

.py-0\.5{
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}

.py-1{
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

.py-1\.5{
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}

.py-14{
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}

.py-16{
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.py-20{
  padding-top: 5rem;
  padding-bottom: 5rem;
}

.py-3{
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.py-3\.5{
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}

.py-4{
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.pt-3{
  padding-top: 0.75rem;
}

.text-center{
  text-align: center;
}

.align-middle{
  vertical-align: middle;
}

.font-display{
  font-family: Plus Jakarta Sans, Inter, system-ui, sans-serif;
}

.text-2xl{
  font-size: 1.5rem;
  line-height: 2rem;
}

.text-3xl{
  font-size: 1.875rem;
  line-height: 2.25rem;
}

.text-4xl{
  font-size: 2.25rem;
  line-height: 2.5rem;
}

.text-5xl{
  font-size: 3rem;
  line-height: 1;
}

.text-\[11px\]{
  font-size: 11px;
}

.text-base{
  font-size: 1rem;
  line-height: 1.5rem;
}

.text-lg{
  font-size: 1.125rem;
  line-height: 1.75rem;
}

.text-sm{
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.text-xl{
  font-size: 1.25rem;
  line-height: 1.75rem;
}

.text-xs{
  font-size: 0.75rem;
  line-height: 1rem;
}

.font-bold{
  font-weight: 700;
}

.font-extrabold{
  font-weight: 800;
}

.font-medium{
  font-weight: 500;
}

.font-semibold{
  font-weight: 600;
}

.uppercase{
  text-transform: uppercase;
}

.tabular-nums{
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}

.leading-relaxed{
  line-height: 1.625;
}

.leading-tight{
  line-height: 1.25;
}

.tracking-tight{
  letter-spacing: -0.025em;
}

.tracking-wide{
  letter-spacing: 0.025em;
}

.tracking-wider{
  letter-spacing: 0.05em;
}

.tracking-widest{
  letter-spacing: 0.1em;
}

.text-blue-600{
  color: var(--blue-600);
}

.text-blue-700{
  color: var(--blue-700);
}

.text-foreground{
  --tw-text-opacity: 1;
  color: oklch(var(--foreground) / var(--tw-text-opacity, 1));
}

.text-foreground\/60{
  color: oklch(var(--foreground) / 0.6);
}

.text-foreground\/70{
  color: oklch(var(--foreground) / 0.7);
}

.text-foreground\/80{
  color: oklch(var(--foreground) / 0.8);
}

.text-foreground\/90{
  color: oklch(var(--foreground) / 0.9);
}

.text-muted-foreground{
  --tw-text-opacity: 1;
  color: oklch(var(--muted-foreground) / var(--tw-text-opacity, 1));
}

.text-primary{
  --tw-text-opacity: 1;
  color: oklch(var(--primary) / var(--tw-text-opacity, 1));
}

.text-primary-foreground{
  --tw-text-opacity: 1;
  color: oklch(var(--primary-foreground) / var(--tw-text-opacity, 1));
}

.text-primary\/0{
  color: oklch(var(--primary) / 0);
}

.text-primary\/10{
  color: oklch(var(--primary) / 0.1);
}

.text-primary\/20{
  color: oklch(var(--primary) / 0.2);
}

.text-primary\/70{
  color: oklch(var(--primary) / 0.7);
}

.text-primary\/80{
  color: oklch(var(--primary) / 0.8);
}

.text-white{
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.text-white\/40{
  color: rgb(255 255 255 / 0.4);
}

.text-white\/50{
  color: rgb(255 255 255 / 0.5);
}

.text-white\/60{
  color: rgb(255 255 255 / 0.6);
}

.text-white\/70{
  color: rgb(255 255 255 / 0.7);
}

.text-white\/80{
  color: rgb(255 255 255 / 0.8);
}

.text-white\/90{
  color: rgb(255 255 255 / 0.9);
}

.text-yellow-400{
  --tw-text-opacity: 1;
  color: rgb(250 204 21 / var(--tw-text-opacity, 1));
}

.text-yellow-900{
  --tw-text-opacity: 1;
  color: rgb(113 63 18 / var(--tw-text-opacity, 1));
}

.underline-offset-4{
  text-underline-offset: 4px;
}

.opacity-0{
  opacity: 0;
}

.opacity-100{
  opacity: 1;
}

.shadow-blue-glow{
  --tw-shadow: 0 0 20px oklch(0.47 0.19 255 / 0.25), 0 0 60px oklch(0.47 0.19 255 / 0.1);
  --tw-shadow-colored: 0 0 20px var(--tw-shadow-color), 0 0 60px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-card{
  --tw-shadow: 0 1px 3px oklch(0.47 0.19 255 / 0.08), 0 4px 16px oklch(0.47 0.19 255 / 0.06);
  --tw-shadow-colored: 0 1px 3px var(--tw-shadow-color), 0 4px 16px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-card-lg{
  --tw-shadow: 0 8px 24px oklch(0.47 0.19 255 / 0.12), 0 16px 48px oklch(0.47 0.19 255 / 0.1);
  --tw-shadow-colored: 0 8px 24px var(--tw-shadow-color), 0 16px 48px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-card-md{
  --tw-shadow: 0 4px 12px oklch(0.47 0.19 255 / 0.1), 0 8px 32px oklch(0.47 0.19 255 / 0.08);
  --tw-shadow-colored: 0 4px 12px var(--tw-shadow-color), 0 8px 32px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-none{
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-card{
  --tw-shadow-color: oklch(var(--card) / 1);
  --tw-shadow: var(--tw-shadow-colored);
}

.blur-2xl{
  --tw-blur: blur(40px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.transition-all{
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-colors{
  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;
}

.transition-opacity{
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-transform{
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.duration-150{
  transition-duration: 150ms;
}

.duration-200{
  transition-duration: 200ms;
}

.duration-300{
  transition-duration: 300ms;
}

.duration-700{
  transition-duration: 700ms;
}

.ease-in-out{
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes enter{

  from{
    opacity: var(--tw-enter-opacity, 1);
    transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));
  }
}

@keyframes exit{

  to{
    opacity: var(--tw-exit-opacity, 1);
    transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));
  }
}

.duration-150{
  animation-duration: 150ms;
}

.duration-200{
  animation-duration: 200ms;
}

.duration-300{
  animation-duration: 300ms;
}

.duration-700{
  animation-duration: 700ms;
}

.ease-in-out{
  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Card shadow utilities */

.card-shadow {
    box-shadow: 0 1px 3px oklch(0.47 0.19 255 / 0.08), 0 4px 16px oklch(0.47 0.19 255 / 0.06);
  }

.card-shadow-lg {
    box-shadow: 0 8px 24px oklch(0.47 0.19 255 / 0.12), 0 16px 48px oklch(0.47 0.19 255 / 0.1);
  }

/* Blue glow */

/* Gradient text */

.gradient-text {
    background: linear-gradient(135deg, oklch(0.47 0.19 255), oklch(0.55 0.2 255), oklch(0.4 0.17 255));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

/* Section gradient */

.section-gradient {
    background: linear-gradient(180deg, oklch(0.99 0.002 240) 0%, oklch(0.96 0.015 255) 100%);
  }

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

.animate-ticker {
    animation: ticker 30s linear infinite;
  }

.animate-ticker:hover {
    animation-play-state: paused;
  }

/*  Hero Slider  */

.hero-slider-height {
    height: 72vh;
    min-height: 414px;
    max-height: 630px;
  }

/* Slide overlay dark gradient from left for text legibility */

.hero-slide-overlay {
    background: linear-gradient(
      105deg,
      oklch(0.1 0.02 240 / 0.82) 0%,
      oklch(0.1 0.02 240 / 0.55) 50%,
      oklch(0.1 0.02 240 / 0.15) 100%
    );
  }

/* Hero badge */

.hero-badge {
    background: oklch(1 0 0 / 0.12);
    border: 1px solid oklch(1 0 0 / 0.25);
    backdrop-filter: blur(8px);
  }

/* Hero CTA primary */

.hero-cta-primary {
    background: oklch(0.47 0.19 255);
    color: oklch(1 0 0);
    box-shadow: 0 4px 20px oklch(0.47 0.19 255 / 0.45);
  }

.hero-cta-primary:hover {
    background: oklch(0.42 0.18 255);
    box-shadow: 0 6px 28px oklch(0.47 0.19 255 / 0.55);
    transform: translateY(-2px);
  }

/* Hero CTA secondary */

.hero-cta-secondary {
    background: oklch(1 0 0 / 0.12);
    color: oklch(1 0 0);
    border: 1px solid oklch(1 0 0 / 0.35);
    backdrop-filter: blur(8px);
  }

.hero-cta-secondary:hover {
    background: oklch(1 0 0 / 0.2);
    border-color: oklch(1 0 0 / 0.55);
    transform: translateY(-2px);
  }

/* Hero nav button */

.hero-nav-btn {
    background: oklch(1 0 0 / 0.12);
    border: 1px solid oklch(1 0 0 / 0.25);
    backdrop-filter: blur(8px);
  }

.hero-nav-btn:hover {
    background: oklch(1 0 0 / 0.22);
    border-color: oklch(1 0 0 / 0.45);
  }

.slide-fade-up {
    animation: slideFadeUp 0.6s ease-out both;
  }

/*  Clients Carousel  */

/* Fade mask on left and right edges */

.clients-carousel-mask {
    -webkit-mask-image: linear-gradient(
      to right,
      transparent 0%,
      black 8%,
      black 92%,
      transparent 100%
    );
    mask-image: linear-gradient(
      to right,
      transparent 0%,
      black 8%,
      black 92%,
      transparent 100%
    );
  }

@keyframes clientsTicker {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }

.animate-clients-ticker {
    animation: clientsTicker 35s linear infinite;
    width: -moz-max-content;
    width: max-content;
  }

/* Header Logo*/


.header-logo {
	width:200px;
}

/* Featured card tinted glass card */

.mega-featured-card {
    background: var(--mega-featured-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid var(--mega-featured-border);
    box-shadow: 0 2px 16px oklch(0.47 0.19 255 / 0.08), inset 0 1px 0 oklch(1 0 0 / 0.6);
  }

/* Featured card icon badge */

.mega-featured-icon {
    background: oklch(1 0 0 / 0.7);
    border: 1px solid oklch(0.47 0.19 255 / 0.2);
    box-shadow: 0 1px 4px oklch(0.47 0.19 255 / 0.1);
  }

/* Featured card CTA link */

.mega-featured-cta {
    padding: 0.375rem 0.75rem;
    border-radius: 0.5rem;
    background: oklch(0.47 0.19 255 / 0.08);
    border: 1px solid oklch(0.47 0.19 255 / 0.2);
    transition: background 0.15s, border-color 0.15s, gap 0.15s;
  }

.mega-featured-cta:hover {
    background: oklch(0.47 0.19 255 / 0.14);
    border-color: oklch(0.47 0.19 255 / 0.35);
  }

/* Individual item card */

.mega-item-card {
    background: transparent;
    border: 1px solid transparent;
  }

.mega-item-card:hover {
    background: var(--mega-item-hover-bg);
    border-color: var(--mega-item-hover-border);
    box-shadow: 0 1px 8px oklch(0.47 0.19 255 / 0.08), inset 0 1px 0 oklch(1 0 0 / 0.5);
  }

/* Bottom CTA button */

.mega-bottom-cta {
    background: oklch(0.47 0.19 255);
    color: oklch(1 0 0);
    box-shadow: 0 2px 8px oklch(0.47 0.19 255 / 0.3);
  }

.mega-bottom-cta:hover {
    background: oklch(0.42 0.18 255);
    box-shadow: 0 4px 16px oklch(0.47 0.19 255 / 0.4);
    transform: translateY(-1px);
  }

.hover\:-translate-y-0\.5:hover{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), 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\:-translate-y-1:hover{
  --tw-translate-y: -0.25rem;
  transform: translate(var(--tw-translate-x), 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-110:hover{
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), 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\:gap-3:hover{
  gap: 0.75rem;
}

.hover\:border-primary\/20:hover{
  border-color: oklch(var(--primary) / 0.2);
}

.hover\:border-primary\/30:hover{
  border-color: oklch(var(--primary) / 0.3);
}

.hover\:bg-accent:hover{
  --tw-bg-opacity: 1;
  background-color: oklch(var(--accent) / var(--tw-bg-opacity, 1));
}

.hover\:bg-primary\/40:hover{
  background-color: oklch(var(--primary) / 0.4);
}

.hover\:bg-primary\/90:hover{
  background-color: oklch(var(--primary) / 0.9);
}

.hover\:bg-white\/70:hover{
  background-color: rgb(255 255 255 / 0.7);
}

.hover\:bg-white\/90:hover{
  background-color: rgb(255 255 255 / 0.9);
}

.hover\:underline:hover{
  text-decoration-line: underline;
}

.hover\:shadow-blue-glow:hover{
  --tw-shadow: 0 0 20px oklch(0.47 0.19 255 / 0.25), 0 0 60px oklch(0.47 0.19 255 / 0.1);
  --tw-shadow-colored: 0 0 20px var(--tw-shadow-color), 0 0 60px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-card-md:hover{
  --tw-shadow: 0 4px 12px oklch(0.47 0.19 255 / 0.1), 0 8px 32px oklch(0.47 0.19 255 / 0.08);
  --tw-shadow-colored: 0 4px 12px var(--tw-shadow-color), 0 8px 32px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:card-shadow-md:hover {
    box-shadow: 0 4px 12px oklch(0.47 0.19 255 / 0.1), 0 8px 32px oklch(0.47 0.19 255 / 0.08);
  }

.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{
  opacity: 1;
}

.group:hover .group-hover\:translate-x-0{
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), 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));
}

.group:hover .group-hover\:translate-x-1{
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), 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));
}

.group:hover .group-hover\:scale-110{
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), 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));
}

.group:hover .group-hover\:scale-x-100{
  --tw-scale-x: 1;
  transform: translate(var(--tw-translate-x), 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));
}

.group:hover .group-hover\:gap-2\.5{
  gap: 0.625rem;
}

.group:hover .group-hover\:bg-primary\/10{
  background-color: oklch(var(--primary) / 0.1);
}

.group:hover .group-hover\:text-foreground{
  --tw-text-opacity: 1;
  color: oklch(var(--foreground) / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-primary{
  --tw-text-opacity: 1;
  color: oklch(var(--primary) / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-primary\/20{
  color: oklch(var(--primary) / 0.2);
}

.group:hover .group-hover\:text-primary\/60{
  color: oklch(var(--primary) / 0.6);
}

.group\/menu-item:hover .group-hover\/menu-item\:opacity-100{
  opacity: 1;
}

.group:hover .group-hover\:shadow-blue-glow{
  --tw-shadow: 0 0 20px oklch(0.47 0.19 255 / 0.25), 0 0 60px oklch(0.47 0.19 255 / 0.1);
  --tw-shadow-colored: 0 0 20px var(--tw-shadow-color), 0 0 60px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

@keyframes accordion-up{

  from{
    height: var(--radix-accordion-content-height);
  }

  to{
    height: 0;
  }
}

@keyframes accordion-down{

  from{
    height: 0;
  }

  to{
    height: var(--radix-accordion-content-height);
  }
}

.group[data-disabled="true"] .group-data-\[disabled\=true\]\:pointer-events-none{
  pointer-events: none;
}

.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:relative{
  position: relative;
}

.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{
  left: calc(var(--sidebar-width) * -1);
}

.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{
  right: calc(var(--sidebar-width) * -1);
}

.group[data-side="left"] .group-data-\[side\=left\]\:-right-4{
  right: -1rem;
}

.group[data-side="right"] .group-data-\[side\=right\]\:left-0{
  left: 0px;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:top-full{
  top: 100%;
}

.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:z-10{
  z-index: 10;
}

.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:-mt-8{
  margin-top: -2rem;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:mt-1\.5{
  margin-top: 0.375rem;
}

.group\/drawer-content[data-vaul-drawer-direction="bottom"] .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block{
  display: block;
}

.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:hidden{
  display: none;
}

.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]{
  width: calc(var(--sidebar-width-icon) + (--spacing(4)));
}

.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]{
  width: calc(var(--sidebar-width-icon) + (--spacing(4)) + 2px);
}

.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:w-0{
  width: 0px;
}

.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), 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));
}

.group[data-side="right"] .group-data-\[side\=right\]\:rotate-180{
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), 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));
}

.group[data-state="open"] .group-data-\[state\=open\]\:rotate-180{
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), 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));
}

.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:overflow-hidden{
  overflow: hidden;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:overflow-hidden{
  overflow: hidden;
}

.group[data-variant="floating"] .group-data-\[variant\=floating\]\:rounded-lg{
  border-radius: var(--radius);
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:rounded-md{
  border-radius: calc(var(--radius) - 2px);
}

.group[data-variant="floating"] .group-data-\[variant\=floating\]\:border{
  border-width: 1px;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:border{
  border-width: 1px;
}

.group[data-side="left"] .group-data-\[side\=left\]\:border-r{
  border-right-width: 1px;
}

.group[data-side="right"] .group-data-\[side\=right\]\:border-l{
  border-left-width: 1px;
}

.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:border-ring{
  --tw-border-opacity: 1;
  border-color: oklch(var(--ring) / var(--tw-border-opacity, 1));
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:bg-popover{
  --tw-bg-opacity: 1;
  background-color: oklch(var(--popover) / var(--tw-bg-opacity, 1));
}

.group\/drawer-content[data-vaul-drawer-direction="bottom"] .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:text-center{
  text-align: center;
}

.group\/drawer-content[data-vaul-drawer-direction="top"] .group-data-\[vaul-drawer-direction\=top\]\/drawer-content\:text-center{
  text-align: center;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:text-popover-foreground{
  --tw-text-opacity: 1;
  color: oklch(var(--popover-foreground) / var(--tw-text-opacity, 1));
}

.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:opacity-0{
  opacity: 0;
}

.group[data-disabled="true"] .group-data-\[disabled\=true\]\:opacity-50{
  opacity: 0.5;
}

.group[data-variant="floating"] .group-data-\[variant\=floating\]\:shadow-sm{
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:shadow{
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:ring-ring\/50{
  --tw-ring-color: oklch(var(--ring) / 0.5);
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:duration-200{
  transition-duration: 200ms;
  animation-duration: 200ms;
}

.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:after\:left-full::after{
  content: var(--tw-content);
  left: 100%;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:animate-in[data-state="open"]{
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:animate-out[data-state="closed"]{
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:fade-out-0[data-state="closed"]{
  --tw-exit-opacity: 0;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:fade-in-0[data-state="open"]{
  --tw-enter-opacity: 0;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:zoom-out-95[data-state="closed"]{
  --tw-exit-scale: .95;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:zoom-in-95[data-state="open"]{
  --tw-enter-scale: .95;
}

.dark\:border-input:is(.dark *){
  --tw-border-opacity: 1;
  border-color: oklch(var(--input) / var(--tw-border-opacity, 1));
}

.dark\:bg-destructive\/60:is(.dark *){
  background-color: oklch(var(--destructive) / 0.6);
}

.dark\:bg-input\/30:is(.dark *){
  background-color: oklch(var(--input) / 0.3);
}

.dark\:text-muted-foreground:is(.dark *){
  --tw-text-opacity: 1;
  color: oklch(var(--muted-foreground) / var(--tw-text-opacity, 1));
}

.dark\:hover\:bg-accent\/50:hover:is(.dark *){
  background-color: oklch(var(--accent) / 0.5);
}

.dark\:hover\:bg-input\/50:hover:is(.dark *){
  background-color: oklch(var(--input) / 0.5);
}

.dark\:hover\:text-accent-foreground:hover:is(.dark *){
  --tw-text-opacity: 1;
  color: oklch(var(--accent-foreground) / var(--tw-text-opacity, 1));
}

.dark\:focus-visible\:ring-destructive\/40:focus-visible:is(.dark *){
  --tw-ring-color: oklch(var(--destructive) / 0.4);
}

.dark\:data-\[state\=active\]\:border-input[data-state="active"]:is(.dark *){
  --tw-border-opacity: 1;
  border-color: oklch(var(--input) / var(--tw-border-opacity, 1));
}

.dark\:data-\[state\=active\]\:bg-input\/30[data-state="active"]:is(.dark *){
  background-color: oklch(var(--input) / 0.3);
}

.dark\:data-\[state\=checked\]\:bg-primary[data-state="checked"]:is(.dark *){
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary) / var(--tw-bg-opacity, 1));
}

.dark\:data-\[state\=checked\]\:bg-primary-foreground[data-state="checked"]:is(.dark *){
  --tw-bg-opacity: 1;
  background-color: oklch(var(--primary-foreground) / var(--tw-bg-opacity, 1));
}

.dark\:data-\[state\=unchecked\]\:bg-foreground[data-state="unchecked"]:is(.dark *){
  --tw-bg-opacity: 1;
  background-color: oklch(var(--foreground) / var(--tw-bg-opacity, 1));
}

.dark\:data-\[state\=unchecked\]\:bg-input\/80[data-state="unchecked"]:is(.dark *){
  background-color: oklch(var(--input) / 0.8);
}

.dark\:data-\[state\=active\]\:text-foreground[data-state="active"]:is(.dark *){
  --tw-text-opacity: 1;
  color: oklch(var(--foreground) / var(--tw-text-opacity, 1));
}

.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:focus[data-variant="destructive"]:is(.dark *){
  background-color: oklch(var(--destructive) / 0.2);
}

@media (min-width: 640px){

  .sm\:left-6{
    left: 1.5rem;
  }

  .sm\:right-6{
    right: 1.5rem;
  }

  .sm\:block{
    display: block;
  }

  .sm\:flex{
    display: flex;
  }

  .sm\:max-w-lg{
    max-width: 32rem;
  }

  .sm\:max-w-sm{
    max-width: 24rem;
  }

  .sm\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .sm\:flex-row{
    flex-direction: row;
  }

  .sm\:justify-end{
    justify-content: flex-end;
  }

  .sm\:gap-2\.5{
    gap: 0.625rem;
  }

  .sm\:p-10{
    padding: 2.5rem;
  }

  .sm\:px-6{
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .sm\:pl-2\.5{
    padding-left: 0.625rem;
  }

  .sm\:pr-2\.5{
    padding-right: 0.625rem;
  }

  .sm\:text-left{
    text-align: left;
  }

  .sm\:text-3xl{
    font-size: 1.875rem;
    line-height: 2.25rem;
  }

  .sm\:text-4xl{
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

  .sm\:text-5xl{
    font-size: 3rem;
    line-height: 1;
  }

  .sm\:text-xl{
    font-size: 1.25rem;
    line-height: 1.75rem;
  }

  .data-\[vaul-drawer-direction\=left\]\:sm\:max-w-sm[data-vaul-drawer-direction="left"]{
    max-width: 24rem;
  }

  .data-\[vaul-drawer-direction\=right\]\:sm\:max-w-sm[data-vaul-drawer-direction="right"]{
    max-width: 24rem;
  }
}

@media (min-width: 768px){

  .md\:absolute{
    position: absolute;
  }

  .md\:block{
    display: block;
  }

  .md\:flex{
    display: flex;
  }

  .md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{
    width: var(--radix-navigation-menu-viewport-width);
  }

  .md\:w-auto{
    width: auto;
  }

  .md\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .md\:flex-row{
    flex-direction: row;
  }

  .md\:gap-1\.5{
    gap: 0.375rem;
  }

  .md\:text-left{
    text-align: left;
  }

  .md\:text-sm{
    font-size: 0.875rem;
    line-height: 1.25rem;
  }

  .md\:opacity-0{
    opacity: 0;
  }

  .md\:after\:hidden::after{
    content: var(--tw-content);
    display: none;
  }

  .peer[data-variant="inset"] ~ .md\:peer-data-\[variant\=inset\]\:m-2{
    margin: 0.5rem;
  }

  .peer[data-variant="inset"] ~ .md\:peer-data-\[variant\=inset\]\:ml-0{
    margin-left: 0px;
  }

  .peer[data-variant="inset"][data-state="collapsed"] ~ .md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2{
    margin-left: 0.5rem;
  }

  .peer[data-variant="inset"] ~ .md\:peer-data-\[variant\=inset\]\:rounded-xl{
    border-radius: 0.75rem;
  }

  .peer[data-variant="inset"] ~ .md\:peer-data-\[variant\=inset\]\:shadow-sm{
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
}

@media (min-width: 1024px){

  .lg\:col-span-1{
    grid-column: span 1 / span 1;
  }

  .lg\:col-span-2{
    grid-column: span 2 / span 2;
  }

  .lg\:col-start-1{
    grid-column-start: 1;
  }

  .lg\:col-start-2{
    grid-column-start: 2;
  }

  .lg\:row-start-1{
    grid-row-start: 1;
  }

  .lg\:block{
    display: block;
  }

  .lg\:flex{
    display: flex;
  }

  .lg\:hidden{
    display: none;
  }

  .lg\:grid-flow-dense{
    grid-auto-flow: dense;
  }

  .lg\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lg\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lg\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .lg\:grid-cols-6{
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .lg\:divide-y-0 > :not([hidden]) ~ :not([hidden]){
    --tw-divide-y-reverse: 0;
    border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse)));
    border-bottom-width: calc(0px * var(--tw-divide-y-reverse));
  }

  .lg\:px-8{
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .lg\:py-28{
    padding-top: 7rem;
    padding-bottom: 7rem;
  }

  .lg\:text-3xl{
    font-size: 1.875rem;
    line-height: 2.25rem;
  }

  .lg\:text-4xl{
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

  .lg\:text-5xl{
    font-size: 3rem;
    line-height: 1;
  }

  .lg\:text-6xl{
    font-size: 3.75rem;
    line-height: 1;
  }

  .lg\:text-base{
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

@media (min-width: 1280px){

  .xl\:text-6xl{
    font-size: 3.75rem;
    line-height: 1;
  }
}

 

/* ── Mega menu: panel visibility controlled by JS (.is-open on li) ── */

/* Default: hide all panels */
.mega-dropdown { display: none; }

@media (min-width: 992px) {

  .mega-parent { position: static; }

  /* JS adds .is-open when hovering nav item OR its panel */
  .mega-parent.is-open > .mega-dropdown {
    display: block;
    position: fixed;
    top: 65px;
    left: 0;
    right: 0;
    z-index: 1040;
    background: rgba(255,255,255,0.97);
    backdrop-filter: blur(20px) saturate(1.6);
    -webkit-backdrop-filter: blur(20px) saturate(1.6);
    border-bottom: 1px solid rgba(66,133,244,0.15);
    box-shadow: 0 8px 40px rgba(66,133,244,0.12), 0 2px 8px rgba(0,0,0,0.06);
    animation: megaIn 0.15s ease-out;
  }

  .mega-parent.is-open > .nav-link {
    color: oklch(0.47 0.19 255) !important;
    background: oklch(0.93 0.04 255) !important;
    border-radius: 6px;
  }

  .mega-parent.is-open .mega-chevron { transform: rotate(180deg); }
}

/* Mobile: panels visible inside Bootstrap collapse */
@media (max-width: 991px) {
  .mega-dropdown {
    display: block;
    position: static;
    box-shadow: none;
    border: none;
    animation: none;
    background: transparent;
    padding-bottom: 0.5rem;
  }
  .mega-dropdown .container-xl { padding-left: 0; padding-right: 0; }
  .mega-dropdown .col-3.border-end { display: none; }
  .mega-dropdown .col-9 { width: 100%; max-width: 100%; }
}

@keyframes megaIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Panel internals ── */
.mega-icon-box        { width: 32px; height: 32px; flex-shrink: 0; }
.mega-cat-label       { font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: rgba(71,92,199,0.65); margin-bottom: 0.6rem !important; }
.mega-item-card       { color: #1a1a2e; text-decoration: none; border-radius: 8px; border: 1px solid transparent; transition: background .12s, border-color .12s; display: flex; padding: 0.6rem 0.75rem !important; margin-bottom: 0.35rem !important; }
.mega-item-card:hover { background: rgba(234,239,253,0.85); border-color: rgba(66,133,244,0.22); }
.mega-item-card:hover .fw-semibold { color: oklch(0.47 0.19 255) !important; }
.mega-item-card .fw-semibold { line-height: 1.4 !important; }
.mega-item-card .text-muted   { line-height: 1.55 !important; margin-top: 2px; }
.mega-featured-card   { background: rgba(234,239,253,0.5); border: 1px solid rgba(66,133,244,0.18); }
.mega-dropdown .container-xl { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
.mega-dropdown .row.g-3 { --bs-gutter-y: 0.5rem !important; }
.mega-featured-cta    { color: oklch(0.47 0.19 255); }
.mega-featured-cta:hover { gap: 0.5rem !important; }
.mega-bottom-cta      { background: oklch(0.47 0.19 255); color: #fff; font-size: 13px; font-weight: 600; }
.mega-bottom-cta:hover { background: oklch(0.42 0.18 255); color: #fff; transform: translateY(-1px); }

/* ── Navbar ── */
#site-header          { transition: box-shadow .25s; z-index: 999; }
#site-header.scrolled { box-shadow: 0 2px 20px rgba(0,0,0,.10) !important; }
.nav-link             { font-size: 14px !important; font-weight: 500 !important; color: rgba(19,19,19,0.8) !important; padding: 7px 10px !important; transition: color .15s, background .15s; border-radius: 6px; }
.mega-chevron         { transition: transform .18s; }

/* ── Hero slider content animations ───────────────────────────────── */
@keyframes heroIn {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0);    }
}
@keyframes heroOut {
  from { opacity: 1; transform: translateY(0);     }
  to   { opacity: 0; transform: translateY(-14px); }
}

.hero-content-box .hero-anim { opacity: 0; }

.hero-content-box.animating-out  .hero-anim { animation: heroOut 0.3s ease-in  both; }
.hero-content-box.animating-in   .hero-anim { animation: heroIn  0.5s ease-out both; }

.hero-content-box.animating-in  .hero-anim:nth-child(1) { animation-delay: 0.00s; }
.hero-content-box.animating-in  .hero-anim:nth-child(2) { animation-delay: 0.08s; }
.hero-content-box.animating-in  .hero-anim:nth-child(3) { animation-delay: 0.16s; }
.hero-content-box.animating-in  .hero-anim:nth-child(4) { animation-delay: 0.24s; }
.hero-content-box.animating-in  .hero-anim:nth-child(5) { animation-delay: 0.32s; }

.hero-content-box.animating-out .hero-anim:nth-child(1) { animation-delay: 0.00s; }
.hero-content-box.animating-out .hero-anim:nth-child(2) { animation-delay: 0.04s; }
.hero-content-box.animating-out .hero-anim:nth-child(3) { animation-delay: 0.06s; }
.hero-content-box.animating-out .hero-anim:nth-child(4) { animation-delay: 0.08s; }
.hero-content-box.animating-out .hero-anim:nth-child(5) { animation-delay: 0.10s; }

/* Initial load state — visible */
.hero-content-box.ready .hero-anim { opacity: 1; }

/* ── Float sidebar button ──────────────────────────────────────────── */
#float-sidebar {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%) translateX(100%);
  z-index: 1050;
  display: flex;
  flex-direction: column;
  gap: 0;
  transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1),
              opacity  0.3s ease;
  opacity: 0;
  pointer-events: none;
}
#float-sidebar.visible {
  transform: translateY(-50%) translateX(0);
  opacity: 1;
  pointer-events: auto;
}
.float-btn {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  transform: rotate(180deg);
  padding: 18px 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  transition: padding 0.2s ease, filter 0.2s ease;
  line-height: 1;
}
.float-btn:hover { filter: brightness(1.12); padding: 18px 13px; }
.float-btn-contact { background: oklch(0.47 0.19 255); border-radius: 0 0 10px 10px; }
.float-btn-quote   { background: oklch(0.38 0.14 255); border-radius: 10px 10px 0 0; }
.float-btn-contact::before { content: '✉ '; font-size: 11px; }
.float-btn-quote::before   { content: '★ '; font-size: 11px; }

/* ── Contact modal ─────────────────────────────────────────────────── */
#contact-modal-overlay {
  position: fixed; inset: 0;
  background: rgba(10, 15, 40, 0.65);
  backdrop-filter: blur(6px);
  z-index: 2000;
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
  opacity: 0; pointer-events: none;
  transition: opacity 0.25s ease;
}
#contact-modal-overlay.open {
  opacity: 1; pointer-events: auto;
}
#contact-modal {
  background: #fff;
  border-radius: 20px;
  width: 100%;
  max-width: 560px;
  max-height: 92vh;
  overflow-y: auto;
  box-shadow: 0 24px 80px rgba(66,133,244,0.22), 0 4px 20px rgba(0,0,0,0.12);
  transform: translateY(30px) scale(0.97);
  transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1);
  position: relative;
}
#contact-modal-overlay.open #contact-modal {
  transform: translateY(0) scale(1);
}
.cm-header {
  background: linear-gradient(135deg, oklch(0.47 0.19 255) 0%, oklch(0.38 0.14 255) 100%);
  padding: 28px 32px 24px;
  border-radius: 20px 20px 0 0;
  color: #fff;
  position: relative;
}
.cm-close {
  position: absolute; top: 14px; right: 14px;
  width: 32px; height: 32px; border-radius: 50%;
  border: none; background: rgba(255,255,255,0.2);
  color: #fff; font-size: 16px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.15s;
}
.cm-close:hover { background: rgba(255,255,255,0.35); }
.cm-body { padding: 28px 32px 32px; }
.cm-field {
  margin-bottom: 16px;
}
.cm-field label {
  display: block; font-size: 12px; font-weight: 600;
  color: rgba(19,19,19,0.6); text-transform: uppercase;
  letter-spacing: 0.07em; margin-bottom: 6px;
}
.cm-field input,
.cm-field select,
.cm-field textarea {
  width: 100%;
  padding: 8px 10px;
  border: 1.5px solid rgba(66,133,244,0.2);
  border-radius: 10px;
  font-size: 14px;
  color: #1a1a2e;
  background: #f8f9ff;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
  font-family: inherit;
}
.cm-field input:focus,
.cm-field select:focus,
.cm-field textarea:focus {
  border-color: oklch(0.47 0.19 255);
  box-shadow: 0 0 0 3px oklch(0.47 0.19 255 / 0.12);
  background: #fff;
}
.cm-field textarea { resize: vertical; min-height: 90px; }
.cm-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cm-submit {
  width: 100%; padding: 13px;
  background: oklch(0.47 0.19 255);
  color: #fff; border: none; border-radius: 12px;
  font-size: 15px; font-weight: 700;
  cursor: pointer; margin-top: 8px;
  transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
  box-shadow: 0 4px 20px oklch(0.47 0.19 255 / 0.4);
}
.cm-submit:hover {
  background: oklch(0.42 0.18 255);
  transform: translateY(-1px);
  box-shadow: 0 6px 28px oklch(0.47 0.19 255 / 0.5);
}
.cm-submit:active { transform: translateY(0); }
.cm-success {
  text-align: center; padding: 32px 20px;
  display: none;
}
.cm-success svg { margin: 0 auto 12px; display: block; }


/* ════════════════════════════════════════════
   OUR WORK — Portfolio Section
════════════════════════════════════════════ */
.ow-card {
  border-radius: 16px;
  overflow: hidden;
  border: 1.5px solid rgba(66,133,244,0.1);
  background: #fff;
  box-shadow: 0 2px 12px rgba(66,133,244,0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s;
  display: flex;
  flex-direction: column;
}
.ow-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 40px rgba(66,133,244,0.14);
  border-color: rgba(66,133,244,0.3);
}

/* Browser mockup */
.ow-browser {
  background: #f1f5f9;
  border-bottom: 1px solid rgba(0,0,0,0.06);
  overflow: hidden;
}
.ow-browser-bar {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 8px 12px;
  background: #e8edf4;
}
.ow-dot {
  width: 9px; height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}
.ow-browser-url {
  flex: 1;
  margin-left: 8px;
  font-size: 10px;
  color: #64748b;
  background: rgba(255,255,255,0.8);
  border-radius: 4px;
  padding: 2px 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-family: monospace;
}
.ow-screen {
  height: 160px;
  overflow: hidden;
}

/* Card info */
.ow-info { padding: 18px; flex: 1; display: flex; flex-direction: column; }
.ow-tags { display: flex; gap: 6px; margin-bottom: 10px; }
.ow-tag {
  font-size: 10px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  padding: 2px 8px; border-radius: 20px;
  background: oklch(0.93 0.04 255); color: oklch(0.47 0.19 255);
  border: 1px solid oklch(0.47 0.19 255 / 0.2);
}
.ow-title { font-size: 15px; font-weight: 700; color: #1a1a2e; margin-bottom: 6px; line-height: 1.4; }
.ow-client {
  display: flex; align-items: center; gap: 5px;
  font-size: 12px; color: #64748b; margin-bottom: 14px;
}
.ow-footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; }
.ow-stats { display: flex; gap: 14px; }
.ow-stat { display: flex; flex-direction: column; }
.ow-stat-val { font-size: 15px; font-weight: 800; color: oklch(0.47 0.19 255); line-height: 1.2; }
.ow-stat span:last-child { font-size: 10px; color: #94a3b8; font-weight: 500; }
.ow-case-btn {
  font-size: 12px; font-weight: 700; color: oklch(0.47 0.19 255);
  text-decoration: none; border: 1.5px solid oklch(0.47 0.19 255 / 0.35);
  padding: 5px 12px; border-radius: 20px;
  transition: background 0.15s, color 0.15s;
}
.ow-case-btn:hover { background: oklch(0.47 0.19 255); color: #fff; }

/* View all button */
.ow-view-all-btn {
  border: 2px solid oklch(0.47 0.19 255);
  color: oklch(0.47 0.19 255);
  background: transparent;
  text-decoration: none;
  transition: background 0.2s, color 0.2s, transform 0.15s;
}
.ow-view-all-btn:hover {
  background: oklch(0.47 0.19 255); color: #fff;
  transform: translateY(-1px);
}

/* CTA card (last item) */
.ow-cta-card {
  border-radius: 16px;
  background: linear-gradient(135deg, oklch(0.47 0.19 255) 0%, oklch(0.38 0.14 255) 100%);
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 320px;
}
.ow-cta-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Ccircle fill='rgba(255,255,255,0.04)' cx='30' cy='30' r='20'/%3E%3Ccircle fill='rgba(255,255,255,0.03)' cx='30' cy='30' r='10'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 60px;
}
.ow-cta-inner { position: relative; padding: 32px 28px; text-align: center; }
.ow-cta-icon {
  width: 56px; height: 56px;
  background: rgba(255,255,255,0.15); border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; margin: 0 auto 16px;
}
.ow-cta-link {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 700;
  color: rgba(255,255,255,0.9);
  text-decoration: none;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.3);
  padding: 8px 18px; border-radius: 20px;
  transition: background 0.15s;
  margin-bottom: 10px;
}
.ow-cta-link:hover { background: rgba(255,255,255,0.25); color: #fff; }
.ow-cta-start {
  display: block;
  font-size: 12px; font-weight: 600;
  color: rgba(255,255,255,0.6);
  text-decoration: none;
  margin-top: 8px;
  transition: color 0.15s;
  cursor: pointer;
}
.ow-cta-start:hover { color: rgba(255,255,255,0.9); }

/* ════════════════════════════════════════════
   INDUSTRIES WE SERVE Section
════════════════════════════════════════════ */
.ind-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border: 1.5px solid rgba(66,133,244,0.12);
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 4px 24px rgba(66,133,244,0.07);
}
@media (max-width: 1023px) { .ind-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 639px)  { .ind-grid { grid-template-columns: repeat(2, 1fr); } }

.ind-cell {
  padding: 36px 20px 30px;
  text-align: center;
  border-right: 1.5px solid rgba(66,133,244,0.1);
  border-bottom: 1.5px solid rgba(66,133,244,0.1);
  display: flex; flex-direction: column; align-items: center;
  transition: background 0.2s ease;
  cursor: default;
}
.ind-cell:hover { background: oklch(0.97 0.02 255); }
/* Remove right border on last in each row */
.ind-cell:nth-child(5n) { border-right: none; }
@media (max-width: 1023px) { .ind-cell:nth-child(5n) { border-right: 1.5px solid rgba(66,133,244,0.1); } .ind-cell:nth-child(3n) { border-right: none; } }
@media (max-width: 639px)  { .ind-cell:nth-child(3n) { border-right: 1.5px solid rgba(66,133,244,0.1); } .ind-cell:nth-child(2n) { border-right: none; } }

.ind-icon-wrap {
  width: 72px; height: 72px;
  border-radius: 16px;
  background: oklch(0.95 0.03 255);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 16px;
  transition: background 0.2s, transform 0.2s;
  flex-shrink: 0;
}
.ind-cell:hover .ind-icon-wrap {
  background: oklch(0.47 0.19 255);
  transform: scale(1.08) translateY(-2px);
}
.ind-svg {
  width: 36px; height: 36px;
  color: oklch(0.47 0.19 255);
  transition: color 0.2s, stroke 0.2s;
}
.ind-cell:hover .ind-svg { color: #fff; }
.ind-label {
  font-size: 13px; font-weight: 700; color: #1a1a2e;
  margin-bottom: 5px; line-height: 1.3;
}
.ind-desc { font-size: 11px; color: #94a3b8; line-height: 1.5; flex: 1; }

/* CTA last cell */
.ind-cell-cta { background: oklch(0.97 0.02 255); }
.ind-cell-cta .ind-icon-wrap { background: oklch(0.47 0.19 255 / 0.1); }
.ind-cell-cta:hover .ind-icon-wrap { background: oklch(0.47 0.19 255); }
.ind-cta-link {
  display: inline-flex; align-items: center;
  margin-top: 10px;
  font-size: 12px; font-weight: 700;
  color: oklch(0.47 0.19 255);
  text-decoration: none;
  border: 1.5px solid oklch(0.47 0.19 255 / 0.3);
  padding: 5px 14px; border-radius: 20px;
  transition: background 0.15s, color 0.15s;
}
.ind-cta-link:hover { background: oklch(0.47 0.19 255); color: #fff; }

 /* ===== HERO SLIDER ===== */
    #heroCarousel {
      /* margin-top: 66px; */
    }

    .hero-slide {
      min-height: 90vh;
      display: flex;
      align-items: center;
      position: relative;
      overflow: hidden;
    }

    .hero-slide-1 {
      background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 40%, #bfdbfe 100%);
    }

    .hero-slide-2 {
      background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 40%, #bbf7d0 100%);
    }

    .hero-slide-3 {
      background: linear-gradient(135deg, #faf5ff 0%, #ede9fe 40%, #ddd6fe 100%);
    }

    .hero-slide::before {
      content: '';
      position: absolute;
      top: -100px;
      right: -100px;
      width: 500px;
      height: 500px;
      border-radius: 50%;
      background: rgba(30,64,175,0.06);
      pointer-events: none;
    }

    .hero-slide::after {
      content: '';
      position: absolute;
      bottom: -80px;
      left: -80px;
      width: 350px;
      height: 350px;
      border-radius: 50%;
      background: rgba(37,99,235,0.05);
      pointer-events: none;
    }

    .hero-badge {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      background: rgba(30,64,175,0.08);
      border: 1px solid rgba(30,64,175,0.2);
      border-radius: 50px;
      padding: 6px 14px;
      font-size: 0.75rem;
      font-weight: 700;
      color: var(--primary);
      margin-bottom: 1.25rem;
    }

    .hero-headline {
      font-weight: 800;
      font-size: clamp(2rem, 5vw, 3.5rem);
      line-height: 1.15;
      color: var(--text-dark);
      margin-bottom: 1.25rem;
    }

    .hero-headline .highlight {
      color: var(--primary);
    }

    .hero-sub {
      font-size: 1.05rem;
      color: var(--text-muted);
      line-height: 1.7;
      margin-bottom: 2rem;
    }

    .btn-primary-custom {
      background: var(--primary);
      color: #fff;
      border: none;
      border-radius: 12px;
      font-weight: 700;
      font-size: 0.95rem;
      padding: 0.75rem 1.75rem;
      transition: all 0.2s;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      cursor: pointer;
    }

    .btn-primary-custom:hover {
      background: var(--primary-hover);
      color: #fff;
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(30,64,175,0.25);
    }

    .btn-outline-custom {
      background: transparent;
      color: var(--primary);
      border: 2px solid var(--primary);
      border-radius: 12px;
      font-weight: 700;
      font-size: 0.95rem;
      padding: 0.7rem 1.6rem;
      transition: all 0.2s;
      cursor: pointer;
    }

    .btn-outline-custom:hover {
      background: var(--primary-light);
      color: var(--primary);
    }

    .hero-checklist {
      list-style: none;
      padding: 0;
      margin: 0 0 2rem 0;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0.5rem;
    }

    .hero-checklist li {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 0.875rem;
      color: var(--text-muted);
      font-weight: 500;
    }

    .hero-checklist li i {
      color: var(--primary);
      font-size: 0.9rem;
    }

    .hero-trust {
      display: flex;
      flex-wrap: wrap;
      gap: 1.25rem;
      margin-top: 1.5rem;
    }

    .hero-trust-item {
      display: flex;
      align-items: center;
      gap: 6px;
      font-size: 0.8rem;
      color: var(--text-muted);
      font-weight: 500;
    }

    .hero-trust-item i {
      color: var(--primary);
    }

    .hero-visual-box {
      background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
      border-radius: 24px;
      padding: 2.5rem;
      color: #fff;
      position: relative;
      overflow: hidden;
      min-height: 380px;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }

    .hero-visual-box::before {
      content: '';
      position: absolute;
      top: -60px;
      right: -60px;
      width: 200px;
      height: 200px;
      border-radius: 50%;
      background: rgba(255,255,255,0.08);
    }

    .hero-visual-box::after {
      content: '';
      position: absolute;
      bottom: -40px;
      left: -40px;
      width: 150px;
      height: 150px;
      border-radius: 50%;
      background: rgba(255,255,255,0.05);
    }

    .hero-visual-icon {
      font-size: 4rem;
      margin-bottom: 1rem;
      opacity: 0.9;
    }

    .hero-visual-title {
      font-size: 1.5rem;
      font-weight: 800;
      margin-bottom: 0.5rem;
    }

    .hero-visual-desc {
      font-size: 0.9rem;
      opacity: 0.8;
      line-height: 1.6;
    }

    .hero-stat-pill {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(255,255,255,0.15);
      border: 1px solid rgba(255,255,255,0.25);
      border-radius: 50px;
      padding: 6px 14px;
      font-size: 0.8rem;
      font-weight: 600;
      margin-top: 1.5rem;
      margin-right: 0.5rem;
    }

    .carousel-control-prev, .carousel-control-next {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      width: 48px;
      height: 48px;
      background: #1e40af;
      border-radius: 50%;
      opacity: 1;
      z-index: 10;
      display: flex;
      align-items: center;
      justify-content: center;
      border: none;
      box-shadow: 0 4px 16px rgba(30,64,175,0.3);
      transition: background 0.2s, transform 0.2s;
    }

    .carousel-control-prev:hover, .carousel-control-next:hover {
      background: #1d3a9e;
      transform: translateY(-50%) scale(1.08);
    }

    .carousel-control-prev { left: 20px; }
    .carousel-control-next { right: 20px; }

    .carousel-control-prev-icon, .carousel-control-next-icon {
      width: 20px;
      height: 20px;
      filter: brightness(0) invert(1);
    }

    .carousel-indicators [data-bs-target] {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: rgba(30,64,175,0.3);
      border: none;
    }

    .carousel-indicators .active {
      background: var(--primary);
      width: 28px;
      border-radius: 5px;
    }
 

/* ==========================================================================
   RESPONSIVE FIXES — All Breakpoints
   Mobile-first corrections for AdvertSneak Technologies
   ========================================================================== */

/* Global — prevent horizontal overflow */
html, body { overflow-x: hidden; }
* { box-sizing: border-box; }

/* ── Navbar ──────────────────────────────────────────────────────────────── */
.header-logo { max-width: 160px !important; width: auto !important; }

@media (max-width: 991px) {
  /* Collapse menu: proper stacking with padding */
  .navbar-collapse {
    background: #fff;
    border-top: 1px solid rgba(0,0,0,0.06);
    padding: 12px 0 16px;
    max-height: calc(100vh - 65px);
    overflow-y: auto;
  }
  .navbar-nav { padding: 0 8px; }
  .nav-link { padding: 10px 14px !important; border-radius: 8px; }

  /* Mega menu mobile — show stacked under nav item */
  .mega-dropdown { padding: 0 8px 8px; }
  .mega-dropdown .col-9 { padding: 0; }
  .mega-bottom-cta { margin: 8px 0 0; }
}

/* ── Hero Carousel (Bootstrap) ───────────────────────────────────────────── */
@media (max-width: 767px) {
  .hero-slide {
    min-height: auto;
    /*padding-top: 80px;*/
    padding-bottom: 40px;
    align-items: flex-start;
  }
  .hero-headline {
    font-size: clamp(1.6rem, 6vw, 2.2rem);
    margin-bottom: 1rem;
  }
  .hero-sub {
    font-size: 0.95rem;
    margin-bottom: 1.25rem;
  }
  .hero-checklist {
    grid-template-columns: 1fr;
    margin-bottom: 1.5rem;
  }
  .hero-visual-box {
    min-height: 220px;
    padding: 1.5rem;
    margin-top: 1.5rem;
    border-radius: 16px;
  }
  .hero-stat-pill {
    font-size: 0.72rem;
    padding: 4px 10px;
    margin-top: 0.75rem;
  }
  .hero-trust { gap: 0.75rem; margin-top: 1rem; }
  .hero-trust-item { font-size: 0.72rem; }
  .btn-primary-custom, .btn-outline-custom {
    font-size: 0.85rem;
    padding: 0.65rem 1.25rem;
    width: 100%;
    justify-content: center;
  }
  .d-flex.flex-wrap.gap-3 { flex-direction: column; }
  .carousel-control-prev, .carousel-control-next { width: 36px; }
  .carousel-indicators { bottom: 8px; }
}

/* ── Stats bar ───────────────────────────────────────────────────────────── */
@media (max-width: 575px) {
  /* 2 cols on xs: keep divide only on right, not bottom for middle rows */
  .grid.grid-cols-2.sm\:grid-cols-4 > * { padding: 16px 12px; }
}

/* ── Our Services & What We Offer (Bootstrap rows) ────────────────────────── */
@media (max-width: 575px) {
  #ourServices, #whatWeOffer {
    padding: 3rem 0;
  }
  /* Force single column on XS */
  #ourServices .col-md-6,
  #whatWeOffer .col-md-6 {
    width: 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
  .service-card, .offer-card { padding: 1.25rem; }
}

/* ── Solutions section internal 2-col feature grids ─────────────────────── */
@media (max-width: 575px) {
  /* The 2-col pill/tag grids inside each solution card */
  .grid.grid-cols-2.gap-1\.5 {
    grid-template-columns: 1fr;
  }
}

/* ── Process / Testimonials / Pricing (lg:grid-cols-3) ─────────────────── */
/* Already fixed to sm:grid-cols-2 lg:grid-cols-3 in HTML.
   Additional mobile tweaks: */
@media (max-width: 575px) {
  /* Force single column on XS phones */
  .grid.sm\:grid-cols-2.lg\:grid-cols-3 {
    grid-template-columns: 1fr !important;
  }
  /* Process cards */
  .rounded-3xl.p-8 { padding: 1.5rem; }
  .rounded-3xl.p-8 .w-14.h-14 { width: 48px; height: 48px; }
  /* Pricing cards */
  .grid.sm\:grid-cols-2.lg\:grid-cols-3.items-start {
    grid-template-columns: 1fr !important;
  }
}

/* ── OurWork portfolio section ───────────────────────────────────────────── */
@media (max-width: 575px) {
  .ow-screen { height: 120px; }
  .ow-browser-url { font-size: 9px; }
  .ow-stats { gap: 10px; }
  .ow-stat-val { font-size: 13px; }
  .ow-cta-card { min-height: 240px; }
  .ow-view-all-btn { font-size: 12px; padding: 8px 14px; }
  /* Header flex → stack on xs */
  #ourWork .flex.flex-col.lg\:flex-row { flex-direction: column; }
}
@media (max-width: 767px) {
  .ow-info { padding: 14px; }
  .ow-title { font-size: 14px; }
}

/* ── Industries We Serve ─────────────────────────────────────────────────── */
@media (max-width: 575px) {
  .ind-cell { padding: 24px 12px 20px; }
  .ind-icon-wrap { width: 56px; height: 56px; }
  .ind-svg { width: 28px; height: 28px; }
  .ind-label { font-size: 12px; }
  .ind-desc { font-size: 10px; }
}

/* ── Clients ticker ──────────────────────────────────────────────────────── */
@media (max-width: 575px) {
  .animate-clients-ticker .flex-shrink-0 { padding: 8px 12px; margin: 0 6px; }
  .animate-clients-ticker .w-9 { width: 28px; height: 28px; }
}

/* ── Float sidebar ───────────────────────────────────────────────────────── */
@media (max-width: 575px) {
  .float-btn {
    font-size: 10px;
    padding: 14px 8px;
  }
  .float-btn-contact::before,
  .float-btn-quote::before { font-size: 9px; }
}

/* ── Contact modal ───────────────────────────────────────────────────────── */
@media (max-width: 575px) {
  #contact-modal-overlay { padding: 8px; align-items: flex-end; }
  #contact-modal { border-radius: 16px 16px 0 0; max-height: 95vh; }
  .cm-header { padding: 20px 20px 16px; }
  .cm-body { padding: 20px 20px 24px; }
  .cm-row { grid-template-columns: 1fr; }
  .cm-field input, .cm-field select, .cm-field textarea { font-size: 16px; /* prevent iOS zoom */ }
}

/* ── Section typography scaling ─────────────────────────────────────────── */
@media (max-width: 575px) {
  .font-display.font-bold.text-3xl,
  .font-display.font-extrabold.text-3xl { font-size: 1.6rem; }
  .text-lg.text-muted-foreground { font-size: 0.95rem; }
  section.py-20 { padding-top: 3rem; padding-bottom: 3rem; }
  section.py-14 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
  .mb-14 { margin-bottom: 2rem; }
  .mb-16 { margin-bottom: 2.5rem; }
  .gap-8 { gap: 1.25rem; }
}

/* ── Footer ──────────────────────────────────────────────────────────────── */
@media (max-width: 575px) {
  #footer { padding: 2.5rem 0 1.5rem; }
  .footer-brand { width: 160px !important; }
  /* Newsletter input + button: stack on xs */
  #footer .d-flex:has(.footer-newsletter-input) {
    flex-direction: column;
    gap: 8px;
  }
  .footer-newsletter-input {
    border-radius: 10px;
    width: 100%;
  }
  .footer-newsletter-btn {
    border-radius: 10px;
    width: 100%;
    padding: 0.65rem;
  }
  .footer-copyright { font-size: 0.72rem; }
  /* Bottom bar stack */
  #footer .d-flex.flex-wrap.justify-content-between { flex-direction: column; gap: 8px; }
}

/* ── General utility: don't let anything break layout ───────────────────── */
img, svg, video, canvas { max-width: 100%; }
table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
pre, code { white-space: pre-wrap; word-break: break-word; }

/* ── Headings: fluid sizing via clamp everywhere ─────────────────────────── */
@media (max-width: 767px) {
  h1 { font-size: clamp(1.6rem, 5vw, 2.4rem) !important; }
  h2 { font-size: clamp(1.4rem, 4.5vw, 2rem) !important; }
  h3 { font-size: clamp(1.1rem, 4vw, 1.5rem) !important; }
}

/* ── Padding-top offset for fixed navbar ─────────────────────────────────── */
main, body > *:not(nav):not(script):not(style):first-child { scroll-padding-top: 65px; }

/* ── Tablet (md) tweaks ──────────────────────────────────────────────────── */
@media (min-width: 576px) and (max-width: 767px) {
  .hero-visual-box { min-height: 280px; }
  .hero-slide { padding-top: 90px; padding-bottom: 50px; }
  .ow-screen { height: 140px; }
}

/* ── sm:grid-cols-2 pricing: center lone card on row 2 ──────────────────── */
@media (min-width: 576px) and (max-width: 1023px) {
  /* 3-item sm:grid-cols-2 grid: last item spans both cols if it's the only one on its row */
  .sm\:grid-cols-2.lg\:grid-cols-3 > *:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    max-width: 50%;
    margin: 0 auto;
    width: 100%;
  }
}


/* ═══════════════════════════════════════════════════════
   TESTIMONIAL SLIDER  — bulletproof single-card slider
═══════════════════════════════════════════════════════ */

/* Outer container clips the sliding track */
.ts-slider-wrap {
  position: relative;
  -webkit-user-select: none;
  user-select: none;
}

/* Clip window — overflow:hidden lives HERE, not on the track */
.ts-viewport {
  overflow: hidden;
  border-radius: 24px;
}

/* Moving track — full flex row, NO overflow on this element */
.ts-track {
  display: flex;
  will-change: transform;
  /* transition set by JS so we can disable it during drag */
}

/* Each slide is exactly one viewport-width */
.ts-slide {
  flex: 0 0 100%;
  box-sizing: border-box;
  padding: 10px;
}

/* ── Card ────────────────────────────────────────────────────── */
.ts-card {
  background: #fff;
  border: 1.5px solid oklch(0.47 0.19 255 / 0.12);
  border-radius: 24px;
  padding: 40px 48px;
  box-shadow: 0 4px 32px oklch(0.47 0.19 255 / 0.07);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.ts-card::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, oklch(0.47 0.19 255), oklch(0.6 0.18 255));
  border-radius: 24px 24px 0 0;
}

.ts-card-featured {
  background: linear-gradient(135deg, oklch(0.47 0.19 255) 0%, oklch(0.38 0.14 255) 100%);
  border-color: transparent;
  box-shadow: 0 12px 56px oklch(0.47 0.19 255 / 0.38);
}
.ts-card-featured::after { display: none; }

/* Top row: quote icon + stars */
.ts-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 22px;
}
.ts-quote-icon {
  width: 40px; height: 40px;
  flex-shrink: 0;
  color: oklch(0.47 0.19 255 / 0.18);
}
.ts-card-featured .ts-quote-icon { color: rgba(255,255,255,0.25); }

.ts-stars { display: flex; gap: 3px; }
.ts-stars svg { color: #fbbf24; fill: #fbbf24; }

/* Quote text */
.ts-text {
  font-size: 1.05rem;
  line-height: 1.78;
  color: rgba(19,19,19,0.75);
  margin: 0 0 28px;
  font-style: italic;
  border: none;
  padding: 0;
}
.ts-card-featured .ts-text { color: rgba(255,255,255,0.9); }

/* Author row */
.ts-author {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 20px;
  border-top: 1px solid rgba(0,0,0,0.06);
}
.ts-card-featured .ts-author { border-top-color: rgba(255,255,255,0.15); }

.ts-avatar {
  width: 48px; height: 48px;
  border-radius: 50%;
  flex-shrink: 0;
  font-weight: 800;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.02em;
}
.ts-name {
  font-weight: 700;
  font-size: 0.92rem;
  color: #1a1a2e;
  line-height: 1.3;
}
.ts-card-featured .ts-name { color: #fff; }
.ts-role {
  font-size: 0.78rem;
  color: rgba(19,19,19,0.48);
  margin-top: 2px;
}
.ts-card-featured .ts-role { color: rgba(255,255,255,0.6); }

/* ── Controls row ────────────────────────────────────────────── */
.ts-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 28px;
}

.ts-btn {
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1.5px solid oklch(0.47 0.19 255 / 0.2);
  background: #fff;
  color: oklch(0.47 0.19 255);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.18s, border-color 0.18s, color 0.18s, transform 0.15s;
  box-shadow: 0 2px 10px rgba(66,133,244,0.1);
}
.ts-btn:hover {
  background: oklch(0.47 0.19 255);
  border-color: oklch(0.47 0.19 255);
  color: #fff;
  transform: scale(1.08);
}
.ts-btn:active { transform: scale(0.94); }

/* Dots */
.ts-dots { display: flex; gap: 8px; align-items: center; }
.ts-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: oklch(0.47 0.19 255 / 0.2);
  cursor: pointer;
  border: none;
  padding: 0;
  flex-shrink: 0;
  transition: background 0.25s, width 0.3s cubic-bezier(0.34,1.56,0.64,1), border-radius 0.3s;
}
.ts-dot.ts-dot-active {
  width: 28px;
  border-radius: 4px;
  background: oklch(0.47 0.19 255);
}

/* Progress bar */
.ts-progress-wrap {
  height: 3px;
  background: oklch(0.47 0.19 255 / 0.1);
  border-radius: 2px;
  margin-top: 20px;
  overflow: hidden;
}
.ts-progress {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, oklch(0.47 0.19 255), oklch(0.6 0.18 255));
  border-radius: 2px;
  transition: width 0.12s linear;
}

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 767px) {
  .ts-card { padding: 30px 28px; }
  .ts-text  { font-size: 0.97rem; line-height: 1.72; }
}
@media (max-width: 575px) {
  .ts-card  { padding: 24px 20px; border-radius: 18px; }
  .ts-text  { font-size: 0.9rem; margin-bottom: 20px; }
  .ts-top   { margin-bottom: 16px; }
  .ts-quote-icon { width: 30px; height: 30px; }
  .ts-author { gap: 10px; padding-top: 14px; }
  .ts-avatar { width: 40px; height: 40px; font-size: 12px; }
  .ts-controls { gap: 10px; margin-top: 20px; }
  .ts-btn   { width: 38px; height: 38px; }
  .ts-dot   { width: 7px; height: 7px; }
  .ts-dot.ts-dot-active { width: 22px; }
}
@media (max-width: 380px) {
  .ts-card { padding: 20px 16px; }
  .ts-text  { font-size: 0.85rem; }
}



/* ===== OUR SERVICES ===== */
    #ourServices {
      background: #fff;
      padding: 5rem 0;
    }

    .service-card {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 16px;
      padding: 1.75rem;
      height: 100%;
      transition: all 0.25s;
    }

    .service-card:hover {
      border-color: var(--primary);
      box-shadow: 0 8px 32px rgba(30,64,175,0.10);
      transform: translateY(-4px);
    }

    .service-icon {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      background: var(--accent-light);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--primary);
      font-size: 1.4rem;
      margin-bottom: 1rem;
      transition: all 0.2s;
    }

    .service-card:hover .service-icon {
      background: var(--primary);
      color: #fff;
    }

    .service-title {
      font-weight: 700;
      font-size: 1rem;
      color: var(--text-dark);
      margin-bottom: 0.5rem;
    }

    .service-desc {
      font-size: 0.83rem;
      color: var(--text-muted);
      line-height: 1.6;
      margin-bottom: 1rem;
    }

    .service-link {
      font-size: 0.82rem;
      font-weight: 700;
      color: var(--primary);
      display: inline-flex;
      align-items: center;
      gap: 4px;
      transition: gap 0.2s;
    }

    .service-link:hover {
      color: var(--primary-hover);
      gap: 8px;
    }
	
/* ===== WHAT WE OFFER ===== */
    #whatWeOffer {
      background: #f8faff;
      padding: 5rem 0;
    }

    .offer-card {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 16px;
      padding: 1.75rem;
      height: 100%;
      transition: all 0.25s;
      cursor: default;
    }

    .offer-card:hover {
      border-color: var(--primary);
      box-shadow: 0 8px 32px rgba(30,64,175,0.10);
      transform: translateY(-4px);
    }

    .offer-icon {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      background: var(--accent-light);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--primary);
      font-size: 1.4rem;
      margin-bottom: 1rem;
      transition: background 0.2s;
    }

    .offer-card:hover .offer-icon {
      background: var(--primary);
      color: #fff;
    }

    .offer-title {
      font-weight: 700;
      font-size: 1rem;
      color: var(--text-dark);
      margin-bottom: 0.5rem;
    }

    .offer-desc {
      font-size: 0.85rem;
      color: var(--text-muted);
      line-height: 1.6;
      margin: 0;
    }

    /* ===== OUR SERVICES ===== */
    #ourServices {
      background: #fff;
      padding: 5rem 0;
    }

    .service-card {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 16px;
      padding: 1.75rem;
      height: 100%;
      transition: all 0.25s;
    }

    .service-card:hover {
      border-color: var(--primary);
      box-shadow: 0 8px 32px rgba(30,64,175,0.10);
      transform: translateY(-4px);
    }

    .service-icon {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      background: var(--accent-light);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--primary);
      font-size: 1.4rem;
      margin-bottom: 1rem;
      transition: all 0.2s;
    }

    .service-card:hover .service-icon {
      background: var(--primary);
      color: #fff;
    }

    .service-title {
      font-weight: 700;
      font-size: 1rem;
      color: var(--text-dark);
      margin-bottom: 0.5rem;
    }

    .service-desc {
      font-size: 0.83rem;
      color: var(--text-muted);
      line-height: 1.6;
      margin-bottom: 1rem;
    }

    .service-link {
      font-size: 0.82rem;
      font-weight: 700;
      color: var(--primary);
      display: inline-flex;
      align-items: center;
      gap: 4px;
      transition: gap 0.2s;
    }

    .service-link:hover {
      color: var(--primary-hover);
      gap: 8px;
    }

    /* ===== OUR CLIENTS ===== */
    #ourClients {
      background: #f8faff;
      padding: 4rem 0;
      overflow: hidden;
    }

    .clients-track-wrap {
      position: relative;
      overflow: hidden;
    }

    .clients-track-wrap::before,
    .clients-track-wrap::after {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      width: 120px;
      z-index: 2;
      pointer-events: none;
    }

    .clients-track-wrap::before {
      left: 0;
      background: linear-gradient(to right, #f8faff, transparent);
    }

    .clients-track-wrap::after {
      right: 0;
      background: linear-gradient(to left, #f8faff, transparent);
    }

    .clients-track {
      display: flex;
      gap: 1.5rem;
      animation: ticker 30s linear infinite;
      width: max-content;
    }

    .clients-track:hover {
      animation-play-state: paused;
    }

    @keyframes ticker {
      0% { transform: translateX(0); }
      100% { transform: translateX(-50%); }
    }

    .client-badge {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 0.75rem 1.5rem;
      font-weight: 700;
      font-size: 0.9rem;
      color: var(--text-dark);
      white-space: nowrap;
      display: flex;
      align-items: center;
      gap: 8px;
      transition: border-color 0.2s, box-shadow 0.2s;
    }

    .client-badge:hover {
      border-color: var(--primary);
      box-shadow: 0 4px 16px rgba(30,64,175,0.08);
    }

    .client-badge i {
      color: var(--primary);
      font-size: 1.1rem;
    }

    /* ===== OUR SOLUTIONS ===== */
    #ourSolutions {
      background: #fff;
      padding: 5rem 0;
    }

    .solution-card {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 20px;
      padding: 2rem;
      height: 100%;
      transition: all 0.25s;
      position: relative;
      overflow: hidden;
    }

    .solution-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 4px;
      background: linear-gradient(90deg, var(--primary), var(--accent));
      opacity: 0;
      transition: opacity 0.25s;
    }

    .solution-card:hover {
      border-color: var(--primary);
      box-shadow: 0 12px 40px rgba(30,64,175,0.12);
      transform: translateY(-6px);
    }

    .solution-card:hover::before {
      opacity: 1;
    }

    .solution-icon {
      width: 60px;
      height: 60px;
      border-radius: 16px;
      background: var(--accent-light);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--primary);
      font-size: 1.6rem;
      margin-bottom: 1.25rem;
      transition: all 0.2s;
    }

    .solution-card:hover .solution-icon {
      background: var(--primary);
      color: #fff;
    }

    .solution-title {
      font-weight: 700;
      font-size: 1.1rem;
      color: var(--text-dark);
      margin-bottom: 0.6rem;
    }

    .solution-desc {
      font-size: 0.875rem;
      color: var(--text-muted);
      line-height: 1.65;
      margin-bottom: 1.25rem;
    }

    .solution-link {
      font-size: 0.85rem;
      font-weight: 700;
      color: var(--primary);
      display: inline-flex;
      align-items: center;
      gap: 5px;
      transition: gap 0.2s;
    }

    .solution-link:hover {
      color: var(--primary-hover);
      gap: 10px;
    }
	
/* ===== TECH BANNER ===== */
    #techBanner {
      background: #000000;
      padding: 3rem 0;
      overflow: hidden;
    }

    .tech-track-wrap {
      position: relative;
      overflow: hidden;
    }

    .tech-track-wrap::before,
    .tech-track-wrap::after {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      width: 100px;
      z-index: 2;
      pointer-events: none;
    }

    .tech-track-wrap::before {
      left: 0;
      background: linear-gradient(to right, var(--navy), transparent);
    }

    .tech-track-wrap::after {
      right: 0;
      background: linear-gradient(to left, var(--navy), transparent);
    }

    .tech-track {
      display: flex;
      gap: 1.5rem;
      animation: ticker 20s linear infinite;
      width: max-content;
    }

    .tech-badge {
      background: rgba(255,255,255,0.07);
      border: 1px solid rgba(255,255,255,0.12);
      border-radius: 10px;
      padding: 0.6rem 1.25rem;
      font-weight: 700;
      font-size: 0.875rem;
      color: rgba(255,255,255,0.85);
      white-space: nowrap;
      display: flex;
      align-items: center;
      gap: 8px;
      transition: background 0.2s;
    }

    .tech-badge:hover {
      background: rgba(255,255,255,0.12);
    }

    .tech-badge i {
      color: var(--accent-light);
      font-size: 1rem;
    }


/* ===== FOOTER ===== */
    #footer {
      background: #0d6ca9;
      color: rgba(255,255,255,0.75);
      padding: 4rem 0 2rem;
    }

    .footer-brand {
      font-weight: 800;
      font-size: 1.35rem;
      color: #fff;
      margin-bottom: 0.75rem;
    }

    .footer-brand span {
      color: var(--accent-light);
    }

    .footer-desc {
      font-size: 0.875rem;
      line-height: 1.7;
      color: rgba(255,255,255);
      margin-bottom: 1.5rem;
    }

    .footer-heading {
      font-weight: 700;
      font-size: 0.875rem;
      color: #fff;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      margin-bottom: 1.25rem;
    }

    .footer-link {
      display: block;
      font-size: 0.875rem;
      color: rgba(255,255,255,0.45);
      margin-bottom: 0.6rem;
      transition: color 0.2s;
      text-decoration: auto;
    }

    .footer-link:hover {
      color: #fff;
    }

    .footer-newsletter-input {
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.15);
      border-radius: 10px 0 0 10px;
      color: #fff;
      font-size: 0.875rem;
      padding: 0.65rem 1rem;
      outline: none;
      flex: 1;
    }

    .footer-newsletter-input::placeholder {
      color: rgba(255,255,255,0.4);
    }

    .footer-newsletter-input:focus {
      border-color: var(--accent);
    }

    .footer-newsletter-btn {
      background: var(--primary);
      color: #fff;
      border: none;
      border-radius: 0 10px 10px 0;
      font-weight: 700;
      font-size: 0.875rem;
      padding: 0.65rem 1.25rem;
      cursor: pointer;
      transition: background 0.2s;
    }

    .footer-newsletter-btn:hover {
      background: var(--accent);
    }

    .footer-social-link {
      width: 38px;
      height: 38px;
      border-radius: 10px;
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.12);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: rgba(255,255,255,0.7);
      font-size: 1rem;
      transition: all 0.2s;
      margin-right: 0.5rem;
    }

    .footer-social-link:hover {
      background: var(--primary);
      border-color: var(--primary);
      color: #fff;
    }

    .footer-divider {
      border-top: 1px solid rgba(255,255,255,0.1);
      margin: 2.5rem 0 1.5rem;
    }

    .footer-copyright {
      font-size: 0.8rem;
      color: rgba(255,255,255);
    }

/* ===== MEGA MENU: MOBILE FULL-WIDTH FIX ===== */
@media (max-width: 991.98px) {

  /* Featured card (col-3) → full width on mobile */
  .mega-dropdown .row > [class*="col-3"],
  .mega-dropdown .row > [class*="col-9"] {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  /* Remove right border from featured card, add bottom separator instead */
  .mega-dropdown .border-end {
    border-right: none !important;
    padding-right: 1rem !important;
    border-bottom: 1px solid rgba(30,64,175,0.12) !important;
    padding-bottom: 1rem !important;
    margin-bottom: 0.5rem !important;
  }

  /* Featured card: icon + title on row 1, description row 2, CTA row 3 */
  .mega-dropdown .mega-featured-card {
    display: grid !important;
    grid-template-columns: 44px 1fr !important;
    grid-template-rows: auto auto auto !important;
    column-gap: 0.75rem !important;
    row-gap: 0.5rem !important;
    align-items: center !important;
    padding: 0.875rem !important;
  }

  /* Icon → row 1, col 1 */
  .mega-dropdown .mega-featured-icon {
    grid-column: 1 !important;
    grid-row: 1 !important;
    margin-bottom: 0 !important;
    flex-shrink: 0 !important;
  }

  /* Title → row 1, col 2 */
  .mega-dropdown .mega-featured-card > .fw-bold {
    grid-column: 2 !important;
    grid-row: 1 !important;
    margin-bottom: 0 !important;
    align-self: center !important;
  }

  /* Description → row 2, full width */
  .mega-dropdown .mega-featured-card > .text-muted {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    margin-bottom: 0 !important;
  }

  /* CTA button → row 3, full width */
  .mega-dropdown .mega-featured-card > .mega-featured-cta {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
  }

  /* Inner grid: 2-col layout on mobile stays fine */
  .mega-dropdown .col-9 .row > .col-6 {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
  }

  /* Scrollable mega panel on mobile */
  .mega-dropdown {
    max-height: 80vh;
    overflow-y: auto;
  }
}

/* ===== CAROUSEL ARROW FIX ===== */
#heroCarousel {
  position: relative !important;
}

#heroCarousel .carousel-control-prev,
#heroCarousel .carousel-control-next {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 48px !important;
  height: 48px !important;
  background: #1e40af !important;
  border-radius: 50% !important;
  opacity: 1 !important;
  z-index: 100 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: none !important;
  box-shadow: 0 4px 16px rgba(30,64,175,0.4) !important;
}

#heroCarousel .carousel-control-prev { left: 24px !important; }
#heroCarousel .carousel-control-next { right: 24px !important; }

#heroCarousel .carousel-control-prev:hover,
#heroCarousel .carousel-control-next:hover {
  background: #1d3a9e !important;
  transform: translateY(-50%) scale(1.08) !important;
}

#heroCarousel .carousel-control-prev-icon,
#heroCarousel .carousel-control-next-icon {
  width: 22px !important;
  height: 22px !important;
  background-size: 100% !important;
  filter: brightness(0) invert(1) !important;
  display: inline-block !important;
}