/**
 * Water Magic - Enhanced UI/UX Effects
 * =====================================
 * Fluid multimedia art enhancements
 * Dramatic hovers, shimmers, glows, and transitions
 */

/* ====================
   KEYFRAME ANIMATIONS
   ==================== */

/* Shimmer effect for buttons - light sweeping across */
@keyframes shimmer {
  0% {
    background-position: -200% center;
  }
  100% {
    background-position: 200% center;
  }
}

/* Gentle pulse glow */
@keyframes pulseGlow {
  0%, 100% {
    box-shadow:
      0 8px 25px rgba(0, 212, 228, 0.3),
      0 0 40px rgba(0, 212, 228, 0.1);
  }
  50% {
    box-shadow:
      0 12px 35px rgba(0, 212, 228, 0.5),
      0 0 60px rgba(0, 212, 228, 0.25);
  }
}

/* Breathing glow for accent elements */
@keyframes breatheGlow {
  0%, 100% {
    filter: drop-shadow(0 0 8px rgba(0, 212, 228, 0.4));
  }
  50% {
    filter: drop-shadow(0 0 20px rgba(0, 212, 228, 0.7));
  }
}

/* Water ripple expansion */
@keyframes rippleExpand {
  0% {
    transform: scale(1);
    opacity: 0.6;
  }
  50% {
    transform: scale(1.05);
    opacity: 0.8;
  }
  100% {
    transform: scale(1);
    opacity: 0.6;
  }
}

/* Floating effect */
@keyframes gentleFloat {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}

/* Text glow pulse */
@keyframes textGlowPulse {
  0%, 100% {
    text-shadow:
      0 0 10px rgba(0, 212, 228, 0.5),
      0 0 20px rgba(0, 212, 228, 0.3),
      0 0 30px rgba(0, 212, 228, 0.1);
  }
  50% {
    text-shadow:
      0 0 15px rgba(0, 212, 228, 0.7),
      0 0 30px rgba(0, 212, 228, 0.5),
      0 0 45px rgba(0, 212, 228, 0.2);
  }
}

/* ====================
   CARD HOVER EFFECTS
   Dramatic lift and glow
   ==================== */

/* Base card enhancement */
.review-card,
.author-card,
.faq-item,
.testimonial-card,
.practice-box,
.book-preview-section,
.chapter-excerpt,
.product-card,
.wp-block-group.shadow-strong {
  transition:
    transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
    box-shadow 0.4s ease,
    border-color 0.3s ease !important;
}

/* Dramatic hover lift */
.review-card:hover,
.author-card:hover,
.faq-item:hover,
.testimonial-card:hover,
.practice-box:hover,
.book-preview-section:hover,
.chapter-excerpt:hover,
.product-card:hover,
.wp-block-group.shadow-strong:hover {
  transform: translateY(-12px) scale(1.02) !important;
  border-color: rgba(0, 212, 228, 0.6) !important;
}

/* Light mode card hover glow */
body:not(.dark-mode) .review-card:hover,
body:not(.dark-mode) .author-card:hover,
body:not(.dark-mode) .faq-item:hover,
body:not(.dark-mode) .testimonial-card:hover,
body:not(.dark-mode) .practice-box:hover,
body:not(.dark-mode) .book-preview-section:hover,
body:not(.dark-mode) .chapter-excerpt:hover,
body:not(.dark-mode) .product-card:hover,
body:not(.dark-mode) .wp-block-group.shadow-strong:hover {
  box-shadow:
    0 20px 50px rgba(0, 119, 190, 0.25),
    0 0 30px rgba(0, 212, 228, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
}

/* Dark mode card hover glow - electric cyan */
body.dark-mode .review-card:hover,
body.dark-mode .author-card:hover,
body.dark-mode .faq-item:hover,
body.dark-mode .testimonial-card:hover,
body.dark-mode .practice-box:hover,
body.dark-mode .book-preview-section:hover,
body.dark-mode .chapter-excerpt:hover,
body.dark-mode .product-card:hover,
body.dark-mode .wp-block-group.shadow-strong:hover {
  box-shadow:
    0 25px 60px rgba(0, 212, 228, 0.35),
    0 0 50px rgba(0, 212, 228, 0.2),
    0 0 80px rgba(79, 195, 247, 0.15),
    inset 0 1px 0 rgba(0, 212, 228, 0.3) !important;
}

/* ====================
   BUTTON SHIMMER EFFECTS
   Light sweeping across CTAs
   ==================== */

/* Primary CTA buttons get shimmer - exclude liquid-morph which has gooey filter effect */
.wp-block-button__link:not(.liquid-morph),
.kb-btn:not(.liquid-morph),
a.button:not(.liquid-morph),
.button:not(.liquid-morph),
.purchase-btn:not(.liquid-morph),
.btn-primary:not(.liquid-morph),
input[type="submit"]:not(.liquid-morph) {
  position: relative;
  overflow: hidden;
}

/* Shimmer overlay - exclude liquid-morph buttons */
.wp-block-button__link:not(.liquid-morph)::before,
.kb-btn:not(.liquid-morph)::before,
.purchase-btn:not(.liquid-morph)::before,
.btn-primary:not(.liquid-morph)::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent 0%,
    transparent 40%,
    rgba(255, 255, 255, 0.25) 50%,
    transparent 60%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: shimmer 3s ease-in-out infinite;
  pointer-events: none;
  z-index: 1;
}

/* Pause shimmer on hover, show full glow instead */
.wp-block-button__link:not(.liquid-morph):hover::before,
.kb-btn:not(.liquid-morph):hover::before,
.purchase-btn:not(.liquid-morph):hover::before,
.btn-primary:not(.liquid-morph):hover::before {
  animation: none;
  background: rgba(255, 255, 255, 0.1);
}

/* Button pulse glow on hover */
body.dark-mode .wp-block-button__link:not(.liquid-morph):hover,
body.dark-mode .kb-btn:not(.liquid-morph):hover,
body.dark-mode .purchase-btn:not(.liquid-morph):hover {
  animation: pulseGlow 1.5s ease-in-out infinite;
}

/* Featured/gold buttons extra shimmer - exclude liquid-morph */
.wp-block-button__link.has-accent-gold-background-color:not(.liquid-morph)::before,
.featured-card .wp-block-button__link:not(.liquid-morph)::before {
  background: linear-gradient(
    120deg,
    transparent 0%,
    transparent 35%,
    rgba(255, 215, 0, 0.3) 50%,
    transparent 65%,
    transparent 100%
  );
  background-size: 200% 100%;
}

/* ====================
   SECTION TRANSITIONS
   Smoother gradients between sections
   ==================== */

/* Add gradient fade overlays to sections */
.wp-block-group.alignfull,
.kb-row-layout-wrap.alignfull,
.alignfull > .wp-block-group {
  position: relative;
}

/* Top fade-in for seamless section blending */
.wp-block-group.alignfull::before,
.kb-row-layout-wrap.alignfull::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 80px;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    transparent 100%
  );
  pointer-events: none;
  z-index: 1;
}

/* Dark mode section connectors - subtle glow lines */
body.dark-mode .wp-block-group.alignfull + .wp-block-group.alignfull::before {
  background: linear-gradient(
    to bottom,
    rgba(0, 212, 228, 0.08) 0%,
    transparent 100%
  );
  height: 60px;
}

/* Light mode section connectors */
body:not(.dark-mode) .wp-block-group.alignfull + .wp-block-group.alignfull::before {
  background: linear-gradient(
    to bottom,
    rgba(0, 119, 190, 0.05) 0%,
    transparent 100%
  );
  height: 60px;
}

/* ====================
   ENHANCED CYAN GLOW (Dark Mode)
   Electric water effects
   ==================== */

/* Boost accent glow on interactive elements */
body.dark-mode a:not(.wp-block-button__link):hover {
  text-shadow: 0 0 15px rgba(0, 212, 228, 0.6) !important;
}

/* Electric border glow on focus */
body.dark-mode *:focus-visible {
  outline-color: rgba(0, 212, 228, 0.9) !important;
  box-shadow:
    0 0 0 4px rgba(0, 212, 228, 0.2),
    0 0 20px rgba(0, 212, 228, 0.3) !important;
}

/* Glowing dividers/separators */
body.dark-mode hr,
body.dark-mode .wp-block-separator {
  border-color: transparent !important;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 212, 228, 0.5) 20%,
    rgba(79, 195, 247, 0.6) 50%,
    rgba(0, 212, 228, 0.5) 80%,
    transparent 100%
  ) !important;
  height: 2px !important;
  box-shadow: 0 0 15px rgba(0, 212, 228, 0.4);
}

/* Glowing blockquotes */
body.dark-mode blockquote,
body.dark-mode .wp-block-quote {
  border-left-color: rgba(0, 212, 228, 0.6) !important;
  box-shadow:
    -4px 0 20px rgba(0, 212, 228, 0.2),
    inset 4px 0 15px rgba(0, 212, 228, 0.05) !important;
}

/* ====================
   HEADING GLOW EFFECTS
   Luminous text
   ==================== */

/* Dark mode heading glow enhancement */
body.dark-mode .entry-content h1,
body.dark-mode .entry-content h2 {
  text-shadow:
    0 0 10px rgba(0, 212, 228, 0.3),
    0 0 30px rgba(0, 212, 228, 0.15),
    0 2px 4px rgba(0, 0, 0, 0.3) !important;
}

/* Animated glow on major headings */
body.dark-mode .entry-hero-container-inner h1,
body.dark-mode .wp-block-cover h1,
body.dark-mode .wp-block-cover h2 {
  animation: textGlowPulse 4s ease-in-out infinite;
}

/* Light mode heading enhancement */
body:not(.dark-mode) .entry-content h1,
body:not(.dark-mode) .entry-content h2 {
  text-shadow:
    0 2px 4px rgba(0, 119, 190, 0.15),
    0 8px 25px rgba(0, 119, 190, 0.1) !important;
}

/* ====================
   IMAGE HOVER EFFECTS
   ==================== */

/* Book cover and key images float on hover */
.wp-block-image img,
figure img,
.book-cover-image,
.author-image {
  transition:
    transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1),
    box-shadow 0.4s ease,
    filter 0.3s ease !important;
}

.wp-block-image:hover img,
figure:hover img,
.book-cover-image:hover,
.author-image:hover {
  transform: translateY(-8px) scale(1.02) !important;
}

/* Dark mode image glow */
body.dark-mode .wp-block-image:hover img,
body.dark-mode figure:hover img {
  box-shadow:
    0 20px 50px rgba(0, 212, 228, 0.3),
    0 0 40px rgba(0, 212, 228, 0.15) !important;
  filter: brightness(1.05);
}

/* Light mode image shadow */
body:not(.dark-mode) .wp-block-image:hover img,
body:not(.dark-mode) figure:hover img {
  box-shadow:
    0 20px 50px rgba(0, 119, 190, 0.25),
    0 8px 25px rgba(0, 119, 190, 0.15) !important;
}

/* ====================
   LIST ITEM ANIMATIONS
   ==================== */

/* Staggered hover effect on lists */
.entry-content ul li,
.entry-content ol li {
  transition:
    transform 0.3s ease,
    color 0.2s ease !important;
}

.entry-content ul li:hover,
.entry-content ol li:hover {
  transform: translateX(8px);
}

body.dark-mode .entry-content ul li:hover,
body.dark-mode .entry-content ol li:hover {
  color: #E8F5FC !important;
  text-shadow: 0 0 8px rgba(0, 212, 228, 0.3);
}

/* ====================
   ICON/EMOJI ANIMATIONS
   ==================== */

/* Gentle float on emoji icons */
.entry-content p img[alt*="emoji"],
.entry-content li img[alt*="emoji"],
h2 img,
h3 img {
  display: inline-block;
  animation: gentleFloat 3s ease-in-out infinite;
}

/* Stagger animation timing for variety */
.entry-content li:nth-child(2n) img {
  animation-delay: 0.5s;
}

.entry-content li:nth-child(3n) img {
  animation-delay: 1s;
}

.entry-content li:nth-child(4n) img {
  animation-delay: 1.5s;
}

/* ====================
   MOBILE OPTIMIZATIONS
   ==================== */

@media (max-width: 768px) {
  /* Reduce animation intensity on mobile for performance */
  .wp-block-button__link:not(.liquid-morph)::before,
  .kb-btn:not(.liquid-morph)::before {
    animation-duration: 4s;
  }

  /* Smaller hover lifts on mobile */
  .review-card:hover,
  .author-card:hover,
  .testimonial-card:hover,
  .product-card:hover {
    transform: translateY(-6px) scale(1.01) !important;
  }

  /* Gentler floating emojis on mobile */
  .entry-content p img[alt*="emoji"],
  .entry-content li img[alt*="emoji"],
  h2 img,
  h3 img {
    animation-duration: 4s;
    --float-distance: -4px;
  }

  @keyframes gentleFloat {
    0%, 100% {
      transform: translateY(0);
    }
    50% {
      transform: translateY(var(--float-distance, -4px));
    }
  }

  /* Reduce glow intensity - exclude liquid-morph (has its own reduced motion) */
  body.dark-mode .wp-block-button__link:not(.liquid-morph):hover,
  body.dark-mode .kb-btn:not(.liquid-morph):hover {
    animation: none;
    box-shadow: 0 8px 25px rgba(0, 212, 228, 0.3);
  }

  /* Simpler heading glow */
  body.dark-mode .entry-hero-container-inner h1,
  body.dark-mode .wp-block-cover h1 {
    animation: none;
    text-shadow: 0 0 15px rgba(0, 212, 228, 0.4);
  }
}

/* ====================
   REDUCED MOTION SUPPORT
   ==================== */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .wp-block-button__link:not(.liquid-morph)::before,
  .kb-btn:not(.liquid-morph)::before {
    animation: none;
    background: transparent;
  }
}

/* ====================
   SPECIAL ELEMENTS
   ==================== */

/* Testimonial stars glow */
body.dark-mode .testimonial-stars,
body.dark-mode .review-stars {
  filter: drop-shadow(0 0 8px rgba(255, 215, 0, 0.5));
}

/* Navigation link hover glow */
body.dark-mode .main-navigation a:hover {
  text-shadow: 0 0 12px rgba(0, 212, 228, 0.5) !important;
}

/* Form input focus glow enhancement */
body.dark-mode input:focus,
body.dark-mode textarea:focus,
body.dark-mode select:focus {
  box-shadow:
    0 0 0 3px rgba(0, 212, 228, 0.2),
    0 0 20px rgba(0, 212, 228, 0.15),
    inset 0 0 10px rgba(0, 212, 228, 0.05) !important;
}

/* Water droplet cursor trail effect area */
.hero-section,
.entry-hero-container-inner,
.wp-block-cover {
  cursor: default;
}

/* ====================
   ENHANCED CURSOR TRAIL
   Water droplet magic
   ==================== */

/* Boost cursor trail visibility in dark mode */
body.dark-mode .cursor-trail {
  background: radial-gradient(
    circle at 30% 30%,
    rgba(0, 212, 228, 0.8),
    rgba(79, 195, 247, 0.5)
  );
  box-shadow:
    0 0 15px rgba(0, 212, 228, 0.7),
    0 0 30px rgba(0, 212, 228, 0.3),
    inset -2px -2px 4px rgba(255, 255, 255, 0.5);
}

body.dark-mode .cursor-trail.sparkle {
  background: radial-gradient(
    circle at 30% 30%,
    rgba(255, 255, 255, 1),
    rgba(0, 212, 228, 0.8)
  );
  box-shadow:
    0 0 20px rgba(0, 212, 228, 1),
    0 0 40px rgba(79, 195, 247, 0.6),
    0 0 60px rgba(0, 212, 228, 0.3);
}

/* ====================
   INTERACTIVE WATER SURFACE
   Hover ripple effects
   ==================== */

/* Create subtle ripple on card hover */
.review-card::after,
.testimonial-card::after,
.product-card::after,
.chapter-excerpt::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: radial-gradient(
    circle,
    rgba(0, 212, 228, 0.2) 0%,
    transparent 70%
  );
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.6s ease, height 0.6s ease, opacity 0.4s ease;
  opacity: 0;
  pointer-events: none;
  z-index: 0;
}

.review-card:hover::after,
.testimonial-card:hover::after,
.product-card:hover::after,
.chapter-excerpt:hover::after {
  width: 150%;
  height: 150%;
  opacity: 1;
}

/* ====================
   GLOWING BORDER ANIMATIONS
   Electric water edges
   ==================== */

/* Animated border glow on featured elements */
@keyframes borderGlow {
  0%, 100% {
    border-color: rgba(0, 212, 228, 0.4);
    box-shadow: 0 0 20px rgba(0, 212, 228, 0.2);
  }
  50% {
    border-color: rgba(79, 195, 247, 0.6);
    box-shadow: 0 0 35px rgba(0, 212, 228, 0.4);
  }
}

body.dark-mode .featured-card,
body.dark-mode .wp-block-group.shadow-strong.featured-card {
  animation: borderGlow 3s ease-in-out infinite;
}

/* ====================
   WATER SURFACE REFLECTION
   Subtle shimmer on surfaces
   ==================== */

/* Surface reflection effect */
@keyframes surfaceShimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

body.dark-mode .entry-hero-container-inner::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.03) 25%,
    rgba(255, 255, 255, 0.08) 50%,
    rgba(255, 255, 255, 0.03) 75%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: surfaceShimmer 8s linear infinite;
  pointer-events: none;
  z-index: 1;
  border-radius: inherit;
}

/* ====================
   LINK HOVER WAVES
   Ripple under links
   ==================== */

body.dark-mode .entry-content a:not(.wp-block-button__link):not(.button) {
  position: relative;
  text-decoration: none;
}

body.dark-mode .entry-content a:not(.wp-block-button__link):not(.button)::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 212, 228, 0.8) 50%,
    transparent 100%
  );
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

body.dark-mode .entry-content a:not(.wp-block-button__link):not(.button):hover::after {
  transform: scaleX(1);
}

/* ====================
   FLOATING BADGES/LABELS
   Gentle bob animation
   ==================== */

.sale-badge,
.onsale,
.badge,
.wp-block-woocommerce-product-badge {
  animation: gentleFloat 3s ease-in-out infinite;
}

/* ====================
   SCROLL INDICATOR PULSE
   Encourage scrolling
   ==================== */

@keyframes scrollPulse {
  0%, 100% {
    transform: translateY(0);
    opacity: 0.7;
  }
  50% {
    transform: translateY(10px);
    opacity: 1;
  }
}

.scroll-indicator,
.scroll-down-arrow {
  animation: scrollPulse 2s ease-in-out infinite;
}

/* ====================
   TESTIMONIAL QUOTE MARKS
   Glowing quotation
   ==================== */

body.dark-mode blockquote::before,
body.dark-mode .wp-block-quote::before {
  color: rgba(0, 212, 228, 0.4) !important;
  text-shadow: 0 0 30px rgba(0, 212, 228, 0.5);
}

/* ====================
   NAVIGATION ACTIVE INDICATOR
   Glowing current page
   ==================== */

body.dark-mode .main-navigation .current-menu-item > a,
body.dark-mode .main-navigation .current-menu-ancestor > a {
  position: relative;
}

body.dark-mode .main-navigation .current-menu-item > a::before,
body.dark-mode .main-navigation .current-menu-ancestor > a::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 6px;
  height: 6px;
  background: #00D4E4;
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(0, 212, 228, 0.8);
  animation: pulseGlow 2s ease-in-out infinite;
}

/* ====================
   PRICE TAG GLOW
   Highlight pricing
   ==================== */

body.dark-mode .price,
body.dark-mode .woocommerce-Price-amount {
  text-shadow: 0 0 10px rgba(0, 212, 228, 0.3);
}

body.dark-mode .price ins,
body.dark-mode .sale-price {
  color: #4FC3F7 !important;
  text-shadow: 0 0 15px rgba(79, 195, 247, 0.5);
}

/* ====================
   FOOTER LINK HOVER RIPPLE
   ==================== */

.site-footer a {
  position: relative;
  overflow: hidden;
}

.site-footer a::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: radial-gradient(
    circle,
    rgba(79, 195, 247, 0.3) 0%,
    transparent 70%
  );
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.5s ease, height 0.5s ease;
  z-index: -1;
}

.site-footer a:hover::before {
  width: 200%;
  height: 200%;
}

/* ====================
   LOADING STATES
   Water spinner
   ==================== */

@keyframes waterSpin {
  0% {
    transform: rotate(0deg);
    border-top-color: #00D4E4;
  }
  25% {
    border-top-color: #4FC3F7;
  }
  50% {
    border-top-color: #81D4FA;
  }
  75% {
    border-top-color: #0077BE;
  }
  100% {
    transform: rotate(360deg);
    border-top-color: #00D4E4;
  }
}

.loading,
.spinner,
.woocommerce-cart-form .blockUI.blockOverlay::before {
  border: 3px solid rgba(0, 212, 228, 0.2) !important;
  border-top-color: #00D4E4 !important;
  animation: waterSpin 1s linear infinite !important;
}

/* ====================
   TOAST/NOTIFICATION GLOW
   ==================== */

body.dark-mode .woocommerce-message,
body.dark-mode .woocommerce-info,
body.dark-mode .notice {
  border-left-color: #00D4E4 !important;
  box-shadow:
    -4px 0 20px rgba(0, 212, 228, 0.3),
    0 8px 25px rgba(0, 0, 0, 0.2) !important;
}

/* ====================
   TABLET OPTIMIZATIONS
   ==================== */

@media (min-width: 769px) and (max-width: 1024px) {
  /* Moderate effects for tablets */
  .review-card:hover,
  .testimonial-card:hover,
  .product-card:hover {
    transform: translateY(-8px) scale(1.01) !important;
  }

  body.dark-mode .featured-card {
    animation-duration: 4s;
  }
}

/* ====================
   PRINT STYLES
   Disable effects for print
   ==================== */

@media print {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
}

/* ====================
   MASTER LEVEL EFFECTS
   Advanced water artistry
   ==================== */

/* ====================
   LIQUID TEXT EFFECT
   Text that flows like water
   ==================== */

@keyframes liquidFlow {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

/* Apply to main hero title */
body.dark-mode .wp-block-cover h1.wp-block-heading,
body.dark-mode .entry-hero-container-inner h1.entry-title {
  background: linear-gradient(
    90deg,
    #E8F5FC 0%,
    #4FC3F7 25%,
    #00D4E4 50%,
    #4FC3F7 75%,
    #E8F5FC 100%
  );
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: liquidFlow 8s ease infinite, textGlowPulse 4s ease-in-out infinite;
}

/* ====================
   WATER REFLECTION EFFECT
   Mirror shimmer on images
   ==================== */

.wp-block-image figure,
figure.wp-block-image {
  position: relative;
}

.wp-block-image figure::after,
figure.wp-block-image::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 5%;
  right: 5%;
  height: 30%;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    rgba(0, 212, 228, 0.05) 50%,
    rgba(0, 212, 228, 0.1) 100%
  );
  mask-image: linear-gradient(to bottom, transparent 0%, black 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 100%);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.4s ease;
  border-radius: 0 0 8px 8px;
}

.wp-block-image figure:hover::after,
figure.wp-block-image:hover::after {
  opacity: 1;
}

/* ====================
   DEEP WATER GRADIENT
   Layered depth effect
   ==================== */

body.dark-mode .alignfull.has-background {
  position: relative;
}

body.dark-mode .alignfull.has-background::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(0, 212, 228, 0.08) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 100%, rgba(79, 195, 247, 0.06) 0%, transparent 50%);
  pointer-events: none;
  z-index: 0;
}

/* ====================
   BIOLUMINESCENCE EFFECT
   Glowing particles appearance
   ==================== */

@keyframes bioluminescence {
  0%, 100% {
    opacity: 0.3;
    transform: scale(1);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.2);
  }
}

body.dark-mode .wp-block-cover::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image:
    radial-gradient(2px 2px at 10% 20%, rgba(0, 212, 228, 0.6), transparent),
    radial-gradient(2px 2px at 30% 70%, rgba(79, 195, 247, 0.5), transparent),
    radial-gradient(3px 3px at 50% 30%, rgba(129, 212, 250, 0.4), transparent),
    radial-gradient(2px 2px at 70% 80%, rgba(0, 212, 228, 0.5), transparent),
    radial-gradient(2px 2px at 90% 40%, rgba(79, 195, 247, 0.6), transparent),
    radial-gradient(3px 3px at 15% 90%, rgba(0, 212, 228, 0.4), transparent),
    radial-gradient(2px 2px at 85% 10%, rgba(129, 212, 250, 0.5), transparent);
  animation: bioluminescence 6s ease-in-out infinite;
  pointer-events: none;
  z-index: 1;
  opacity: 0.6;
}

/* ====================
   WAVE TEXT UNDERLINE
   Animated wavy underline
   ==================== */

@keyframes waveUnderline {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 200% 0;
  }
}

body.dark-mode .entry-content h2 {
  position: relative;
  display: inline-block;
}

body.dark-mode .entry-content h2::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 0;
  width: 100%;
  height: 4px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 4'%3E%3Cpath fill='none' stroke='%2300D4E4' stroke-width='2' d='M0,2 Q5,0 10,2 T20,2'/%3E%3C/svg%3E") repeat-x;
  background-size: 20px 4px;
  animation: waveUnderline 2s linear infinite;
  opacity: 0.7;
}

/* ====================
   DEPTH OF FIELD BLUR
   Focus effect on scroll
   ==================== */

.entry-content > *:not(:hover) {
  transition: filter 0.3s ease;
}

/* Subtle depth when hovering adjacent elements */
.entry-content > .wp-block-group:hover ~ .wp-block-group:not(:hover),
.entry-content > .wp-block-columns:hover ~ .wp-block-columns:not(:hover) {
  filter: blur(0.5px);
  opacity: 0.95;
}

/* ====================
   WATER DROPLET BUTTONS
   Morphing blob shape - exclude liquid-morph (has its own effect)
   ==================== */

body.dark-mode .wp-block-button__link:not(.liquid-morph),
body.dark-mode .kb-btn:not(.liquid-morph) {
  position: relative;
  border-radius: 50px;
  transition:
    border-radius 0.4s ease,
    transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
    box-shadow 0.3s ease;
}

body.dark-mode .wp-block-button__link:not(.liquid-morph):hover,
body.dark-mode .kb-btn:not(.liquid-morph):hover {
  border-radius: 30% 70% 70% 30% / 60% 40% 60% 40%;
}

body.dark-mode .wp-block-button__link:not(.liquid-morph):active,
body.dark-mode .kb-btn:not(.liquid-morph):active {
  border-radius: 60% 40% 40% 60% / 40% 60% 40% 60%;
  transform: scale(0.98);
}

/* ====================
   CAUSTIC LIGHT OVERLAY
   Dancing light patterns
   ==================== */

@keyframes causticDance {
  0%, 100% {
    transform: translate(0, 0) rotate(0deg);
  }
  25% {
    transform: translate(2%, 1%) rotate(1deg);
  }
  50% {
    transform: translate(-1%, 2%) rotate(-1deg);
  }
  75% {
    transform: translate(1%, -1%) rotate(0.5deg);
  }
}

/* DISABLED - was causing overlay issues
body.dark-mode .site-main::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:
    radial-gradient(ellipse 100px 80px at 20% 30%, rgba(0, 212, 228, 0.03) 0%, transparent 50%),
    radial-gradient(ellipse 120px 100px at 60% 70%, rgba(79, 195, 247, 0.025) 0%, transparent 50%),
    radial-gradient(ellipse 80px 60px at 80% 20%, rgba(129, 212, 250, 0.02) 0%, transparent 50%);
  animation: causticDance 20s ease-in-out infinite;
  pointer-events: none;
  z-index: 0;
  opacity: 0.8;
}
*/

/* ====================
   FROSTED GLASS DEPTH
   Multi-layer glass effect
   DISABLED - may cause rendering issues
   ==================== */

/*
body.dark-mode .wp-block-group.has-background {
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
}

body.dark-mode .wp-block-group.has-background::after {
  content: '';
  position: absolute;
  top: 1px;
  left: 1px;
  right: 1px;
  bottom: 1px;
  border-radius: inherit;
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.05) 0%,
    transparent 50%,
    rgba(0, 0, 0, 0.05) 100%
  );
  pointer-events: none;
  z-index: 1;
}
*/

/* ====================
   RIPPLE CLICK FEEDBACK
   Water ring on click
   ==================== */

@keyframes clickRippleRing {
  0% {
    transform: translate(-50%, -50%) scale(0);
    opacity: 1;
    border-width: 4px;
  }
  100% {
    transform: translate(-50%, -50%) scale(2);
    opacity: 0;
    border-width: 1px;
  }
}

/* Applied via JS, but style defined here */
.water-click-ring {
  position: fixed;
  width: 60px;
  height: 60px;
  border: 4px solid rgba(0, 212, 228, 0.6);
  border-radius: 50%;
  pointer-events: none;
  animation: clickRippleRing 0.6s ease-out forwards;
  z-index: 9998;
}

/* ====================
   SUBTLE PAGE VIGNETTE
   Underwater edge darkening
   DISABLED - was causing overlay issues
   ==================== */

/*
body.dark-mode::after {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(
    ellipse at center,
    transparent 50%,
    rgba(5, 15, 30, 0.3) 100%
  );
  pointer-events: none;
  z-index: 9990;
  opacity: 0.5;
}
*/

/* ====================
   LIGHT MODE ENHANCEMENTS
   Sunlit water effects
   ==================== */

/* Sunbeam overlay in light mode */
body:not(.dark-mode) .wp-block-cover::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -20%;
  width: 60%;
  height: 200%;
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.1) 0%,
    transparent 50%
  );
  transform: rotate(-15deg);
  pointer-events: none;
  z-index: 1;
}

/* Light mode card inner shine */
body:not(.dark-mode) .review-card::before,
body:not(.dark-mode) .testimonial-card::before,
body:not(.dark-mode) .product-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0.4) 0%,
    transparent 100%
  );
  border-radius: inherit;
  pointer-events: none;
  z-index: 1;
}

/* ====================
   INTERACTIVE HOVER DEPTH
   3D tilt on cards
   ==================== */

.product-card,
.review-card,
.testimonial-card {
  transform-style: preserve-3d;
  perspective: 1000px;
}

/* Tilt effect handled by transform on hover */
.product-card:hover,
.review-card:hover,
.testimonial-card:hover {
  transform: translateY(-12px) scale(1.02) rotateX(2deg) rotateY(-2deg) !important;
}

/* ====================
   ANIMATED WATER TEXTURE
   Subtle moving pattern
   ==================== */

@keyframes waterTexture {
  0% {
    background-position: 0 0, 25px 25px;
  }
  100% {
    background-position: 50px 50px, 75px 75px;
  }
}

body.dark-mode .site-footer .site-footer-wrap {
  background-image:
    radial-gradient(circle at 1px 1px, rgba(0, 212, 228, 0.03) 1px, transparent 1px),
    radial-gradient(circle at 1px 1px, rgba(79, 195, 247, 0.02) 1px, transparent 1px);
  background-size: 50px 50px;
  animation: waterTexture 30s linear infinite;
}

/* ====================
   DARK MODE SCROLLBAR
   Glowing water scroll
   ==================== */

/* Webkit browsers (Chrome, Safari, Edge) */
/* Target scrollbar when body has dark-mode class */
body.dark-mode::-webkit-scrollbar,
html:has(body.dark-mode)::-webkit-scrollbar {
  width: 14px;
  height: 14px;
}

body.dark-mode::-webkit-scrollbar-track,
html:has(body.dark-mode)::-webkit-scrollbar-track {
  background: linear-gradient(
    180deg,
    #0A1628 0%,
    #0D1B2A 25%,
    #142441 50%,
    #0D1B2A 75%,
    #0A1628 100%
  );
  border-radius: 10px;
  box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.3);
}

body.dark-mode::-webkit-scrollbar-thumb,
html:has(body.dark-mode)::-webkit-scrollbar-thumb {
  background: linear-gradient(
    180deg,
    #00D4E4 0%,
    #0077BE 30%,
    #4FC3F7 50%,
    #0077BE 70%,
    #00D4E4 100%
  );
  border-radius: 10px;
  border: 2px solid rgba(0, 212, 228, 0.3);
  box-shadow:
    0 0 15px rgba(0, 212, 228, 0.5),
    inset 0 0 10px rgba(255, 255, 255, 0.1);
}

body.dark-mode::-webkit-scrollbar-thumb:hover,
html:has(body.dark-mode)::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(
    180deg,
    #4FC3F7 0%,
    #00D4E4 30%,
    #81D4FA 50%,
    #00D4E4 70%,
    #4FC3F7 100%
  );
  box-shadow:
    0 0 25px rgba(0, 212, 228, 0.7),
    0 0 40px rgba(79, 195, 247, 0.3),
    inset 0 0 15px rgba(255, 255, 255, 0.15);
}

body.dark-mode::-webkit-scrollbar-thumb:active,
html:has(body.dark-mode)::-webkit-scrollbar-thumb:active {
  background: linear-gradient(
    180deg,
    #81D4FA 0%,
    #4FC3F7 50%,
    #81D4FA 100%
  );
  box-shadow:
    0 0 30px rgba(0, 212, 228, 0.8),
    inset 0 0 20px rgba(255, 255, 255, 0.2);
}

/* Scrollbar corner (where horizontal meets vertical) */
body.dark-mode::-webkit-scrollbar-corner,
html:has(body.dark-mode)::-webkit-scrollbar-corner {
  background: #0A1628;
}

/* Firefox dark mode scrollbar */
html:has(body.dark-mode) {
  scrollbar-width: auto;
  scrollbar-color: #00D4E4 #0A1628;
}

body.dark-mode {
  scrollbar-width: auto;
  scrollbar-color: #00D4E4 #0A1628;
}

/* Firefox - also target scrollable elements */
body.dark-mode *:not(.wp-block-code):not(pre):not(code) {
  scrollbar-color: #00D4E4 #142441;
}

/* ====================
   DARK MODE TEXT SELECTION
   Glowing water highlight
   ==================== */

body.dark-mode ::selection {
  background-color: rgba(0, 212, 228, 0.35);
  color: #E8F5FC;
  text-shadow: 0 0 8px rgba(0, 212, 228, 0.4);
}

body.dark-mode ::-moz-selection {
  background-color: rgba(0, 212, 228, 0.35);
  color: #E8F5FC;
  text-shadow: 0 0 8px rgba(0, 212, 228, 0.4);
}

/* Selection on dark backgrounds - brighter */
body.dark-mode .wp-block-cover ::selection,
body.dark-mode .entry-hero-container-inner ::selection,
body.dark-mode .site-footer ::selection {
  background-color: rgba(79, 195, 247, 0.45);
}

/* ====================
   FORM INPUT FOCUS RIPPLE
   Water ring animation
   ==================== */

@keyframes inputFocusRipple {
  0% {
    box-shadow:
      0 0 0 0 rgba(0, 212, 228, 0.4),
      0 0 0 0 rgba(0, 212, 228, 0.2);
  }
  50% {
    box-shadow:
      0 0 0 8px rgba(0, 212, 228, 0),
      0 0 0 4px rgba(0, 212, 228, 0.1);
  }
  100% {
    box-shadow:
      0 0 0 12px rgba(0, 212, 228, 0),
      0 0 0 8px rgba(0, 212, 228, 0);
  }
}

@keyframes inputGlowPulse {
  0%, 100% {
    box-shadow:
      0 0 0 3px rgba(0, 212, 228, 0.2),
      0 0 15px rgba(0, 212, 228, 0.15);
  }
  50% {
    box-shadow:
      0 0 0 3px rgba(0, 212, 228, 0.3),
      0 0 25px rgba(0, 212, 228, 0.25);
  }
}

/* Apply to form inputs in dark mode */
body.dark-mode input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):focus,
body.dark-mode textarea:focus,
body.dark-mode select:focus {
  animation: inputFocusRipple 0.6s ease-out;
  border-color: rgba(0, 212, 228, 0.6) !important;
  outline: none;
}

/* Sustained glow while focused */
body.dark-mode input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):focus-visible,
body.dark-mode textarea:focus-visible,
body.dark-mode select:focus-visible {
  animation: inputFocusRipple 0.6s ease-out, inputGlowPulse 2s ease-in-out 0.6s infinite;
}

/* Light mode input focus */
body:not(.dark-mode) input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):focus,
body:not(.dark-mode) textarea:focus,
body:not(.dark-mode) select:focus {
  animation: inputFocusRipple 0.6s ease-out;
  border-color: rgba(0, 119, 190, 0.5) !important;
}

/* Placeholder fade on focus */
body.dark-mode input:focus::placeholder,
body.dark-mode textarea:focus::placeholder {
  opacity: 0.4;
  transition: opacity 0.3s ease;
}

body.dark-mode input::placeholder,
body.dark-mode textarea::placeholder {
  transition: opacity 0.3s ease;
}

/* Search input special styling */
body.dark-mode input[type="search"]:focus {
  background: linear-gradient(
    135deg,
    rgba(20, 36, 65, 0.95) 0%,
    rgba(13, 27, 48, 0.95) 100%
  );
}

/* WooCommerce quantity inputs */
body.dark-mode .quantity input[type="number"]:focus {
  animation: inputFocusRipple 0.6s ease-out;
}

/* ====================
   PHASE 2: NAVIGATION MAGIC
   Dropdown Water Cascade
   ==================== */

@keyframes waterCascade {
  0% {
    opacity: 0;
    transform: translateY(-15px) scaleY(0.85);
    transform-origin: top center;
  }
  50% {
    transform: translateY(3px) scaleY(1.02);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scaleY(1);
  }
}

@keyframes menuItemFlow {
  0% {
    opacity: 0;
    transform: translateY(-10px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Only animate submenus when parent is hovered (not always) */
.menu-item:hover > .sub-menu,
.menu-item.sfHover > .sub-menu {
  animation: waterCascade 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.menu-item:hover > .sub-menu > li,
.menu-item.sfHover > .sub-menu > li {
  animation: menuItemFlow 0.35s ease-out backwards;
}

/* Staggered animation delays for menu items (up to 20) */
.menu-item:hover > .sub-menu > li:nth-child(1),
.menu-item.sfHover > .sub-menu > li:nth-child(1) { animation-delay: 0.03s; }
.menu-item:hover > .sub-menu > li:nth-child(2),
.menu-item.sfHover > .sub-menu > li:nth-child(2) { animation-delay: 0.06s; }
.menu-item:hover > .sub-menu > li:nth-child(3),
.menu-item.sfHover > .sub-menu > li:nth-child(3) { animation-delay: 0.09s; }
.menu-item:hover > .sub-menu > li:nth-child(4),
.menu-item.sfHover > .sub-menu > li:nth-child(4) { animation-delay: 0.12s; }
.menu-item:hover > .sub-menu > li:nth-child(5),
.menu-item.sfHover > .sub-menu > li:nth-child(5) { animation-delay: 0.15s; }
.menu-item:hover > .sub-menu > li:nth-child(6),
.menu-item.sfHover > .sub-menu > li:nth-child(6) { animation-delay: 0.18s; }
.menu-item:hover > .sub-menu > li:nth-child(7),
.menu-item.sfHover > .sub-menu > li:nth-child(7) { animation-delay: 0.21s; }
.menu-item:hover > .sub-menu > li:nth-child(8),
.menu-item.sfHover > .sub-menu > li:nth-child(8) { animation-delay: 0.24s; }
.menu-item:hover > .sub-menu > li:nth-child(9),
.menu-item.sfHover > .sub-menu > li:nth-child(9) { animation-delay: 0.27s; }
.menu-item:hover > .sub-menu > li:nth-child(10),
.menu-item.sfHover > .sub-menu > li:nth-child(10) { animation-delay: 0.30s; }
.menu-item:hover > .sub-menu > li:nth-child(11),
.menu-item.sfHover > .sub-menu > li:nth-child(11) { animation-delay: 0.33s; }
.menu-item:hover > .sub-menu > li:nth-child(12),
.menu-item.sfHover > .sub-menu > li:nth-child(12) { animation-delay: 0.36s; }
.menu-item:hover > .sub-menu > li:nth-child(13),
.menu-item.sfHover > .sub-menu > li:nth-child(13) { animation-delay: 0.39s; }
.menu-item:hover > .sub-menu > li:nth-child(14),
.menu-item.sfHover > .sub-menu > li:nth-child(14) { animation-delay: 0.42s; }
.menu-item:hover > .sub-menu > li:nth-child(15),
.menu-item.sfHover > .sub-menu > li:nth-child(15) { animation-delay: 0.45s; }
.menu-item:hover > .sub-menu > li:nth-child(16),
.menu-item.sfHover > .sub-menu > li:nth-child(16) { animation-delay: 0.48s; }
.menu-item:hover > .sub-menu > li:nth-child(17),
.menu-item.sfHover > .sub-menu > li:nth-child(17) { animation-delay: 0.51s; }
.menu-item:hover > .sub-menu > li:nth-child(18),
.menu-item.sfHover > .sub-menu > li:nth-child(18) { animation-delay: 0.54s; }
.menu-item:hover > .sub-menu > li:nth-child(19),
.menu-item.sfHover > .sub-menu > li:nth-child(19) { animation-delay: 0.57s; }
.menu-item:hover > .sub-menu > li:nth-child(20),
.menu-item.sfHover > .sub-menu > li:nth-child(20) { animation-delay: 0.60s; }
.menu-item:hover > .sub-menu > li:nth-child(n+21),
.menu-item.sfHover > .sub-menu > li:nth-child(n+21) { animation-delay: 0.63s; }

/* Dark mode submenu styling */
body.dark-mode .sub-menu {
  background: linear-gradient(
    180deg,
    rgba(13, 27, 48, 0.98) 0%,
    rgba(20, 36, 65, 0.98) 100%
  );
  border: 1px solid rgba(0, 212, 228, 0.2);
  box-shadow:
    0 15px 40px rgba(0, 0, 0, 0.4),
    0 0 30px rgba(0, 212, 228, 0.1),
    inset 0 1px 0 rgba(0, 212, 228, 0.1);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

body.dark-mode .sub-menu > li > a:hover {
  background: linear-gradient(
    90deg,
    rgba(0, 212, 228, 0.15) 0%,
    rgba(0, 212, 228, 0.08) 50%,
    rgba(0, 212, 228, 0.15) 100%
  );
  padding-left: 20px;
  transition: all 0.3s ease;
}

/* Light mode submenu styling */
body:not(.dark-mode) .sub-menu {
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.98) 0%,
    rgba(232, 244, 248, 0.98) 100%
  );
  border: 1px solid rgba(0, 119, 190, 0.15);
  box-shadow:
    0 15px 40px rgba(0, 77, 128, 0.15),
    0 0 20px rgba(0, 180, 216, 0.08);
}

body:not(.dark-mode) .sub-menu > li > a:hover {
  background: linear-gradient(
    90deg,
    rgba(0, 180, 216, 0.1) 0%,
    rgba(0, 180, 216, 0.05) 50%,
    rgba(0, 180, 216, 0.1) 100%
  );
}

/* ====================
   IMAGE UNDERWATER REVEAL
   Surface emergence effect
   ==================== */

/* Keyframe for underwater to surface reveal */
@keyframes underwaterSurface {
  0% {
    filter: blur(8px) saturate(130%) brightness(0.85);
    opacity: 0.6;
    transform: scale(1.03);
  }
  60% {
    filter: blur(2px) saturate(110%) brightness(0.95);
    opacity: 0.9;
  }
  100% {
    filter: blur(0) saturate(100%) brightness(1);
    opacity: 1;
    transform: scale(1);
  }
}

/* Apply to images that load lazily or have specific class */
img[loading="lazy"],
.wp-block-image img,
.wp-block-gallery img,
.featured-image img,
.post-thumbnail img,
.woocommerce-product-gallery img,
figure img {
  animation: underwaterSurface 0.8s ease-out forwards;
  animation-play-state: paused;
}

/* Play animation when image enters viewport (requires IntersectionObserver or AOS) */
img[loading="lazy"].loaded,
img[loading="lazy"][data-aos].aos-animate,
.wp-block-image img.aos-animate,
.wp-block-gallery img.aos-animate,
[data-aos].aos-animate img,
.image-revealed img,
.image-revealed {
  animation-play-state: running;
}

/* Alternative: CSS-only reveal on hover/focus for interactive images */
.wp-block-image:hover img,
figure:hover img,
a:hover img {
  animation-play-state: running;
}

/* Water tint overlay for dark mode images - DISABLED */
/*
body.dark-mode .wp-block-image::before,
body.dark-mode figure.wp-block-image::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    180deg,
    rgba(0, 77, 128, 0.08) 0%,
    rgba(0, 180, 216, 0.05) 50%,
    rgba(0, 77, 128, 0.08) 100%
  );
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.5s ease;
  z-index: 1;
}

body.dark-mode .wp-block-image:not(:hover)::before,
body.dark-mode figure.wp-block-image:not(:hover)::before {
  opacity: 0.3;
}
*/

/* Ensure figure has position context */
.wp-block-image,
figure.wp-block-image {
  position: relative;
  overflow: hidden;
}

/* ====================
   MOBILE MENU WAVE SLIDE
   Fluid drawer animation
   RE-ENABLED after fixing root cause (body.dark-mode * selector)
   ==================== */

@keyframes waveSlideIn {
  0% {
    transform: translateX(100%);
    clip-path: polygon(15% 0, 100% 0, 100% 100%, 15% 100%, 0% 80%, 5% 60%, 0% 40%, 5% 20%);
  }
  50% {
    clip-path: polygon(5% 0, 100% 0, 100% 100%, 5% 100%, 0% 85%, 8% 65%, 0% 45%, 8% 25%);
  }
  100% {
    transform: translateX(0);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 0% 80%, 0% 60%, 0% 40%, 0% 20%);
  }
}

@keyframes waveSlideOut {
  0% {
    transform: translateX(0);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
  50% {
    clip-path: polygon(8% 0, 100% 0, 100% 100%, 8% 100%, 0% 85%, 10% 65%, 0% 45%, 10% 25%);
  }
  100% {
    transform: translateX(100%);
    clip-path: polygon(20% 0, 100% 0, 100% 100%, 20% 100%, 0% 80%, 10% 60%, 0% 40%, 10% 20%);
  }
}

.mobile-navigation,
.drawer-navigation,
.mobile-toggle-open .mobile-navigation,
.kadence-mobile-nav-widget-area,
#mobile-drawer .drawer-inner {
  transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.mobile-toggle-open .drawer-inner,
.mobile-toggle-open .mobile-navigation {
  animation: waveSlideIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

body.dark-mode .drawer-inner,
body.dark-mode #mobile-drawer .drawer-inner,
body.dark-mode .mobile-navigation {
  background: linear-gradient(
    135deg,
    rgba(10, 22, 40, 0.98) 0%,
    rgba(13, 27, 48, 0.98) 50%,
    rgba(20, 36, 65, 0.98) 100%
  ) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

body.dark-mode .drawer-inner::before,
body.dark-mode #mobile-drawer .drawer-inner::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(0, 212, 228, 0.08) 0%, transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(79, 195, 247, 0.06) 0%, transparent 40%),
    radial-gradient(circle at 50% 90%, rgba(0, 119, 190, 0.05) 0%, transparent 35%);
  pointer-events: none;
  z-index: 0;
}

.drawer-inner .menu > li,
.mobile-navigation .menu > li {
  animation: menuItemFlow 0.4s ease-out backwards;
}

.drawer-inner .menu > li:nth-child(1),
.mobile-navigation .menu > li:nth-child(1) { animation-delay: 0.1s; }
.drawer-inner .menu > li:nth-child(2),
.mobile-navigation .menu > li:nth-child(2) { animation-delay: 0.15s; }
.drawer-inner .menu > li:nth-child(3),
.mobile-navigation .menu > li:nth-child(3) { animation-delay: 0.2s; }
.drawer-inner .menu > li:nth-child(4),
.mobile-navigation .menu > li:nth-child(4) { animation-delay: 0.25s; }
.drawer-inner .menu > li:nth-child(5),
.mobile-navigation .menu > li:nth-child(5) { animation-delay: 0.3s; }
.drawer-inner .menu > li:nth-child(6),
.mobile-navigation .menu > li:nth-child(6) { animation-delay: 0.35s; }
.drawer-inner .menu > li:nth-child(7),
.mobile-navigation .menu > li:nth-child(7) { animation-delay: 0.4s; }
.drawer-inner .menu > li:nth-child(8),
.mobile-navigation .menu > li:nth-child(8) { animation-delay: 0.45s; }

body.dark-mode .drawer-inner .menu > li > a:hover,
body.dark-mode .mobile-navigation .menu > li > a:hover {
  background: linear-gradient(
    90deg,
    rgba(0, 212, 228, 0.12) 0%,
    rgba(0, 212, 228, 0.06) 100%
  );
  text-shadow: 0 0 15px rgba(0, 212, 228, 0.5);
  border-left: 3px solid rgba(0, 212, 228, 0.6);
  padding-left: 12px;
}

body.dark-mode .drawer-toggle-close,
body.dark-mode .mobile-toggle-close {
  transition: all 0.3s ease;
}

body.dark-mode .drawer-toggle-close:hover,
body.dark-mode .mobile-toggle-close:hover {
  transform: rotate(90deg);
  filter: drop-shadow(0 0 10px rgba(0, 212, 228, 0.6));
}

/* ====================
   TEXT RIPPLE ON SCROLL (AOS Integration)
   Water-themed reveal animations
   ==================== */

/* Custom AOS animation: ripple-up */
[data-aos="ripple-up"] {
  opacity: 0;
  transform: translateY(30px) scale(0.95);
  transition-property: opacity, transform;
}

[data-aos="ripple-up"].aos-animate {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* Custom AOS: wave-in from left */
[data-aos="wave-left"] {
  opacity: 0;
  transform: translateX(-50px) skewX(5deg);
  transition-property: opacity, transform;
}

[data-aos="wave-left"].aos-animate {
  opacity: 1;
  transform: translateX(0) skewX(0);
}

/* Custom AOS: wave-in from right */
[data-aos="wave-right"] {
  opacity: 0;
  transform: translateX(50px) skewX(-5deg);
  transition-property: opacity, transform;
}

[data-aos="wave-right"].aos-animate {
  opacity: 1;
  transform: translateX(0) skewX(0);
}

/* Custom AOS: bubble-up */
[data-aos="bubble-up"] {
  opacity: 0;
  transform: translateY(40px) scale(0.8);
  transition-property: opacity, transform;
  transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}

[data-aos="bubble-up"].aos-animate {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* Custom AOS: surface-emerge */
[data-aos="surface-emerge"] {
  opacity: 0;
  filter: blur(10px);
  transform: translateY(20px);
  transition-property: opacity, filter, transform;
}

[data-aos="surface-emerge"].aos-animate {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

/* ====================
   REDUCED MOTION SUPPORT
   Respect user preferences
   ==================== */

@media (prefers-reduced-motion: reduce) {
  /* Disable all cascade and wave animations */
  .sub-menu,
  .sub-menu > li,
  .drawer-inner,
  .mobile-navigation,
  .mobile-toggle-open .drawer-inner,
  .drawer-inner .menu > li,
  .mobile-navigation .menu > li {
    animation: none !important;
  }

  /* Disable image reveal animation */
  img[loading="lazy"],
  .wp-block-image img,
  .wp-block-gallery img {
    animation: none !important;
    filter: none !important;
  }

  /* Simplify AOS animations */
  [data-aos] {
    transition-duration: 0ms !important;
  }

  /* Keep hover states but remove animation */
  .drawer-toggle-close:hover,
  .mobile-toggle-close:hover {
    transform: none;
  }
}

/* ====================
   404 "LOST AT SEA" PAGE
   Immersive underwater error page
   ==================== */

/* Container with underwater gradient background */
.error-404-container {
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4rem 2rem;
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    180deg,
    rgba(232, 244, 248, 0.5) 0%,
    rgba(179, 229, 252, 0.3) 50%,
    rgba(129, 212, 250, 0.2) 100%
  );
}

/* Floating bubbles background */
.error-404-container::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image:
    radial-gradient(circle at 10% 80%, rgba(79, 195, 247, 0.3) 0%, transparent 8%),
    radial-gradient(circle at 90% 20%, rgba(0, 180, 216, 0.2) 0%, transparent 6%),
    radial-gradient(circle at 30% 30%, rgba(0, 212, 228, 0.25) 0%, transparent 4%),
    radial-gradient(circle at 70% 70%, rgba(79, 195, 247, 0.2) 0%, transparent 5%),
    radial-gradient(circle at 50% 50%, rgba(0, 119, 190, 0.15) 0%, transparent 10%),
    radial-gradient(circle at 20% 60%, rgba(0, 180, 216, 0.2) 0%, transparent 3%),
    radial-gradient(circle at 80% 40%, rgba(79, 195, 247, 0.15) 0%, transparent 4%);
  animation: bubbleFloat 20s ease-in-out infinite;
  pointer-events: none;
  z-index: 0;
}

@keyframes bubbleFloat {
  0%, 100% {
    transform: translateY(0) scale(1);
    opacity: 0.7;
  }
  25% {
    transform: translateY(-15px) scale(1.02);
    opacity: 0.9;
  }
  50% {
    transform: translateY(-5px) scale(0.98);
    opacity: 0.8;
  }
  75% {
    transform: translateY(-20px) scale(1.01);
    opacity: 0.85;
  }
}

.error-404-content {
  max-width: 800px;
  text-align: center;
  position: relative;
  z-index: 1;
}

/* Ripple animation container */
.ripple-404 {
  width: 200px;
  height: 200px;
  margin: 0 auto 3rem;
  position: relative;
}

.ripple-circle {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: linear-gradient(135deg, #4FC3F7 0%, #0077BE 100%);
  opacity: 0.2;
  animation: ripple-404-pulse 3s ease-in-out infinite;
}

.ripple-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 5rem;
  font-weight: 700;
  color: #0077BE;
  opacity: 0.6;
  text-shadow: 0 4px 20px rgba(0, 119, 190, 0.3);
}

@keyframes ripple-404-pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.2;
  }
  50% {
    transform: scale(1.15);
    opacity: 0.35;
  }
}

/* Expanding ripple rings */
.ripple-404::before,
.ripple-404::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 2px solid #0077BE;
  opacity: 0;
  animation: ripple-404-expand 3s ease-out infinite;
}

.ripple-404::after {
  animation-delay: 1.5s;
}

@keyframes ripple-404-expand {
  0% {
    transform: scale(1);
    opacity: 0.5;
  }
  100% {
    transform: scale(2.5);
    opacity: 0;
  }
}

/* Typography */
.error-404-content h1 {
  font-size: 2.75rem;
  font-weight: 700;
  color: #0D3B66;
  margin-bottom: 1.5rem;
  line-height: 1.2;
}

.error-404-content .error-tagline {
  font-size: 1.4rem;
  color: #0077BE;
  margin-bottom: 1.5rem;
  line-height: 1.5;
  font-style: italic;
}

.error-404-content .error-description {
  font-size: 1.1rem;
  color: #4A5568;
  margin-bottom: 2.5rem;
  line-height: 1.7;
}

/* Navigation buttons */
.error-404-navigation {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin-bottom: 3rem;
}

.error-404-navigation .btn-404 {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 2.5rem;
  border-radius: 50px;
  font-size: 1.1rem;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.error-404-navigation .btn-404-primary {
  background: linear-gradient(135deg, #FFD700 0%, #FFC107 100%);
  color: #0D3B66;
}

.error-404-navigation .btn-404-primary:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 8px 25px rgba(255, 215, 0, 0.4);
}

.error-404-navigation .btn-404-secondary {
  background: linear-gradient(135deg, #0077BE 0%, #00A8E8 100%);
  color: #ffffff;
}

.error-404-navigation .btn-404-secondary:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 8px 25px rgba(0, 119, 190, 0.4);
}

/* Search section */
.error-404-search {
  max-width: 500px;
  margin: 0 auto 3rem;
}

.error-404-search h3 {
  font-size: 1.25rem;
  font-weight: 600;
  color: #0077BE;
  margin-bottom: 1rem;
}

/* Popular pages grid */
.popular-pages-404 {
  margin-top: 3rem;
  padding-top: 2.5rem;
  border-top: 2px solid rgba(0, 119, 190, 0.15);
}

.popular-pages-404 h3 {
  font-size: 1.5rem;
  font-weight: 600;
  color: #0077BE;
  margin-bottom: 1.5rem;
}

.popular-pages-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
  text-align: left;
}

.popular-page-link {
  color: #0077BE;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem;
  background: rgba(179, 229, 252, 0.25);
  border-radius: 12px;
  transition: all 0.3s ease;
  border: 1px solid transparent;
}

.popular-page-link:hover {
  background: rgba(179, 229, 252, 0.5);
  border-color: rgba(0, 119, 190, 0.2);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 119, 190, 0.15);
}

/* ===== DARK MODE 404 ===== */
body.dark-mode .error-404-container {
  background: linear-gradient(
    180deg,
    rgba(10, 22, 40, 0.95) 0%,
    rgba(13, 27, 48, 0.9) 30%,
    rgba(20, 36, 65, 0.85) 70%,
    rgba(10, 22, 40, 0.95) 100%
  );
}

body.dark-mode .error-404-container::before {
  background-image:
    radial-gradient(circle at 10% 80%, rgba(0, 212, 228, 0.2) 0%, transparent 8%),
    radial-gradient(circle at 90% 20%, rgba(79, 195, 247, 0.15) 0%, transparent 6%),
    radial-gradient(circle at 30% 30%, rgba(0, 180, 216, 0.2) 0%, transparent 4%),
    radial-gradient(circle at 70% 70%, rgba(0, 212, 228, 0.15) 0%, transparent 5%),
    radial-gradient(circle at 50% 50%, rgba(79, 195, 247, 0.1) 0%, transparent 10%),
    radial-gradient(circle at 20% 60%, rgba(0, 212, 228, 0.15) 0%, transparent 3%),
    radial-gradient(circle at 80% 40%, rgba(79, 195, 247, 0.1) 0%, transparent 4%);
}

body.dark-mode .ripple-circle {
  background: linear-gradient(135deg, #00D4E4 0%, #4FC3F7 100%);
  opacity: 0.15;
}

body.dark-mode .ripple-text {
  color: #00D4E4;
  text-shadow: 0 0 30px rgba(0, 212, 228, 0.5);
}

body.dark-mode .ripple-404::before,
body.dark-mode .ripple-404::after {
  border-color: #00D4E4;
}

body.dark-mode .error-404-content h1 {
  color: #E8F5FC;
}

body.dark-mode .error-404-content .error-tagline {
  color: #4FC3F7;
}

body.dark-mode .error-404-content .error-description {
  color: #94A3B8;
}

body.dark-mode .error-404-navigation .btn-404-primary {
  background: linear-gradient(135deg, #FFD700 0%, #FFC107 100%);
  color: #0D3B66;
}

body.dark-mode .error-404-navigation .btn-404-primary:hover {
  box-shadow: 0 8px 25px rgba(255, 215, 0, 0.3);
}

body.dark-mode .error-404-navigation .btn-404-secondary {
  background: linear-gradient(135deg, #00D4E4 0%, #4FC3F7 100%);
  color: #0A1628;
}

body.dark-mode .error-404-navigation .btn-404-secondary:hover {
  box-shadow: 0 8px 25px rgba(0, 212, 228, 0.3);
}

body.dark-mode .error-404-search h3 {
  color: #4FC3F7;
}

body.dark-mode .popular-pages-404 {
  border-top-color: rgba(0, 212, 228, 0.2);
}

body.dark-mode .popular-pages-404 h3 {
  color: #4FC3F7;
}

body.dark-mode .popular-page-link {
  color: #4FC3F7;
  background: rgba(0, 212, 228, 0.1);
}

body.dark-mode .popular-page-link:hover {
  background: rgba(0, 212, 228, 0.2);
  border-color: rgba(0, 212, 228, 0.3);
  box-shadow: 0 4px 15px rgba(0, 212, 228, 0.2);
}

/* Reduced motion for 404 */
@media (prefers-reduced-motion: reduce) {
  .error-404-container::before,
  .ripple-circle,
  .ripple-404::before,
  .ripple-404::after {
    animation: none !important;
  }

  .ripple-circle {
    opacity: 0.3;
  }
}

/* ====================
   LOADING SKELETON
   Water shimmer placeholders
   ==================== */

/* Base skeleton styles */
.skeleton,
.water-skeleton {
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    90deg,
    rgba(179, 229, 252, 0.3) 0%,
    rgba(129, 212, 250, 0.4) 50%,
    rgba(179, 229, 252, 0.3) 100%
  );
  border-radius: 8px;
}

.skeleton::after,
.water-skeleton::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.4) 20%,
    rgba(79, 195, 247, 0.3) 40%,
    rgba(0, 180, 216, 0.2) 50%,
    rgba(79, 195, 247, 0.3) 60%,
    rgba(255, 255, 255, 0.4) 80%,
    transparent 100%
  );
  animation: skeletonWave 2s ease-in-out infinite;
  transform: translateX(-100%);
}

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

/* Skeleton variants */
.skeleton-text {
  height: 1em;
  margin-bottom: 0.5em;
}

.skeleton-text.short {
  width: 40%;
}

.skeleton-text.medium {
  width: 70%;
}

.skeleton-text.long {
  width: 90%;
}

.skeleton-title {
  height: 1.5em;
  width: 60%;
  margin-bottom: 1em;
}

.skeleton-image {
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 aspect ratio */
}

.skeleton-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
}

.skeleton-button {
  height: 44px;
  width: 120px;
  border-radius: 22px;
}

.skeleton-card {
  padding: 1.5rem;
  border-radius: 12px;
}

/* Dark mode skeleton */
body.dark-mode .skeleton,
body.dark-mode .water-skeleton {
  background: linear-gradient(
    90deg,
    rgba(20, 36, 65, 0.6) 0%,
    rgba(30, 50, 80, 0.7) 50%,
    rgba(20, 36, 65, 0.6) 100%
  );
}

body.dark-mode .skeleton::after,
body.dark-mode .water-skeleton::after {
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 212, 228, 0.1) 20%,
    rgba(0, 212, 228, 0.2) 40%,
    rgba(79, 195, 247, 0.15) 50%,
    rgba(0, 212, 228, 0.2) 60%,
    rgba(0, 212, 228, 0.1) 80%,
    transparent 100%
  );
}

/* Loading container with multiple skeletons */
.skeleton-container {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.skeleton-row {
  display: flex;
  gap: 1rem;
  align-items: center;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .skeleton::after,
  .water-skeleton::after {
    animation: none;
    transform: none;
    background: rgba(0, 180, 216, 0.1);
  }
}

/* ====================
   ENHANCED NAV INDICATOR
   Water droplet with drip animation
   ==================== */

/* Override the basic dot with a droplet shape */
.main-navigation .current-menu-item > a::before,
.main-navigation .current-menu-ancestor > a::before {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 10px;
  background: linear-gradient(180deg, #0077BE 0%, #4FC3F7 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0, 119, 190, 0.4);
  animation: dropletPulse 2.5s ease-in-out infinite;
}

/* Drip effect - a smaller droplet that falls */
.main-navigation .current-menu-item > a::after,
.main-navigation .current-menu-ancestor > a::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 5px;
  background: rgba(79, 195, 247, 0.6);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  opacity: 0;
  animation: dropletDrip 4s ease-in-out infinite;
  animation-delay: 1s;
}

@keyframes dropletPulse {
  0%, 100% {
    transform: translateX(-50%) scale(1);
    box-shadow: 0 2px 8px rgba(0, 119, 190, 0.4);
  }
  50% {
    transform: translateX(-50%) scale(1.15);
    box-shadow: 0 3px 12px rgba(0, 119, 190, 0.6);
  }
}

@keyframes dropletDrip {
  0%, 15% {
    opacity: 0;
    transform: translateX(-50%) translateY(0) scale(0.5);
  }
  20% {
    opacity: 0.8;
    transform: translateX(-50%) translateY(0) scale(1);
  }
  60% {
    opacity: 0.4;
    transform: translateX(-50%) translateY(15px) scale(0.7);
  }
  80%, 100% {
    opacity: 0;
    transform: translateX(-50%) translateY(25px) scale(0.3);
  }
}

/* Dark mode droplet */
body.dark-mode .main-navigation .current-menu-item > a::before,
body.dark-mode .main-navigation .current-menu-ancestor > a::before {
  background: linear-gradient(180deg, #00D4E4 0%, #4FC3F7 100%);
  box-shadow: 0 2px 10px rgba(0, 212, 228, 0.6), 0 0 20px rgba(0, 212, 228, 0.3);
}

body.dark-mode .main-navigation .current-menu-item > a::after,
body.dark-mode .main-navigation .current-menu-ancestor > a::after {
  background: rgba(0, 212, 228, 0.5);
}

/* Light mode ensure visibility */
body:not(.dark-mode) .main-navigation .current-menu-item > a,
body:not(.dark-mode) .main-navigation .current-menu-ancestor > a {
  position: relative;
}

/* Reduced motion - static indicator */
@media (prefers-reduced-motion: reduce) {
  .main-navigation .current-menu-item > a::before,
  .main-navigation .current-menu-ancestor > a::before {
    animation: none;
    transform: translateX(-50%);
  }

  .main-navigation .current-menu-item > a::after,
  .main-navigation .current-menu-ancestor > a::after {
    display: none;
  }
}

/* ====================
   CUSTOM WATER CURSOR
   Polished glassy droplet cursors (desktop only)
   ==================== */

/* Only apply on devices with fine pointer (mouse) */
@media (pointer: fine) {
  /*
   * Default cursor - glassy water droplet
   * Features: gradient body, multiple highlights, subtle shadow
   */
  body {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cdefs%3E%3ClinearGradient id='dropGrad' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%234FC3F7'/%3E%3Cstop offset='50%25' stop-color='%230077BE'/%3E%3Cstop offset='100%25' stop-color='%23004D80'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cellipse cx='16' cy='22' rx='6' ry='2' fill='%23000' opacity='0.15'/%3E%3Cpath fill='url(%23dropGrad)' d='M16 3C16 3 8 13 8 18c0 4.42 3.58 8 8 8s8-3.58 8-8c0-5-8-15-8-15z'/%3E%3Cpath fill='white' opacity='0.6' d='M12 14c0 0 2-4 4-6c-3 2-5 6-5 10c0 2.5 1.2 4.7 3 6c-2.4-1.8-4-4.7-4-8c0-1 0.7-2 2-2z'/%3E%3Cellipse cx='13' cy='15' rx='2' ry='3' fill='white' opacity='0.4'/%3E%3Ccircle cx='18' cy='20' r='1.5' fill='white' opacity='0.25'/%3E%3C/svg%3E") 4 4, auto;
  }

  /*
   * Pointer cursor - larger, brighter droplet with ripple ring
   * Used for clickable elements
   */
  a, button, [role="button"],
  input[type="submit"], input[type="button"],
  .wp-block-button__link,
  .btn, .button,
  label[for], select,
  [onclick], [data-toggle],
  summary, .clickable,
  .menu-item > a {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Cdefs%3E%3ClinearGradient id='dropGradHover' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%2300E5FF'/%3E%3Cstop offset='40%25' stop-color='%2300D4E4'/%3E%3Cstop offset='100%25' stop-color='%230088AA'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='18' cy='24' r='10' fill='none' stroke='%2300D4E4' stroke-width='1' opacity='0.3'/%3E%3Ccircle cx='18' cy='24' r='7' fill='none' stroke='%2300D4E4' stroke-width='0.5' opacity='0.2'/%3E%3Cellipse cx='18' cy='26' rx='7' ry='2.5' fill='%23000' opacity='0.12'/%3E%3Cpath fill='url(%23dropGradHover)' d='M18 4C18 4 9 15 9 21c0 4.97 4.03 9 9 9s9-4.03 9-9c0-6-9-17-9-17z'/%3E%3Cpath fill='white' opacity='0.7' d='M13 17c0 0 2.5-5 5-7.5c-3.5 2.5-6 7-6 11.5c0 3 1.5 5.5 3.5 7c-2.8-2-4.5-5.3-4.5-9c0-1.2 0.8-2.3 2-2z'/%3E%3Cellipse cx='14' cy='17' rx='2.5' ry='4' fill='white' opacity='0.5'/%3E%3Ccircle cx='20' cy='23' r='2' fill='white' opacity='0.3'/%3E%3Ccircle cx='22' cy='19' r='1' fill='white' opacity='0.2'/%3E%3C/svg%3E") 6 6, pointer;
  }

  /* Text cursor - keep standard for text inputs */
  input[type="text"], input[type="email"], input[type="password"],
  input[type="search"], input[type="url"], input[type="tel"],
  input[type="number"], textarea, [contenteditable="true"] {
    cursor: text;
  }

  /* Grabbing states */
  [draggable="true"], .draggable, .sortable-item {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cdefs%3E%3ClinearGradient id='grabGrad' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%234FC3F7'/%3E%3Cstop offset='100%25' stop-color='%230077BE'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23grabGrad)' d='M16 6c-1.5 0-2.7 1-3 2.4L11 6.5C10.6 5.6 9.7 5 8.7 5C7.2 5 6 6.2 6 7.7v10.6c0 4.3 3.5 7.7 7.7 7.7h4.6c4.3 0 7.7-3.5 7.7-7.7V10c0-1.5-1.2-2.7-2.7-2.7c-0.5 0-1 0.2-1.4 0.4c-0.4-1.2-1.5-2-2.9-2c-0.6 0-1.2 0.2-1.7 0.5C16.9 5.5 16.5 6 16 6z'/%3E%3Cellipse cx='10' cy='12' rx='1.5' ry='4' fill='white' opacity='0.4'/%3E%3C/svg%3E") 16 16, grab;
  }

  /* Disabled/not-allowed state */
  [disabled], .disabled, [aria-disabled="true"] {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath fill='%23888' d='M16 3C16 3 8 13 8 18c0 4.42 3.58 8 8 8s8-3.58 8-8c0-5-8-15-8-15z' opacity='0.5'/%3E%3Cline x1='10' y1='12' x2='22' y2='24' stroke='%23CC4444' stroke-width='2' stroke-linecap='round'/%3E%3Cellipse cx='13' cy='15' rx='2' ry='3' fill='white' opacity='0.2'/%3E%3C/svg%3E") 16 16, not-allowed;
  }

  /* ===== DARK MODE CURSORS ===== */

  /* Dark mode default - glowing cyan droplet */
  body.dark-mode {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cdefs%3E%3ClinearGradient id='dropGradDark' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%2300FFFF'/%3E%3Cstop offset='50%25' stop-color='%2300D4E4'/%3E%3Cstop offset='100%25' stop-color='%230099AA'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cellipse cx='16' cy='23' rx='8' ry='3' fill='%2300D4E4' opacity='0.2'/%3E%3Cpath fill='url(%23dropGradDark)' d='M16 3C16 3 8 13 8 18c0 4.42 3.58 8 8 8s8-3.58 8-8c0-5-8-15-8-15z'/%3E%3Cpath fill='white' opacity='0.7' d='M12 14c0 0 2-4 4-6c-3 2-5 6-5 10c0 2.5 1.2 4.7 3 6c-2.4-1.8-4-4.7-4-8c0-1 0.7-2 2-2z'/%3E%3Cellipse cx='13' cy='15' rx='2' ry='3' fill='white' opacity='0.5'/%3E%3Ccircle cx='18' cy='20' r='1.5' fill='white' opacity='0.35'/%3E%3Ccircle cx='19' cy='16' r='0.8' fill='white' opacity='0.25'/%3E%3C/svg%3E") 4 4, auto;
  }

  /* Dark mode pointer - bright glowing droplet with ripple */
  body.dark-mode a,
  body.dark-mode button,
  body.dark-mode [role="button"],
  body.dark-mode .wp-block-button__link,
  body.dark-mode .btn,
  body.dark-mode .button,
  body.dark-mode label[for],
  body.dark-mode select,
  body.dark-mode summary,
  body.dark-mode .menu-item > a {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Cdefs%3E%3ClinearGradient id='dropGradDarkHover' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%2300FFFF'/%3E%3Cstop offset='30%25' stop-color='%234FC3F7'/%3E%3Cstop offset='100%25' stop-color='%2300A0B0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='18' cy='24' r='12' fill='none' stroke='%2300FFFF' stroke-width='1' opacity='0.25'/%3E%3Ccircle cx='18' cy='24' r='9' fill='none' stroke='%234FC3F7' stroke-width='0.75' opacity='0.2'/%3E%3Cellipse cx='18' cy='26' rx='8' ry='3' fill='%2300D4E4' opacity='0.15'/%3E%3Cpath fill='url(%23dropGradDarkHover)' d='M18 4C18 4 9 15 9 21c0 4.97 4.03 9 9 9s9-4.03 9-9c0-6-9-17-9-17z'/%3E%3Cpath fill='white' opacity='0.8' d='M13 17c0 0 2.5-5 5-7.5c-3.5 2.5-6 7-6 11.5c0 3 1.5 5.5 3.5 7c-2.8-2-4.5-5.3-4.5-9c0-1.2 0.8-2.3 2-2z'/%3E%3Cellipse cx='14' cy='17' rx='2.5' ry='4' fill='white' opacity='0.6'/%3E%3Ccircle cx='20' cy='23' r='2' fill='white' opacity='0.4'/%3E%3Ccircle cx='22' cy='18' r='1.2' fill='white' opacity='0.3'/%3E%3Ccircle cx='16' cy='13' r='0.8' fill='white' opacity='0.25'/%3E%3C/svg%3E") 6 6, pointer;
  }

  /* Dark mode disabled */
  body.dark-mode [disabled],
  body.dark-mode .disabled,
  body.dark-mode [aria-disabled="true"] {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath fill='%23556677' d='M16 3C16 3 8 13 8 18c0 4.42 3.58 8 8 8s8-3.58 8-8c0-5-8-15-8-15z' opacity='0.6'/%3E%3Cline x1='10' y1='12' x2='22' y2='24' stroke='%23FF6666' stroke-width='2' stroke-linecap='round'/%3E%3Cellipse cx='13' cy='15' rx='2' ry='3' fill='white' opacity='0.15'/%3E%3C/svg%3E") 16 16, not-allowed;
  }

  /* ===== ENHANCED CURSOR STATES ===== */

  /*
   * Reading cursor for text content - droplet with flowing text lines
   * Suggests "read this content" - used on headings and paragraphs
   */
  h1, h2, h3, h4, h5, h6,
  .entry-title,
  .wp-block-heading,
  .site-title,
  .page-title,
  p:not([class*="button"]),
  .entry-content > p,
  .wp-block-paragraph,
  blockquote,
  .wp-block-quote,
  li:not(.menu-item):not(.product),
  .entry-summary,
  span:not([class*="icon"]):not([class*="btn"]) {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cdefs%3E%3ClinearGradient id='readGrad' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%234FC3F7'/%3E%3Cstop offset='50%25' stop-color='%230088BB'/%3E%3Cstop offset='100%25' stop-color='%23006699'/%3E%3C/linearGradient%3E%3C/defs%3E%3C!-- Flowing text lines --%3E%3Cpath d='M6 24 Q10 22 14 24 T22 24' fill='none' stroke='%230099CC' stroke-width='1.5' stroke-linecap='round' opacity='0.4'/%3E%3Cpath d='M8 27 Q11 25.5 14 27 T20 27' fill='none' stroke='%230099CC' stroke-width='1' stroke-linecap='round' opacity='0.25'/%3E%3Cpath d='M10 30 Q12 29 14 30 T18 30' fill='none' stroke='%230099CC' stroke-width='0.75' stroke-linecap='round' opacity='0.15'/%3E%3C!-- Main droplet --%3E%3Cellipse cx='14' cy='19' rx='5' ry='1.5' fill='%23000' opacity='0.08'/%3E%3Cpath fill='url(%23readGrad)' d='M14 3C14 3 7 11 7 15c0 3.87 3.13 7 7 7s7-3.13 7-7c0-4-7-12-7-12z'/%3E%3Cpath fill='white' opacity='0.55' d='M10.5 12c0 0 1.5-3 3.5-5c-2.5 1.8-4 4.5-4 7.5c0 2 0.9 3.8 2.2 5c-1.8-1.4-3-3.6-3-6c0-0.8 0.5-1.3 1.3-1.5z'/%3E%3Cellipse cx='11.5' cy='13' rx='1.5' ry='2.5' fill='white' opacity='0.4'/%3E%3Ccircle cx='16' cy='17' r='1' fill='white' opacity='0.2'/%3E%3C/svg%3E") 4 4, auto;
  }

  /* Dark mode reading cursor */
  body.dark-mode h1,
  body.dark-mode h2,
  body.dark-mode h3,
  body.dark-mode h4,
  body.dark-mode h5,
  body.dark-mode h6,
  body.dark-mode .entry-title,
  body.dark-mode .wp-block-heading,
  body.dark-mode .site-title,
  body.dark-mode .page-title,
  body.dark-mode p:not([class*="button"]),
  body.dark-mode .entry-content > p,
  body.dark-mode .wp-block-paragraph,
  body.dark-mode blockquote,
  body.dark-mode .wp-block-quote,
  body.dark-mode li:not(.menu-item):not(.product),
  body.dark-mode .entry-summary,
  body.dark-mode span:not([class*="icon"]):not([class*="btn"]) {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cdefs%3E%3ClinearGradient id='readGradDark' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%2300FFFF'/%3E%3Cstop offset='50%25' stop-color='%2300D4E4'/%3E%3Cstop offset='100%25' stop-color='%230099BB'/%3E%3C/linearGradient%3E%3C/defs%3E%3C!-- Glowing flowing text lines --%3E%3Cpath d='M6 24 Q10 22 14 24 T22 24' fill='none' stroke='%2300E5FF' stroke-width='1.5' stroke-linecap='round' opacity='0.5'/%3E%3Cpath d='M8 27 Q11 25.5 14 27 T20 27' fill='none' stroke='%2300D4E4' stroke-width='1' stroke-linecap='round' opacity='0.35'/%3E%3Cpath d='M10 30 Q12 29 14 30 T18 30' fill='none' stroke='%2300D4E4' stroke-width='0.75' stroke-linecap='round' opacity='0.2'/%3E%3C!-- Glowing droplet --%3E%3Cellipse cx='14' cy='19' rx='5' ry='1.5' fill='%2300D4E4' opacity='0.12'/%3E%3Cpath fill='url(%23readGradDark)' d='M14 3C14 3 7 11 7 15c0 3.87 3.13 7 7 7s7-3.13 7-7c0-4-7-12-7-12z'/%3E%3Cpath fill='white' opacity='0.65' d='M10.5 12c0 0 1.5-3 3.5-5c-2.5 1.8-4 4.5-4 7.5c0 2 0.9 3.8 2.2 5c-1.8-1.4-3-3.6-3-6c0-0.8 0.5-1.3 1.3-1.5z'/%3E%3Cellipse cx='11.5' cy='13' rx='1.5' ry='2.5' fill='white' opacity='0.5'/%3E%3Ccircle cx='16' cy='17' r='1' fill='white' opacity='0.3'/%3E%3C/svg%3E") 4 4, auto;
  }

  /*
   * Splash cursor for buttons - droplet hitting water with splash crown
   * Creates visual impact suggesting "click here for action"
   */
  .wp-block-button__link,
  .btn-primary,
  button[type="submit"],
  input[type="submit"],
  .woocommerce .button.alt,
  .checkout-button,
  .add_to_cart_button {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cdefs%3E%3ClinearGradient id='splashGrad' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%2300E5FF'/%3E%3Cstop offset='50%25' stop-color='%2300B8D4'/%3E%3Cstop offset='100%25' stop-color='%230088AA'/%3E%3C/linearGradient%3E%3C/defs%3E%3C!-- Outer ripple rings --%3E%3Ccircle cx='20' cy='28' r='16' fill='none' stroke='%2300D4E4' stroke-width='0.75' opacity='0.2'/%3E%3Ccircle cx='20' cy='28' r='12' fill='none' stroke='%2300D4E4' stroke-width='1' opacity='0.3'/%3E%3Ccircle cx='20' cy='28' r='8' fill='none' stroke='%2300D4E4' stroke-width='1.5' opacity='0.4'/%3E%3C!-- Splash crown droplets --%3E%3Ccircle cx='10' cy='22' r='2' fill='%234FC3F7' opacity='0.7'/%3E%3Ccircle cx='30' cy='22' r='2' fill='%234FC3F7' opacity='0.7'/%3E%3Ccircle cx='7' cy='26' r='1.5' fill='%234FC3F7' opacity='0.5'/%3E%3Ccircle cx='33' cy='26' r='1.5' fill='%234FC3F7' opacity='0.5'/%3E%3Ccircle cx='13' cy='18' r='1.5' fill='%2300D4E4' opacity='0.6'/%3E%3Ccircle cx='27' cy='18' r='1.5' fill='%2300D4E4' opacity='0.6'/%3E%3C!-- Central droplet mid-splash --%3E%3Cellipse cx='20' cy='30' rx='6' ry='2' fill='%23000' opacity='0.1'/%3E%3Cpath fill='url(%23splashGrad)' d='M20 6C20 6 12 14 12 20c0 4.42 3.58 8 8 8s8-3.58 8-8c0-6-8-14-8-14z'/%3E%3Cpath fill='white' opacity='0.7' d='M15 16c0 0 2-4 5-6c-3.5 2-5.5 5.5-5.5 10c0 2.5 1.2 4.7 3 6c-2.5-1.8-4-4.5-4-8c0-1 0.5-1.8 1.5-2z'/%3E%3Cellipse cx='16' cy='17' rx='2' ry='3' fill='white' opacity='0.5'/%3E%3Ccircle cx='22' cy='22' r='1.5' fill='white' opacity='0.3'/%3E%3C/svg%3E") 8 8, pointer;
  }

  /*
   * Wave cursor for cards and interactive blocks
   * Gentle wave pattern suggesting "explore this content"
   */
  .wp-block-group,
  .wp-block-cover,
  .wp-block-media-text,
  .wp-block-columns,
  article.post,
  .product-card,
  .water-card,
  .floating-card,
  .testimonial-card,
  .chapter-card,
  .entry-content > .wp-block-group[class*="has-background"] {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Cdefs%3E%3ClinearGradient id='waveGrad' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%234FC3F7'/%3E%3Cstop offset='60%25' stop-color='%230099CC'/%3E%3Cstop offset='100%25' stop-color='%23006688'/%3E%3C/linearGradient%3E%3C/defs%3E%3C!-- Wave lines beneath --%3E%3Cpath d='M4 28 Q9 25 14 28 T24 28 T34 28' fill='none' stroke='%230099CC' stroke-width='1' opacity='0.25'/%3E%3Cpath d='M2 31 Q8 28 14 31 T26 31 T36 31' fill='none' stroke='%230099CC' stroke-width='0.75' opacity='0.15'/%3E%3C!-- Main droplet --%3E%3Cellipse cx='18' cy='24' rx='5' ry='1.5' fill='%23000' opacity='0.1'/%3E%3Cpath fill='url(%23waveGrad)' d='M18 4C18 4 11 12 11 17c0 3.87 3.13 7 7 7s7-3.13 7-7c0-5-7-13-7-13z'/%3E%3Cpath fill='white' opacity='0.6' d='M14 14c0 0 2-3.5 4-5.5c-3 2-5 5.5-5 9c0 2.2 1 4.2 2.5 5.5c-2-1.6-3.5-4-3.5-7c0-1 0.6-1.7 2-2z'/%3E%3Cellipse cx='15' cy='15' rx='1.8' ry='2.8' fill='white' opacity='0.45'/%3E%3Ccircle cx='20' cy='19' r='1.2' fill='white' opacity='0.25'/%3E%3C/svg%3E") 5 5, auto;
  }

  /*
   * Zoom/explore cursor for images and galleries
   * Droplet with magnifying glass effect
   * Use !important to override other cursor rules
   */
  img,
  .wp-block-image img,
  .wp-block-gallery img,
  .kb-image img,
  .kb-gallery-image img,
  .entry-content img,
  .lightbox-trigger,
  .lightbox-enabled,
  figure img,
  figure.wp-block-image,
  .gallery-item img,
  .woocommerce-product-gallery img,
  .product-image img,
  .attachment-thumbnail {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Cdefs%3E%3ClinearGradient id='zoomGrad' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%234FC3F7'/%3E%3Cstop offset='100%25' stop-color='%230077BE'/%3E%3C/linearGradient%3E%3C/defs%3E%3C!-- Magnifying glass circle --%3E%3Ccircle cx='16' cy='16' r='10' fill='none' stroke='%230099CC' stroke-width='2' opacity='0.6'/%3E%3Ccircle cx='16' cy='16' r='10' fill='%2300D4E4' opacity='0.1'/%3E%3C!-- Handle --%3E%3Cline x1='24' y1='24' x2='32' y2='32' stroke='%230077BE' stroke-width='3' stroke-linecap='round' opacity='0.7'/%3E%3C!-- Droplet inside lens --%3E%3Cpath fill='url(%23zoomGrad)' d='M16 8C16 8 11 13 11 16c0 2.76 2.24 5 5 5s5-2.24 5-5c0-3-5-8-5-8z'/%3E%3Cpath fill='white' opacity='0.6' d='M13 14c0 0 1.5-2.5 3-4c-2 1.5-3.5 4-3.5 6.5c0 1.5 0.8 3 2 4c-1.5-1.2-2.5-3-2.5-5c0-0.7 0.4-1.2 1-1.5z'/%3E%3Cellipse cx='14' cy='14' rx='1.2' ry='2' fill='white' opacity='0.4'/%3E%3C/svg%3E") 16 16, zoom-in !important;
  }

  /* ===== DARK MODE ENHANCED CURSORS ===== */

  /* Dark mode splash cursor for buttons */
  body.dark-mode .wp-block-button__link,
  body.dark-mode .btn-primary,
  body.dark-mode button[type="submit"],
  body.dark-mode input[type="submit"],
  body.dark-mode .woocommerce .button.alt,
  body.dark-mode .checkout-button,
  body.dark-mode .add_to_cart_button {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cdefs%3E%3ClinearGradient id='splashGradDark' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%2300FFFF'/%3E%3Cstop offset='50%25' stop-color='%2300E5FF'/%3E%3Cstop offset='100%25' stop-color='%2300B8D4'/%3E%3C/linearGradient%3E%3C/defs%3E%3C!-- Glowing outer rings --%3E%3Ccircle cx='20' cy='28' r='16' fill='none' stroke='%2300FFFF' stroke-width='0.75' opacity='0.25'/%3E%3Ccircle cx='20' cy='28' r='12' fill='none' stroke='%2300FFFF' stroke-width='1' opacity='0.35'/%3E%3Ccircle cx='20' cy='28' r='8' fill='none' stroke='%2300E5FF' stroke-width='1.5' opacity='0.5'/%3E%3C!-- Glowing splash crown --%3E%3Ccircle cx='10' cy='22' r='2' fill='%2300FFFF' opacity='0.8'/%3E%3Ccircle cx='30' cy='22' r='2' fill='%2300FFFF' opacity='0.8'/%3E%3Ccircle cx='7' cy='26' r='1.5' fill='%234FC3F7' opacity='0.6'/%3E%3Ccircle cx='33' cy='26' r='1.5' fill='%234FC3F7' opacity='0.6'/%3E%3Ccircle cx='13' cy='18' r='1.5' fill='%2300E5FF' opacity='0.7'/%3E%3Ccircle cx='27' cy='18' r='1.5' fill='%2300E5FF' opacity='0.7'/%3E%3C!-- Glowing central droplet --%3E%3Cellipse cx='20' cy='30' rx='6' ry='2' fill='%2300D4E4' opacity='0.2'/%3E%3Cpath fill='url(%23splashGradDark)' d='M20 6C20 6 12 14 12 20c0 4.42 3.58 8 8 8s8-3.58 8-8c0-6-8-14-8-14z'/%3E%3Cpath fill='white' opacity='0.8' d='M15 16c0 0 2-4 5-6c-3.5 2-5.5 5.5-5.5 10c0 2.5 1.2 4.7 3 6c-2.5-1.8-4-4.5-4-8c0-1 0.5-1.8 1.5-2z'/%3E%3Cellipse cx='16' cy='17' rx='2' ry='3' fill='white' opacity='0.6'/%3E%3Ccircle cx='22' cy='22' r='1.5' fill='white' opacity='0.4'/%3E%3C/svg%3E") 8 8, pointer;
  }

  /* Dark mode wave cursor for cards */
  body.dark-mode .wp-block-group,
  body.dark-mode .wp-block-cover,
  body.dark-mode .wp-block-media-text,
  body.dark-mode article.post,
  body.dark-mode .water-card,
  body.dark-mode .floating-card,
  body.dark-mode .testimonial-card,
  body.dark-mode .chapter-card {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Cdefs%3E%3ClinearGradient id='waveGradDark' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%2300FFFF'/%3E%3Cstop offset='60%25' stop-color='%2300D4E4'/%3E%3Cstop offset='100%25' stop-color='%230099AA'/%3E%3C/linearGradient%3E%3C/defs%3E%3C!-- Glowing wave lines --%3E%3Cpath d='M4 28 Q9 25 14 28 T24 28 T34 28' fill='none' stroke='%2300FFFF' stroke-width='1' opacity='0.3'/%3E%3Cpath d='M2 31 Q8 28 14 31 T26 31 T36 31' fill='none' stroke='%2300D4E4' stroke-width='0.75' opacity='0.2'/%3E%3C!-- Glowing droplet --%3E%3Cellipse cx='18' cy='24' rx='5' ry='1.5' fill='%2300D4E4' opacity='0.15'/%3E%3Cpath fill='url(%23waveGradDark)' d='M18 4C18 4 11 12 11 17c0 3.87 3.13 7 7 7s7-3.13 7-7c0-5-7-13-7-13z'/%3E%3Cpath fill='white' opacity='0.7' d='M14 14c0 0 2-3.5 4-5.5c-3 2-5 5.5-5 9c0 2.2 1 4.2 2.5 5.5c-2-1.6-3.5-4-3.5-7c0-1 0.6-1.7 2-2z'/%3E%3Cellipse cx='15' cy='15' rx='1.8' ry='2.8' fill='white' opacity='0.55'/%3E%3Ccircle cx='20' cy='19' r='1.2' fill='white' opacity='0.35'/%3E%3C/svg%3E") 5 5, auto;
  }

  /* Dark mode zoom cursor for images */
  body.dark-mode img,
  body.dark-mode .wp-block-image img,
  body.dark-mode .wp-block-gallery img,
  body.dark-mode .kb-image img,
  body.dark-mode .kb-gallery-image img,
  body.dark-mode .entry-content img,
  body.dark-mode .lightbox-trigger,
  body.dark-mode .lightbox-enabled,
  body.dark-mode figure img,
  body.dark-mode figure.wp-block-image,
  body.dark-mode .gallery-item img,
  body.dark-mode .woocommerce-product-gallery img,
  body.dark-mode .product-image img,
  body.dark-mode .attachment-thumbnail {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Cdefs%3E%3ClinearGradient id='zoomGradDark' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%2300FFFF'/%3E%3Cstop offset='100%25' stop-color='%2300D4E4'/%3E%3C/linearGradient%3E%3C/defs%3E%3C!-- Glowing magnifying glass --%3E%3Ccircle cx='16' cy='16' r='10' fill='none' stroke='%2300FFFF' stroke-width='2' opacity='0.5'/%3E%3Ccircle cx='16' cy='16' r='10' fill='%2300D4E4' opacity='0.15'/%3E%3Cline x1='24' y1='24' x2='32' y2='32' stroke='%2300E5FF' stroke-width='3' stroke-linecap='round' opacity='0.6'/%3E%3C!-- Glowing droplet inside --%3E%3Cpath fill='url(%23zoomGradDark)' d='M16 8C16 8 11 13 11 16c0 2.76 2.24 5 5 5s5-2.24 5-5c0-3-5-8-5-8z'/%3E%3Cpath fill='white' opacity='0.7' d='M13 14c0 0 1.5-2.5 3-4c-2 1.5-3.5 4-3.5 6.5c0 1.5 0.8 3 2 4c-1.5-1.2-2.5-3-2.5-5c0-0.7 0.4-1.2 1-1.5z'/%3E%3Cellipse cx='14' cy='14' rx='1.2' ry='2' fill='white' opacity='0.5'/%3E%3C/svg%3E") 16 16, zoom-in !important;
  }
}

/* ====================
   KONAMI CODE EASTER EGG
   ↑↑↓↓←→←→BA triggers water world
   ==================== */

/* Container for the easter egg effect */
.konami-water-world {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 99999;
  overflow: hidden;
}

/* Rain drops */
.konami-rain {
  position: absolute;
  top: -100px;
  width: 2px;
  height: 80px;
  background: linear-gradient(180deg, transparent 0%, rgba(79, 195, 247, 0.6) 50%, rgba(0, 180, 216, 0.8) 100%);
  border-radius: 0 0 2px 2px;
  animation: konamiRainFall linear infinite;
  opacity: 0;
}

@keyframes konamiRainFall {
  0% {
    transform: translateY(-100px) rotate(15deg);
    opacity: 0;
  }
  10% {
    opacity: 0.8;
  }
  90% {
    opacity: 0.6;
  }
  100% {
    transform: translateY(110vh) rotate(15deg);
    opacity: 0;
  }
}

/* Splash effect at bottom */
.konami-splash {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 60px;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 180, 216, 0.1) 50%, rgba(79, 195, 247, 0.2) 100%);
  animation: konamiSplashWave 2s ease-in-out infinite;
}

@keyframes konamiSplashWave {
  0%, 100% {
    transform: scaleY(1);
  }
  50% {
    transform: scaleY(1.3);
  }
}

/* Swimming whale */
.konami-whale {
  position: absolute;
  font-size: 80px;
  top: 30%;
  animation: konamiWhaleSwim 8s ease-in-out forwards;
  filter: drop-shadow(0 10px 30px rgba(0, 119, 190, 0.4));
  z-index: 100000;
}

@keyframes konamiWhaleSwim {
  0% {
    left: -150px;
    transform: translateY(0) rotate(5deg);
  }
  25% {
    transform: translateY(-30px) rotate(-5deg);
  }
  50% {
    transform: translateY(20px) rotate(5deg);
  }
  75% {
    transform: translateY(-20px) rotate(-3deg);
  }
  100% {
    left: calc(100vw + 150px);
    transform: translateY(0) rotate(5deg);
  }
}

/* Bubbles rising */
.konami-bubble {
  position: absolute;
  bottom: -50px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.8) 0%, rgba(79, 195, 247, 0.4) 50%, rgba(0, 180, 216, 0.2) 100%);
  border: 1px solid rgba(255, 255, 255, 0.3);
  animation: konamiBubbleRise ease-in-out infinite;
  opacity: 0;
}

@keyframes konamiBubbleRise {
  0% {
    transform: translateY(0) scale(0.5);
    opacity: 0;
  }
  10% {
    opacity: 0.8;
  }
  50% {
    transform: translateY(-50vh) scale(1) translateX(20px);
  }
  100% {
    transform: translateY(-110vh) scale(1.2) translateX(-20px);
    opacity: 0;
  }
}

/* Achievement toast notification */
.konami-toast {
  position: fixed;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%) translateY(100px);
  background: linear-gradient(135deg, rgba(0, 119, 190, 0.95) 0%, rgba(0, 180, 216, 0.95) 100%);
  color: white;
  padding: 1rem 2rem;
  border-radius: 50px;
  font-size: 1.1rem;
  font-weight: 600;
  box-shadow: 0 10px 40px rgba(0, 119, 190, 0.4), 0 0 30px rgba(0, 212, 228, 0.3);
  z-index: 100001;
  opacity: 0;
  animation: konamiToastShow 4s ease-out forwards;
  text-align: center;
  white-space: nowrap;
}

.konami-toast::before {
  content: '🐋';
  margin-right: 0.5rem;
}

.konami-toast::after {
  content: '💧';
  margin-left: 0.5rem;
}

@keyframes konamiToastShow {
  0% {
    transform: translateX(-50%) translateY(100px);
    opacity: 0;
  }
  15% {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
  }
  85% {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
  }
  100% {
    transform: translateX(-50%) translateY(100px);
    opacity: 0;
  }
}

/* Dark mode adjustments */
body.dark-mode .konami-rain {
  background: linear-gradient(180deg, transparent 0%, rgba(0, 212, 228, 0.5) 50%, rgba(79, 195, 247, 0.7) 100%);
}

body.dark-mode .konami-splash {
  background: linear-gradient(180deg, transparent 0%, rgba(0, 212, 228, 0.15) 50%, rgba(79, 195, 247, 0.25) 100%);
}

body.dark-mode .konami-whale {
  filter: drop-shadow(0 10px 40px rgba(0, 212, 228, 0.5));
}

body.dark-mode .konami-bubble {
  background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.9) 0%, rgba(0, 212, 228, 0.4) 50%, rgba(79, 195, 247, 0.2) 100%);
}

body.dark-mode .konami-toast {
  background: linear-gradient(135deg, rgba(0, 212, 228, 0.95) 0%, rgba(79, 195, 247, 0.95) 100%);
  color: #0A1628;
  box-shadow: 0 10px 40px rgba(0, 212, 228, 0.4), 0 0 40px rgba(0, 212, 228, 0.5);
}

/* Reduced motion - simpler effect */
@media (prefers-reduced-motion: reduce) {
  .konami-rain,
  .konami-bubble {
    display: none;
  }

  .konami-whale {
    animation-duration: 12s;
  }

  @keyframes konamiWhaleSwim {
    0% {
      left: -150px;
      transform: none;
    }
    100% {
      left: calc(100vw + 150px);
      transform: none;
    }
  }
}

/* ====================
   LINK HOVER WAVE UNDERLINE
   Animated wave instead of static underline
   ==================== */

/* Content links - wave underline effect */
.entry-content a:not(.wp-block-button__link):not(.btn):not(.button):not([class*="wp-element"]),
.comment-content a,
.widget a:not(.wp-block-button__link),
.footer-widget a {
  position: relative;
  text-decoration: none;
  background-image: linear-gradient(
    90deg,
    rgba(0, 119, 190, 0.3) 0%,
    rgba(0, 180, 216, 0.5) 25%,
    rgba(79, 195, 247, 0.5) 50%,
    rgba(0, 180, 216, 0.5) 75%,
    rgba(0, 119, 190, 0.3) 100%
  );
  background-size: 200% 2px;
  background-position: 100% 100%;
  background-repeat: no-repeat;
  padding-bottom: 2px;
  transition: background-position 0.4s ease-out, color 0.3s ease;
}

.entry-content a:not(.wp-block-button__link):not(.btn):not(.button):not([class*="wp-element"]):hover,
.comment-content a:hover,
.widget a:not(.wp-block-button__link):hover,
.footer-widget a:hover {
  background-position: 0% 100%;
  color: #0077BE;
}

/* Wave animation on hover */
.entry-content a:not(.wp-block-button__link):not(.btn):not(.button):not([class*="wp-element"]):hover,
.comment-content a:hover {
  animation: linkWaveShimmer 1.5s ease-in-out infinite;
}

@keyframes linkWaveShimmer {
  0%, 100% {
    background-position: 0% 100%;
  }
  50% {
    background-position: 100% 100%;
  }
}

/* Dark mode link underline */
body.dark-mode .entry-content a:not(.wp-block-button__link):not(.btn):not(.button):not([class*="wp-element"]),
body.dark-mode .comment-content a,
body.dark-mode .widget a:not(.wp-block-button__link),
body.dark-mode .footer-widget a {
  background-image: linear-gradient(
    90deg,
    rgba(0, 212, 228, 0.3) 0%,
    rgba(79, 195, 247, 0.5) 25%,
    rgba(0, 255, 255, 0.5) 50%,
    rgba(79, 195, 247, 0.5) 75%,
    rgba(0, 212, 228, 0.3) 100%
  );
}

body.dark-mode .entry-content a:not(.wp-block-button__link):not(.btn):not(.button):not([class*="wp-element"]):hover,
body.dark-mode .comment-content a:hover {
  color: #4FC3F7;
}

/* ====================
   BUTTON WATER FILL EFFECT
   Rising water fill on hover
   ==================== */

/* Base button setup for water fill - exclude liquid-morph buttons (have their own effect) */
.wp-block-button__link:not(.liquid-morph),
.btn-water-fill:not(.liquid-morph),
button.water-fill:not(.liquid-morph),
.woocommerce a.button:not(.liquid-morph),
.woocommerce button.button:not(.liquid-morph),
.woocommerce input.button:not(.liquid-morph) {
  position: relative;
  overflow: hidden;
  z-index: 1;
}

/* Water fill pseudo-element - exclude liquid-morph */
.wp-block-button__link:not(.liquid-morph)::before,
.btn-water-fill:not(.liquid-morph)::before,
button.water-fill:not(.liquid-morph)::before,
.woocommerce a.button:not(.liquid-morph)::before,
.woocommerce button.button:not(.liquid-morph)::before,
.woocommerce input.button:not(.liquid-morph)::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0%;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.2) 0%,
    rgba(0, 180, 216, 0.3) 50%,
    rgba(0, 119, 190, 0.4) 100%
  );
  transition: height 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  z-index: -1;
  border-radius: inherit;
}

/* Fill on hover - exclude liquid-morph */
.wp-block-button__link:not(.liquid-morph):hover::before,
.btn-water-fill:not(.liquid-morph):hover::before,
button.water-fill:not(.liquid-morph):hover::before,
.woocommerce a.button:not(.liquid-morph):hover::before,
.woocommerce button.button:not(.liquid-morph):hover::before,
.woocommerce input.button:not(.liquid-morph):hover::before {
  height: 100%;
}

/* Wave surface line at top of fill - exclude liquid-morph */
.wp-block-button__link:not(.liquid-morph)::after,
.btn-water-fill:not(.liquid-morph)::after,
button.water-fill:not(.liquid-morph)::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: -10%;
  width: 120%;
  height: 4px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.6) 20%,
    rgba(255, 255, 255, 0.8) 50%,
    rgba(255, 255, 255, 0.6) 80%,
    transparent 100%
  );
  opacity: 0;
  transition: bottom 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.3s ease;
  z-index: 0;
  border-radius: 2px;
}

.wp-block-button__link:not(.liquid-morph):hover::after,
.btn-water-fill:not(.liquid-morph):hover::after,
button.water-fill:not(.liquid-morph):hover::after {
  bottom: calc(100% - 4px);
  opacity: 1;
  animation: waterSurfaceWave 1s ease-in-out infinite;
}

@keyframes waterSurfaceWave {
  0%, 100% {
    transform: translateX(0) scaleY(1);
  }
  25% {
    transform: translateX(-2%) scaleY(1.2);
  }
  50% {
    transform: translateX(2%) scaleY(0.8);
  }
  75% {
    transform: translateX(-1%) scaleY(1.1);
  }
}

/* Dark mode button fill - exclude liquid-morph */
body.dark-mode .wp-block-button__link:not(.liquid-morph)::before,
body.dark-mode .btn-water-fill:not(.liquid-morph)::before,
body.dark-mode button.water-fill:not(.liquid-morph)::before,
body.dark-mode .woocommerce a.button:not(.liquid-morph)::before,
body.dark-mode .woocommerce button.button:not(.liquid-morph)::before {
  background: linear-gradient(
    180deg,
    rgba(0, 212, 228, 0.15) 0%,
    rgba(0, 212, 228, 0.25) 50%,
    rgba(79, 195, 247, 0.35) 100%
  );
}

/* ====================
   CARD FLOATING DEPTH EFFECT
   Cards float on water with animated shadow
   ==================== */

/* Apply to common card elements */
.wp-block-group.is-style-card,
.water-card,
.floating-card,
.woocommerce ul.products li.product,
.featured-excerpt,
.water-excerpt,
.practice-card,
article.type-post,
.wp-block-column.has-background {
  position: relative;
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 0.4s ease;
}

/* Floating shadow - simulates water depth */
.wp-block-group.is-style-card::after,
.water-card::after,
.floating-card::after,
.woocommerce ul.products li.product::after,
.featured-excerpt::after,
.water-excerpt::after {
  content: '';
  position: absolute;
  bottom: -10px;
  left: 10%;
  width: 80%;
  height: 20px;
  background: radial-gradient(
    ellipse at center,
    rgba(0, 119, 190, 0.2) 0%,
    rgba(0, 180, 216, 0.1) 50%,
    transparent 70%
  );
  border-radius: 50%;
  filter: blur(8px);
  opacity: 0.6;
  transition: all 0.4s ease;
  z-index: -1;
}

/* Hover - rise up and shadow spreads */
.wp-block-group.is-style-card:hover,
.water-card:hover,
.floating-card:hover,
.woocommerce ul.products li.product:hover,
.featured-excerpt:hover,
.water-excerpt:hover {
  transform: translateY(-8px);
}

.wp-block-group.is-style-card:hover::after,
.water-card:hover::after,
.floating-card:hover::after,
.woocommerce ul.products li.product:hover::after,
.featured-excerpt:hover::after,
.water-excerpt:hover::after {
  bottom: -18px;
  left: 5%;
  width: 90%;
  height: 25px;
  opacity: 0.4;
  filter: blur(12px);
}

/* Subtle idle floating animation */
.water-card,
.floating-card {
  animation: cardFloat 6s ease-in-out infinite;
}

@keyframes cardFloat {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}

/* Pause floating on hover for the lift effect */
.water-card:hover,
.floating-card:hover {
  animation: none;
}

/* Dark mode card shadows */
body.dark-mode .wp-block-group.is-style-card::after,
body.dark-mode .water-card::after,
body.dark-mode .floating-card::after,
body.dark-mode .woocommerce ul.products li.product::after,
body.dark-mode .featured-excerpt::after,
body.dark-mode .water-excerpt::after {
  background: radial-gradient(
    ellipse at center,
    rgba(0, 212, 228, 0.25) 0%,
    rgba(79, 195, 247, 0.15) 50%,
    transparent 70%
  );
}

/* Water ripple on card hover - subtle ring effect */
.water-card::before,
.floating-card::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  border: 2px solid rgba(0, 180, 216, 0.2);
  border-radius: inherit;
  transform: translate(-50%, -50%) scale(1);
  opacity: 0;
  transition: all 0.4s ease;
  pointer-events: none;
}

.water-card:hover::before,
.floating-card:hover::before {
  transform: translate(-50%, -50%) scale(1.05);
  opacity: 1;
  animation: cardRipple 1.5s ease-out infinite;
}

@keyframes cardRipple {
  0% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.5;
  }
  100% {
    transform: translate(-50%, -50%) scale(1.15);
    opacity: 0;
  }
}

body.dark-mode .water-card::before,
body.dark-mode .floating-card::before {
  border-color: rgba(0, 212, 228, 0.3);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .entry-content a:not(.wp-block-button__link):hover,
  .comment-content a:hover {
    animation: none;
  }

  .wp-block-button__link:not(.liquid-morph):hover::after,
  .btn-water-fill:not(.liquid-morph):hover::after {
    animation: none;
  }

  .water-card,
  .floating-card {
    animation: none;
  }

  .water-card:hover::before,
  .floating-card:hover::before {
    animation: none;
    opacity: 0.3;
  }
}
