/* ==========================================================================
   Grisel Beauty Spa - Premium Unified Styling & Architecture
   ========================================================================== */

:root {
  /* HSL Color System */
  --hue-lavender: 263;
  --hue-lime: 77;
  --hue-coral: 352;
  --hue-dark: 220;

  /* Theme Colors */
  --bg-primary: hsl(var(--hue-lavender), 15%, 98%);
  --bg-secondary: hsl(0, 0%, 100%);
  --text-primary: hsl(var(--hue-dark), 26%, 15%);
  --text-muted: hsl(var(--hue-dark), 12%, 40%);
  
  --accent-lavender: hsl(var(--hue-lavender), 26%, 62%);
  --accent-lavender-hover: oklch(from var(--accent-lavender) calc(l - 0.08) c h);
  --accent-lime: hsl(var(--hue-lime), 60%, 51%);
  --accent-coral: hsl(var(--hue-coral), 76%, 56%);
  
  /* Glassmorphism & Visual Polish */
  --glass-bg: rgba(255, 255, 255, 0.7);
  --glass-border: rgba(255, 255, 255, 0.4);
  --glass-blur: blur(12px);
  
  /* Modern Shadows */
  --shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
  --shadow-md: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.04);
  --shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  
  /* Smooth Transitions */
  --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-bounce: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* Base Typographical Alignments & Secure Loading */
body {
  font-family: 'Josefin Sans', sans-serif, system-ui;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ==========================================================================
   FRONT-END SECURITY & COPY PROTECTION
   ========================================================================== */

/* Elegant copy-protection: only active when class 'protect-copy' is applied */
.protect-copy, .protect-copy * {
  -ms-user-select: none;
  -moz-user-select: none;
  -khtml-user-select: none;
  -webkit-user-select: none;
  user-select: none;
}

/* Exclusions: allow selection for inputs, links, contact addresses, and text fields inside protected areas */
.protect-copy input,
.protect-copy textarea,
.protect-copy select,
.protect-copy option,
.protect-copy a,
.protect-copy address,
.protect-copy .elementor-button,
.protect-copy .elementor-button-text,
.protect-copy .allow-select {
  -ms-user-select: auto !important;
  -moz-user-select: auto !important;
  -khtml-user-select: auto !important;
  -webkit-user-select: auto !important;
  user-select: auto !important;
}

/* Image Drag & Drop protection inside protected areas */
.protect-copy img {
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -o-user-drag: none;
  user-drag: none;
}

/* ==========================================================================
   PREMIUM POLISH & COMPONENT STYLING
   ========================================================================== */

/* Buttons & Interactive Elements Animations */
.elementor-button, .button, button, input[type="submit"] {
  transition: var(--transition-smooth);
  position: relative;
  overflow: hidden;
}

.elementor-button:hover, .button:hover, button:hover, input[type="submit"]:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
  opacity: 0.95;
}

.elementor-button:active, .button:active, button:active {
  transform: translateY(1px);
}

/* Premium Glassmorphic Navigation Menu */
#masthead {
  background: var(--glass-bg) !important;
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border-bottom: 1px solid var(--glass-border);
  box-shadow: var(--shadow-sm);
  transition: var(--transition-smooth);
}

/* Catalog Mode: Hide E-commerce & Price elements */
.price,
.woocommerce-Price-amount,
.amount,
.elementor-price-list-price,
.woocommerce-Price-currencySymbol,
#elementor-menu-cart__toggle_button,
.elementor-menu-cart__wrapper,
.single_add_to_cart_button,
.add_to_cart_button,
.cart,
.wc-block-cart__submit,
.woocommerce-mini-cart__buttons {
  display: none !important;
}

