.font-display,.font-headline{font-family:Playfair Display,serif}.font-body,body{font-family:Roboto,sans-serif}.text-2xl,.text-3xl,.text-4xl,.text-5xl,.text-6xl,.text-7xl,.text-8xl,.text-9xl,h1,h2,h3,h4,h5,h6{font-family:Playfair Display,serif}.text-base,.text-lg,.text-sm,.text-xl,.text-xs{font-family:Roboto,sans-serif}.font-display .text-lg,.font-display .text-xl,.font-headline .text-lg,.font-headline .text-xl{font-family:Playfair Display,serif}.btn,.button,.card-content,.component-text,.nav,.navigation,button,input,label,nav,select,textarea{font-family:Roboto,sans-serif}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes float-delayed{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes gradient-x{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px rgba(var(--primary),.2)}50%{box-shadow:0 0 30px rgba(var(--primary),.4)}}@keyframes spin-slow{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes gradient-sweep{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes bounce-gentle{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes slide-in-left{0%{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}@keyframes slide{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes slide-rtl{0%{transform:translateX(-50%)}to{transform:translateX(0)}}.animate-float{animation:float 6s ease-in-out infinite}.animate-float-delayed{animation:float-delayed 8s ease-in-out infinite}.animate-gradient-x{background-size:200% 200%;animation:gradient-x 3s ease infinite}.animate-pulse-glow{animation:pulse-glow 2s ease-in-out infinite}.animate-spin-slow{animation:spin-slow 3s linear infinite}.animate-gradient-sweep{animation:gradient-sweep 3s ease-in-out infinite}.animate-shimmer{animation:shimmer 2s infinite}.animate-bounce-gentle{animation:bounce-gentle 2s ease-in-out infinite}.animate-fade-in-up{animation:fade-in-up .6s ease-out forwards}.animate-scale-in{animation:scale-in .5s ease-out forwards}.animate-slide-in-left{animation:slide-in-left .6s ease-out forwards}.animate-slide-in-right{animation:slide-in-right .6s ease-out forwards}.animate-slide{animation:slide 90s linear infinite}.animate-slide-rtl{animation:slide-rtl 90s linear infinite}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(0,0,0,.1)}.salon-card-container{isolation:isolate;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d;will-change:transform;contain:layout style paint;position:relative}.salon-card-container:after,.salon-card-container:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none}.featured-salons-grid{contain:layout}.featured-salons-grid>*{contain:layout style}.glass-effect{backdrop-filter:blur(10px);background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2)}.gradient-border{position:relative;background:linear-gradient(45deg,transparent,transparent);border-radius:12px}.gradient-border:before{content:"";position:absolute;inset:0;padding:2px;background:linear-gradient(45deg,hsl(var(--primary)),hsl(var(--secondary)));border-radius:inherit;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:xor}html{scroll-behavior:smooth}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.focus-ring:focus{outline:none;box-shadow:0 0 0 2px hsl(var(--primary)),0 0 0 4px hsl(var(--background))}.shadow-3xl{box-shadow:0 35px 60px -12px rgba(0,0,0,.25)}.hover-shadow-glow:hover{box-shadow:0 0 30px rgba(var(--primary),.3)}.text-shimmer{background:linear-gradient(90deg,hsl(var(--foreground)) 0,hsl(var(--primary)) 50%,hsl(var(--foreground)) 100%);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:shimmer 3s ease-in-out infinite}.magnetic-hover{transition:transform .3s cubic-bezier(.4,0,.2,1)}.magnetic-hover:hover{transform:scale(1.05) translateY(-2px)}.custom-scrollbar::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar::-webkit-scrollbar-track{background:rgba(0,0,0,.1);border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb{background:hsl(var(--primary));border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:hsl(var(--primary)/.8)}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes marquee-reverse{0%{transform:translateX(-50%)}to{transform:translateX(0)}}.animate-marquee{animation:marquee 40s linear infinite}.animate-marquee-reverse{animation:marquee-reverse 45s linear infinite}.pause-marquee:hover{animation-play-state:paused}