/*
Theme Name: ELETROPRINT 3D Cyberpunk Theme
Author: WordPress Telex
Description: A cyberpunk-futuristic WordPress block theme for ELETROPRINT 3D, a 3D printing and personalization technology brand. Deep black void, triple-neon accent triad, glassmorphism surfaces, and immersive animated effects.
Version: 28.0.0
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: eletroprint1
Tags: block-theme, full-site-editing, dark, cyberpunk, e-commerce
*/

/* === Global Image Auto-Fit Rules === */
/* All images auto-adjust to their container — no overflow, no distortion */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

figure img,
.wp-block-image img,
.wp-block-cover img:not(.wp-block-cover__image-background) {
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

/* Product gallery and WooCommerce images — always fit within container */
.woocommerce-product-gallery img,
.woocommerce-product-gallery .woocommerce-product-gallery__image img,
.woocommerce-product-gallery .flex-viewport img,
.woocommerce-product-gallery .flex-control-thumbs img,
.wc-block-woocommerce-product-image-gallery img,
.wp-block-woocommerce-product-image-gallery img {
  max-width: 100%;
  height: auto;
}

/* Zoom / hover zoom image — constrain to viewport */
.woocommerce-product-gallery .zoomImg {
  max-width: 100vw;
  max-height: 90vh;
  object-fit: contain;
}

/* Gallery card images — fill the card proportionally */
.ep-glass-card img,
.ep-neon-frame img {
  max-width: 100%;
  height: auto;
}

/* Lightbox / PhotoSwipe images — always visible without scroll */
.pswp__img,
.pswp__zoom-wrap img,
.ep-gc-lightbox-inner img {
  max-width: 90vw !important;
  max-height: 85vh !important;
  object-fit: contain !important;
  width: auto !important;
  height: auto !important;
}

/* Cover block background images — fill via object-fit cover */
.wp-block-cover__image-background {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* === CSS Custom Properties === */
:root {
  --ep-black-deep: #050510;
  --ep-black-mid: #0A0A1A;
  --ep-cyan: #00E5FF;
  --ep-cyan-glow: rgba(0,229,255,0.5);
  --ep-cyan-dim: rgba(0,229,255,0.12);
  --ep-magenta: #FF00AA;
  --ep-magenta-glow: rgba(255,0,170,0.45);
  --ep-purple: #9B59FF;
  --ep-purple-glow: rgba(155,89,255,0.4);
  --ep-metallic-white: #F0F0F8;
  --ep-metallic-gray: #B0B0C8;
  --ep-gray-dark: #1A1A2E;
  --ep-glass-bg: rgba(10, 10, 30, 0.55);
  --ep-glass-border: rgba(0, 229, 255, 0.12);
}

/* === Global Resets === */
*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  overflow-x: hidden;
}

/* When mega menu is open, allow the fixed overlay to render above everything */
body.ep-mega-menu-open {
  overflow: hidden !important;
}

.wp-site-blocks > footer {
  margin-block-start: 0;
}

/* === Sticky Header === */
header.wp-block-template-part {
  position: sticky;
  top: 0;
  z-index: 100;
}

.ep-site-header {
  backdrop-filter: blur(20px) saturate(130%);
  -webkit-backdrop-filter: blur(20px) saturate(130%);
  background: rgba(5, 5, 16, 0.82) !important;
  border-bottom: 1px solid var(--ep-glass-border);
  transition: background 0.3s ease, box-shadow 0.3s ease;
}

body.is-scrolled .ep-site-header {
  background: rgba(5, 5, 16, 0.94) !important;
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.4);
}

.ep-site-header::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--ep-cyan) 20%, var(--ep-magenta) 50%, var(--ep-purple) 80%, transparent 100%);
  opacity: 0.4;
  pointer-events: none;
}

/* Header logo text glow */
.ep-header-logo-text {
  text-shadow: 0 0 16px var(--ep-cyan-glow), 0 0 40px rgba(0,229,255,0.15);
  margin: 0 !important;
  line-height: 1 !important;
}

.ep-header-logo-text a {
  text-decoration: none !important;
  color: var(--ep-cyan) !important;
}

.ep-header-logo-text a:hover {
  color: var(--ep-cyan) !important;
  text-shadow: 0 0 20px var(--ep-cyan-glow), 0 0 50px rgba(0,229,255,0.25);
}

/* === Header Site Logo (Official Image Logo) === */
.ep-header-site-logo {
  margin: 0 !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center;
}

.ep-header-site-logo .wp-block-site-logo {
  margin: 0 !important;
  line-height: 1 !important;
}

.ep-header-site-logo img,
.ep-header-site-logo .custom-logo {
  max-height: 48px !important;
  width: auto !important;
  height: auto !important;
  display: block;
  filter: drop-shadow(0 0 12px rgba(0,229,255,0.35)) drop-shadow(0 0 30px rgba(0,229,255,0.1));
  transition: filter 0.4s ease, transform 0.4s ease;
}

.ep-header-site-logo img:hover,
.ep-header-site-logo .custom-logo:hover {
  filter: drop-shadow(0 0 18px rgba(0,229,255,0.5)) drop-shadow(0 0 45px rgba(0,229,255,0.2));
  transform: scale(1.03);
}

.ep-header-site-logo a {
  display: flex;
  align-items: center;
  text-decoration: none !important;
  line-height: 1;
}

/* Mobile: slightly smaller logo */
@media (max-width: 768px) {
  .ep-header-site-logo img,
  .ep-header-site-logo .custom-logo {
    max-height: 36px !important;
  }
}

@media (max-width: 480px) {
  .ep-header-site-logo img,
  .ep-header-site-logo .custom-logo {
    max-height: 30px !important;
  }
}

/* Fallback: if no custom logo is set, site-logo block shows site title text */
.ep-header-site-logo .wp-block-site-logo:not(:has(img)) {
  font-family: 'Orbitron', sans-serif;
  font-weight: 900;
  font-size: 1.35rem;
  letter-spacing: 0.06em;
  color: var(--ep-cyan);
  text-shadow: 0 0 16px var(--ep-cyan-glow);
}

.ep-header-site-logo .wp-block-site-logo:not(:has(img)) a {
  color: var(--ep-cyan) !important;
  text-decoration: none !important;
}

/* When site-logo has an image, hide the fallback site-title */
.ep-header-site-logo + .ep-header-logo-text {
  display: block !important;
}

/* When site-logo block renders an image, hide the text fallback */
.ep-header-site-logo:has(img) + .ep-header-logo-text {
  display: none !important;
}

/* When site-logo block is empty (no logo set), hide it and show the text */
.ep-header-site-logo .wp-block-site-logo:not(:has(img)):empty {
  display: none;
}

/* Mega menu fallback link styling */
.ep-mega-menu-fallback a {
  transition: color 0.3s ease;
}

.ep-mega-menu-fallback a:hover {
  color: #00E5FF !important;
}

/* Navigation neon underline hover */
.ep-site-header .wp-block-navigation a {
  position: relative;
  text-decoration: none !important;
  transition: color 0.3s ease;
}

.ep-site-header .wp-block-navigation a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 1px;
  background: var(--ep-cyan);
  box-shadow: 0 0 6px var(--ep-cyan-glow);
  transition: width 0.3s ease;
}

.ep-site-header .wp-block-navigation a:hover::after {
  width: 100%;
}

.ep-site-header .wp-block-navigation a:hover {
  color: var(--ep-cyan) !important;
}

/* === Hero Section === */
.ep-hero-section {
  position: relative;
  overflow: hidden;
}

.ep-hero-section::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(ellipse 70% 60% at 50% 40%, transparent 0%, var(--ep-black-deep) 100%),
    linear-gradient(180deg, rgba(5,5,16,0.3) 0%, transparent 30%, transparent 70%, rgba(5,5,16,0.95) 100%);
  pointer-events: none;
}

.ep-hero-section .wp-block-cover__inner-container {
  z-index: 5;
  position: relative;
}

/* Hero HUD grid overlay */
.ep-hero-grid-overlay {
  position: relative;
}

.ep-hero-grid-overlay::before {
  content: '';
  position: absolute;
  top: 30%;
  left: -20%;
  right: -20%;
  bottom: -60%;
  background:
    linear-gradient(90deg, rgba(0,229,255,0.05) 1px, transparent 1px),
    linear-gradient(180deg, rgba(0,229,255,0.05) 1px, transparent 1px);
  background-size: 80px 80px;
  transform: perspective(600px) rotateX(55deg);
  transform-origin: center top;
  opacity: 0.5;
  pointer-events: none;
  z-index: 0;
}

/* Scanlines overlay */
.ep-scanlines::after {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    180deg,
    transparent 0px,
    transparent 3px,
    rgba(0,229,255,0.012) 3px,
    rgba(0,229,255,0.012) 4px
  );
  pointer-events: none;
  z-index: 2;
}

/* Neon bottom bar on hero */
.ep-neon-bar-bottom {
  position: relative;
}

.ep-neon-bar-bottom::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--ep-cyan), var(--ep-magenta), var(--ep-purple));
  opacity: 0.7;
  box-shadow: 0 0 12px rgba(0,229,255,0.3), 0 0 24px rgba(255,0,170,0.2);
  z-index: 10;
}

/* === Glassmorphism Cards === */
.ep-glass-card {
  background: rgba(12, 12, 35, 0.82) !important;
  border: 1px solid rgba(0, 229, 255, 0.18) !important;
  backdrop-filter: blur(18px) saturate(130%);
  -webkit-backdrop-filter: blur(18px) saturate(130%);
  border-radius: 16px !important;
  transition: border-color 0.4s ease, box-shadow 0.4s ease, transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  overflow: hidden;
  position: relative;
  will-change: transform;
}

.ep-glass-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 200%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0,229,255,0.15), rgba(255,0,170,0.1), transparent);
  pointer-events: none;
  z-index: 1;
  animation: ep-shimmer-line 6s ease-in-out infinite;
}

@keyframes ep-shimmer-line {
  0% { transform: translateX(-30%); }
  100% { transform: translateX(30%); }
}

/* Holographic corner accents on cards */
.ep-glass-card::after {
  content: '';
  position: absolute;
  top: 8px;
  left: 8px;
  width: 16px;
  height: 16px;
  border-left: 1px solid rgba(0,229,255,0.15);
  border-top: 1px solid rgba(0,229,255,0.15);
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.4s ease;
}

.ep-glass-card:hover::after {
  opacity: 1;
}

.ep-glass-card:hover {
  border-color: rgba(0,229,255,0.4) !important;
  box-shadow: 0 12px 50px rgba(0,229,255,0.14), 0 0 30px rgba(0,229,255,0.12), inset 0 0 30px rgba(0,229,255,0.06);
  transform: translateY(-4px);
}

/* Magenta accent glass card variant */
.ep-glass-card-magenta {
  border-color: rgba(255,0,170,0.15) !important;
}

.ep-glass-card-magenta:hover {
  border-color: rgba(255,0,170,0.35) !important;
  box-shadow: 0 0 30px rgba(255,0,170,0.14), inset 0 0 20px rgba(255,0,170,0.05);
}

/* Purple accent glass card variant */
.ep-glass-card-purple {
  border-color: rgba(155,89,255,0.15) !important;
}

.ep-glass-card-purple:hover {
  border-color: rgba(155,89,255,0.35) !important;
  box-shadow: 0 0 30px rgba(155,89,255,0.14), inset 0 0 20px rgba(155,89,255,0.05);
}

/* === Glass Card Text Visibility === */
.ep-glass-card p,
.ep-glass-card .has-metallic-gray-color {
  color: #E8E8F5 !important;
  font-size: 0.95rem;
  line-height: 1.7;
}

.ep-glass-card h3,
.ep-glass-card h4,
.ep-glass-card .has-metallic-white-color {
  color: #FFFFFF !important;
}

/* === GLOBAL TEXT CONTRAST BOOST v6 === */
/* All paragraph text inside dark sections — significantly brighter for readability */
/* The original metallic-gray (#9A9AAE) is too dark against the #050510 background.
   Boosted to #E0E0F5 site-wide so text is always clearly readable. */
.has-metallic-gray-color {
  color: #E0E0F5 !important;
}

/* Paragraphs inside full-width sections */
.alignfull p:not(.ep-hud-label):not(.ep-stat-number),
.wp-block-group.alignfull p:not(.ep-hud-label):not(.ep-stat-number),
.ep-section-dark p:not(.ep-hud-label):not(.ep-stat-number),
.ep-section-gradient p:not(.ep-hud-label):not(.ep-stat-number) {
  color: #E8E8FA;
}

/* Cover block paragraphs — bright white-ish for max readability on dark overlays */
.wp-block-cover__inner-container p,
.wp-block-cover__inner-container .has-metallic-gray-color {
  color: #F0F0FF !important;
}

/* Glass card paragraphs — bright white for clear readability inside dark glass cards */
.ep-glass-card p:not(.ep-hud-label):not(.ep-stat-number):not(.has-cyan-neon-color):not(.has-magenta-color):not(.has-purple-electric-color) {
  color: #F0F0FF !important;
}

/* FAQ details — bright answers for easy reading */
.wp-block-details p {
  color: #F0F0FF !important;
}

/* FAQ summary questions — ensure always bright white */
.wp-block-details summary {
  color: #FFFFFF !important;
}

/* Footer text boost — brighter for readability on dark footer */
.ep-site-footer p,
.ep-site-footer .has-metallic-gray-color {
  color: #E8E8FA !important;
}

/* List items inside dark sections — bright enough to read easily */
.alignfull li,
.ep-section-dark li,
.ep-section-gradient li,
.ep-glass-card li {
  color: #E8E8FA;
}

.ep-glass-card .has-cyan-neon-color {
  color: #00E5FF !important;
  text-shadow: 0 0 8px rgba(0,229,255,0.3);
}

.ep-glass-card .has-magenta-color {
  color: #FF00AA !important;
  text-shadow: 0 0 8px rgba(255,0,170,0.3);
}

.ep-glass-card .has-purple-electric-color {
  color: #9B59FF !important;
  text-shadow: 0 0 8px rgba(155,89,255,0.3);
}

/* === Desktop Scale Boost === */
@media (min-width: 1200px) {
  .ep-glass-card {
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
  }

  .ep-glass-card h3 {
    font-size: 1.25rem !important;
  }

  .ep-glass-card h4 {
    font-size: 1.1rem !important;
  }

  .ep-glass-card p {
    font-size: 1rem !important;
    line-height: 1.75 !important;
  }

  .ep-hud-label {
    font-size: 0.72rem !important;
    letter-spacing: 0.4em !important;
  }

  .ep-stat-number {
    font-size: clamp(2.5rem, 5vw, 4rem) !important;
  }

  .ep-hero-section .wp-block-cover__inner-container {
    max-width: 900px;
    margin: 0 auto;
  }

  .ep-btn-cyan .wp-block-button__link,
  .ep-btn-magenta .wp-block-button__link,
  .ep-btn-purple .wp-block-button__link,
  .ep-btn-solid-cyan .wp-block-button__link {
    font-size: 0.78rem;
    padding: 16px 34px;
  }

  .ep-neon-frame img {
    border-radius: 16px;
  }

  /* Larger section headings on desktop */
  .alignfull h2.wp-block-heading {
    font-size: clamp(2rem, 3.5vw, 2.75rem) !important;
  }

  /* Wider columns gap on large screens */
  .wp-block-columns.equal-cards {
    gap: var(--wp--preset--spacing--40);
  }

  /* Bigger category card images */
  .ep-glass-card figure.wp-block-image img {
    height: 240px;
    object-fit: cover;
  }

  /* Testimonial cards bigger text */
  .ep-glass-card p[style*="italic"] {
    font-size: 0.95rem !important;
  }
}

/* === Equal Cards Grid === */
.equal-cards > .wp-block-column {
  display: flex;
  flex-direction: column;
  flex-grow: 0;
}

.equal-cards > .wp-block-column > .wp-block-group {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.equal-cards .cta-bottom {
  margin-top: auto;
  justify-content: center;
}

/* === Neon Section Dividers === */
.ep-neon-divider {
  position: relative;
}

.ep-neon-divider::before {
  content: '';
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--ep-cyan), var(--ep-magenta), var(--ep-purple), transparent);
  opacity: 0.25;
}

/* === Glow Buttons === */
.ep-btn-cyan .wp-block-button__link {
  color: var(--ep-cyan) !important;
  background: rgba(0,229,255,0.08) !important;
  border: 1.5px solid var(--ep-cyan) !important;
  box-shadow: 0 0 18px rgba(0,229,255,0.18), inset 0 0 16px rgba(0,229,255,0.06);
  border-radius: 50px !important;
  font-family: 'Orbitron', sans-serif;
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: all 0.3s ease;
}

.ep-btn-cyan .wp-block-button__link:hover {
  background: rgba(0,229,255,0.18) !important;
  box-shadow: 0 0 32px rgba(0,229,255,0.3), inset 0 0 24px rgba(0,229,255,0.1);
}

.ep-btn-magenta .wp-block-button__link {
  color: var(--ep-magenta) !important;
  background: rgba(255,0,170,0.08) !important;
  border: 1.5px solid var(--ep-magenta) !important;
  box-shadow: 0 0 18px rgba(255,0,170,0.15), inset 0 0 16px rgba(255,0,170,0.05);
  border-radius: 50px !important;
  font-family: 'Orbitron', sans-serif;
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: all 0.3s ease;
}

.ep-btn-magenta .wp-block-button__link:hover {
  background: rgba(255,0,170,0.18) !important;
  box-shadow: 0 0 32px rgba(255,0,170,0.25), inset 0 0 24px rgba(255,0,170,0.08);
}

.ep-btn-purple .wp-block-button__link {
  color: var(--ep-purple) !important;
  background: rgba(155,89,255,0.08) !important;
  border: 1.5px solid var(--ep-purple) !important;
  box-shadow: 0 0 18px rgba(155,89,255,0.15), inset 0 0 16px rgba(155,89,255,0.05);
  border-radius: 50px !important;
  font-family: 'Orbitron', sans-serif;
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: all 0.3s ease;
}

.ep-btn-purple .wp-block-button__link:hover {
  background: rgba(155,89,255,0.18) !important;
  box-shadow: 0 0 32px rgba(155,89,255,0.25), inset 0 0 24px rgba(155,89,255,0.08);
}

/* Solid CTA variant */
.ep-btn-solid-cyan .wp-block-button__link {
  color: var(--ep-black-deep) !important;
  background: linear-gradient(135deg, var(--ep-cyan), #00B8D4) !important;
  border: none !important;
  box-shadow: 0 0 24px var(--ep-cyan-glow), 0 0 60px rgba(0,229,255,0.12), inset 0 0 10px rgba(255,255,255,0.2);
  border-radius: 50px !important;
  font-family: 'Orbitron', sans-serif;
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  overflow: hidden;
}

.ep-btn-solid-cyan .wp-block-button__link::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
  transition: left 0.5s ease;
}

.ep-btn-solid-cyan .wp-block-button__link:hover::before {
  left: 100%;
}

.ep-btn-solid-cyan .wp-block-button__link:hover {
  box-shadow: 0 0 40px var(--ep-cyan-glow), 0 0 80px rgba(0,229,255,0.25), inset 0 0 16px rgba(255,255,255,0.25);
  transform: translateY(-3px) scale(1.02);
}

/* === Section Backgrounds === */
.ep-section-dark {
  background: var(--ep-black-mid) !important;
  position: relative;
}

.ep-section-gradient {
  background: linear-gradient(180deg, var(--ep-black-deep) 0%, var(--ep-black-mid) 50%, var(--ep-black-deep) 100%) !important;
}

/* Ambient glow on sections */
.ep-ambient-cyan {
  position: relative;
}

.ep-ambient-cyan::before {
  content: '';
  position: absolute;
  top: 10%;
  left: -5%;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(0,229,255,0.04) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

.ep-ambient-magenta {
  position: relative;
}

.ep-ambient-magenta::after {
  content: '';
  position: absolute;
  bottom: 10%;
  right: -5%;
  width: 350px;
  height: 350px;
  background: radial-gradient(circle, rgba(255,0,170,0.03) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

/* === HUD Label Styling === */
.ep-hud-label {
  font-family: 'Orbitron', sans-serif !important;
  font-size: 0.65rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.35em !important;
  text-transform: uppercase !important;
  color: var(--ep-metallic-gray) !important;
  position: relative;
  display: inline-block;
}

.ep-hud-label::before {
  content: '[ ';
  color: var(--ep-cyan);
  opacity: 0.4;
}

.ep-hud-label::after {
  content: ' ]';
  color: var(--ep-cyan);
  opacity: 0.4;
}

/* === Category Badge Colors === */
.ep-cat-impressao { border-left: 3px solid var(--ep-cyan) !important; background: rgba(0,229,255,0.04) !important; }
.ep-cat-personalizados { border-left: 3px solid var(--ep-magenta) !important; background: rgba(255,0,170,0.04) !important; }
.ep-cat-artesanato { border-left: 3px solid var(--ep-purple) !important; background: rgba(155,89,255,0.04) !important; }
.ep-cat-sublimacao { border-left: 3px solid #00FF88 !important; background: rgba(0,255,136,0.04) !important; }
.ep-cat-decoracao { border-left: 3px solid #FFD700 !important; background: rgba(255,215,0,0.04) !important; }
.ep-cat-tecnologia { border-left: 3px solid #FF6B35 !important; background: rgba(255,107,53,0.04) !important; }

/* === Scroll Animations — smooth fade-up on viewport entry === */
.ep-fade-up {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.ep-fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.ep-fade-up-delay-1 { transition-delay: 0.1s; }
.ep-fade-up-delay-2 { transition-delay: 0.2s; }
.ep-fade-up-delay-3 { transition-delay: 0.3s; }
.ep-fade-up-delay-4 { transition-delay: 0.4s; }

/* Staggered children — cascade entrance */
.ep-stagger-children > .wp-block-column {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.ep-stagger-children.is-visible > .wp-block-column {
  opacity: 1;
  transform: translateY(0);
}

.ep-stagger-children.is-visible > .wp-block-column:nth-child(1) { transition-delay: 0s; }
.ep-stagger-children.is-visible > .wp-block-column:nth-child(2) { transition-delay: 0.1s; }
.ep-stagger-children.is-visible > .wp-block-column:nth-child(3) { transition-delay: 0.2s; }
.ep-stagger-children.is-visible > .wp-block-column:nth-child(4) { transition-delay: 0.3s; }
.ep-stagger-children.is-visible > .wp-block-column:nth-child(5) { transition-delay: 0.4s; }
.ep-stagger-children.is-visible > .wp-block-column:nth-child(6) { transition-delay: 0.5s; }

/* === Neon Text Glows === */
.ep-text-glow-cyan {
  text-shadow: 0 0 12px var(--ep-cyan-glow), 0 0 30px rgba(0,229,255,0.2), 0 0 60px rgba(0,229,255,0.08);
}

.ep-text-glow-magenta {
  text-shadow: 0 0 12px var(--ep-magenta-glow), 0 0 30px rgba(255,0,170,0.2), 0 0 60px rgba(255,0,170,0.08);
}

.ep-text-glow-purple {
  text-shadow: 0 0 12px var(--ep-purple-glow), 0 0 30px rgba(155,89,255,0.2), 0 0 60px rgba(155,89,255,0.08);
}

/* === Floating Neon Particles Canvas === */
.ep-particles-canvas {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}

/* === Data Stream Divider === */
.ep-data-stream-divider {
  position: relative;
  overflow: hidden;
}

.ep-data-stream-divider::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(0,229,255,0.3) 15%,
    rgba(255,0,170,0.2) 30%,
    rgba(155,89,255,0.3) 50%,
    rgba(0,229,255,0.2) 70%,
    transparent 100%);
  animation: ep-data-stream 4s linear infinite;
}

@keyframes ep-data-stream {
  0% { transform: translateX(-50%); }
  100% { transform: translateX(50%); }
}

/* === Holographic Grid Background === */
.ep-holo-grid {
  position: relative;
}

.ep-holo-grid::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0,229,255,0.015) 1px, transparent 1px),
    linear-gradient(180deg, rgba(0,229,255,0.015) 1px, transparent 1px);
  background-size: 50px 50px;
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  transition: opacity 1s ease;
  mask-image: radial-gradient(ellipse 80% 70% at 50% 50%, black 20%, transparent 65%);
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 50%, black 20%, transparent 65%);
  animation: ep-grid-breathe 5s ease-in-out infinite;
}

@keyframes ep-grid-breathe {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.7; }
}

/* === Neon Pulse Border on Sections === */
.ep-pulse-border {
  position: relative;
}

.ep-pulse-border::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 15%;
  right: 15%;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--ep-cyan), var(--ep-magenta), var(--ep-purple), transparent);
  animation: ep-border-pulse 3s ease-in-out infinite;
}

@keyframes ep-border-pulse {
  0%, 100% { opacity: 0.2; filter: blur(1px); }
  50% { opacity: 0.7; filter: blur(0px); }
}

/* === Animated Stat Numbers === */
.ep-stat-number {
  font-family: 'Orbitron', sans-serif !important;
  font-weight: 900 !important;
  letter-spacing: 0.04em;
  line-height: 1 !important;
  position: relative;
  display: inline-block;
}

.ep-stat-glow::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 40%;
  height: 2px;
  border-radius: 1px;
  animation: ep-stat-line-pulse 2s ease-in-out infinite;
}

.ep-text-glow-cyan.ep-stat-glow::after {
  background: var(--ep-cyan);
  box-shadow: 0 0 8px var(--ep-cyan-glow);
}

.ep-text-glow-magenta.ep-stat-glow::after {
  background: var(--ep-magenta);
  box-shadow: 0 0 8px var(--ep-magenta-glow);
}

.ep-text-glow-purple.ep-stat-glow::after {
  background: var(--ep-purple);
  box-shadow: 0 0 8px var(--ep-purple-glow);
}

@keyframes ep-stat-line-pulse {
  0%, 100% { width: 40%; opacity: 0.4; }
  50% { width: 70%; opacity: 0.9; }
}

/* === CTA Section Ambient Glow === */
.ep-cta-ambient {
  position: relative;
  overflow: hidden;
}

.ep-cta-ambient::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(0,229,255,0.06) 0%, rgba(155,89,255,0.03) 40%, transparent 70%);
  pointer-events: none;
  z-index: 0;
  animation: ep-ambient-rotate 20s linear infinite;
}

@keyframes ep-ambient-rotate {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

/* === Hero Floating Elements — disabled for stable page === */
.ep-hero-section .wp-block-cover__inner-container {
  z-index: 5;
  position: relative;
}

.ep-hero-floating {
  position: relative;
}

/* === Enhanced Glitch Text === */
@keyframes ep-glitch-enhanced {
  0%, 100% {
    text-shadow: 0 0 16px var(--ep-cyan-glow), 0 0 40px rgba(0,229,255,0.15);
    transform: translate(0);
    clip-path: none;
  }
  7% {
    text-shadow: -3px 0 var(--ep-magenta), 3px 0 var(--ep-cyan);
    transform: translate(-2px, 1px);
  }
  10% {
    text-shadow: 3px 0 var(--ep-magenta), -3px 0 var(--ep-cyan);
    transform: translate(2px, -1px);
  }
  12% {
    text-shadow: 0 0 16px var(--ep-cyan-glow);
    transform: translate(0);
  }
  50% {
    text-shadow: 0 0 16px var(--ep-cyan-glow), 0 0 40px rgba(0,229,255,0.15);
    transform: translate(0);
  }
  52% {
    text-shadow: -2px 0 var(--ep-purple), 2px 0 var(--ep-cyan);
    transform: translate(1px, -1px);
  }
  53% {
    text-shadow: 2px 0 var(--ep-magenta), -2px 0 var(--ep-purple);
    transform: translate(-1px, 1px);
  }
  55% {
    text-shadow: 0 0 16px var(--ep-cyan-glow), 0 0 40px rgba(0,229,255,0.15);
    transform: translate(0);
  }
}

.ep-glitch-text {
  animation: ep-glitch-enhanced 5s ease-in-out infinite;
}

/* === HUD Label Enhanced === */
.ep-hud-label {
  font-family: 'Orbitron', sans-serif !important;
  font-size: 0.68rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.35em !important;
  text-transform: uppercase !important;
  color: #D0D0E0 !important;
  position: relative;
  display: inline-block;
}

.ep-hud-label::before {
  content: '// ';
  color: var(--ep-cyan);
  opacity: 0.6;
  animation: ep-hud-blink 2s step-end infinite;
}

.ep-hud-label::after {
  content: ' _';
  color: var(--ep-cyan);
  opacity: 0.5;
  animation: ep-hud-cursor-blink 1.2s step-end infinite;
}

@keyframes ep-hud-blink {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 0.2; }
}

@keyframes ep-hud-cursor-blink {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 0; }
}

/* === Neon Cursor — purely decorative, hidden from assistive tech === */
.ep-neon-cursor {
  position: fixed;
  width: 24px;
  height: 24px;
  border: 1.5px solid var(--ep-cyan);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 10px var(--ep-cyan-glow), inset 0 0 6px rgba(0,229,255,0.15);
  transition: width 0.15s ease, height 0.15s ease, border-color 0.3s ease;
  mix-blend-mode: screen;
  display: none;
  /* Hide from screen readers — this is a visual-only decoration */
}

.ep-neon-cursor.is-active {
  display: block;
}

.ep-neon-cursor-trail {
  position: fixed;
  width: 6px;
  height: 6px;
  background: var(--ep-cyan);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9998;
  transform: translate(-50%, -50%);
  opacity: 0;
  box-shadow: 0 0 8px var(--ep-cyan-glow);
  mix-blend-mode: screen;
}

/* === Typing Cursor Animation === */
@keyframes ep-blink-cursor {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

.ep-typing-cursor {
  display: inline-block;
  width: 2px;
  height: 1.1em;
  background: var(--ep-cyan);
  box-shadow: 0 0 6px var(--ep-cyan);
  vertical-align: text-bottom;
  margin-left: 4px;
  animation: ep-blink-cursor 1s step-end infinite;
}

/* === Glitch Animation for Logo === */
@keyframes ep-glitch {
  0%, 100% { text-shadow: 0 0 12px var(--ep-cyan-glow); transform: translate(0); }
  20% { text-shadow: -2px 0 var(--ep-magenta), 2px 0 var(--ep-cyan); }
  40% { text-shadow: 2px 0 var(--ep-magenta), -2px 0 var(--ep-cyan); transform: translate(-1px, 1px); }
  60% { text-shadow: -1px 0 var(--ep-purple), 1px 0 var(--ep-cyan); }
  80% { text-shadow: 1px 0 var(--ep-magenta), -1px 0 var(--ep-purple); transform: translate(1px, -1px); }
}

.ep-glitch-text {
  animation: ep-glitch 4s ease-in-out infinite;
}

/* === Pulse Glow on Buttons === */
@keyframes ep-pulse-cyan-solid {
  0%, 100% {
    box-shadow: 0 0 24px rgba(0,229,255,0.4), 0 0 60px rgba(0,229,255,0.12), inset 0 0 10px rgba(255,255,255,0.2);
  }
  50% {
    box-shadow: 0 0 36px rgba(0,229,255,0.5), 0 0 80px rgba(0,229,255,0.2), inset 0 0 14px rgba(255,255,255,0.25);
  }
}

.ep-pulse-btn .wp-block-button__link {
  animation: ep-pulse-cyan-solid 2.5s ease-in-out infinite;
}

/* === Loading Screen === */
/* Critical: loading screen must never block content permanently.
   On production servers, if JS fails to run, this CSS-only fallback
   auto-hides the loading screen after 8 seconds via animation. */
.ep-loading-screen {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: var(--ep-black-deep);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), visibility 1s ease;
  overflow: hidden;
  animation: ep-loading-auto-dismiss 8s ease-in forwards;
}

@keyframes ep-loading-auto-dismiss {
  0%, 85% { opacity: 1; visibility: visible; }
  100% { opacity: 0; visibility: hidden; pointer-events: none; }
}

/* Matrix rain background */
.ep-loading-screen::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(
      0deg,
      transparent 0px,
      transparent 24px,
      rgba(0,229,255,0.008) 24px,
      rgba(0,229,255,0.008) 25px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0px,
      transparent 24px,
      rgba(0,229,255,0.008) 24px,
      rgba(0,229,255,0.008) 25px
    );
  pointer-events: none;
  z-index: 0;
  animation: ep-matrix-drift 20s linear infinite;
}

@keyframes ep-matrix-drift {
  from { transform: translateY(0); }
  to { transform: translateY(25px); }
}

.ep-loading-screen.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* Lightning Bolts Canvas */
.ep-loading-lightning {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

/* Energy Ring */
.ep-loading-ring {
  position: absolute;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  border: 1px solid rgba(0,229,255,0.08);
  animation: ep-ring-rotate 8s linear infinite;
  z-index: 1;
  pointer-events: none;
}

.ep-loading-ring::before {
  content: '';
  position: absolute;
  top: -2px;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 4px;
  background: var(--ep-cyan);
  border-radius: 2px;
  box-shadow: 0 0 16px var(--ep-cyan), 0 0 40px var(--ep-cyan-glow);
}

.ep-loading-ring::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 4px;
  background: var(--ep-magenta);
  border-radius: 2px;
  box-shadow: 0 0 16px var(--ep-magenta), 0 0 40px var(--ep-magenta-glow);
}

@keyframes ep-ring-rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.ep-loading-ring-2 {
  position: absolute;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  border: 1px solid rgba(255,0,170,0.06);
  animation: ep-ring-rotate-reverse 6s linear infinite;
  z-index: 1;
  pointer-events: none;
}

.ep-loading-ring-2::before {
  content: '';
  position: absolute;
  top: 50%;
  right: -2px;
  transform: translateY(-50%);
  width: 4px;
  height: 24px;
  background: var(--ep-purple);
  border-radius: 2px;
  box-shadow: 0 0 12px var(--ep-purple), 0 0 30px var(--ep-purple-glow);
}

@keyframes ep-ring-rotate-reverse {
  from { transform: rotate(360deg); }
  to { transform: rotate(0deg); }
}

/* HUD geometric shapes */
.ep-loading-geo {
  position: absolute;
  border: 1px solid;
  pointer-events: none;
  z-index: 1;
}

.ep-loading-geo-1 {
  width: 120px;
  height: 120px;
  top: 12%;
  left: 8%;
  border-color: rgba(0,229,255,0.1);
  transform: rotate(45deg);
  animation: ep-geo-pulse 4s ease-in-out infinite;
}

.ep-loading-geo-2 {
  width: 80px;
  height: 80px;
  bottom: 15%;
  right: 10%;
  border-color: rgba(255,0,170,0.12);
  animation: ep-geo-pulse 3.5s ease-in-out infinite 0.5s;
}

.ep-loading-geo-3 {
  width: 60px;
  height: 60px;
  top: 20%;
  right: 15%;
  border-color: rgba(155,89,255,0.1);
  border-radius: 50%;
  animation: ep-geo-pulse 5s ease-in-out infinite 1s;
}

.ep-loading-geo-4 {
  width: 100px;
  height: 100px;
  bottom: 20%;
  left: 12%;
  border-color: rgba(0,229,255,0.08);
  border-radius: 50%;
  animation: ep-geo-pulse 4.5s ease-in-out infinite 0.3s;
}

@keyframes ep-geo-pulse {
  0%, 100% { opacity: 0.3; transform: scale(1) rotate(var(--geo-rot, 0deg)); }
  50% { opacity: 0.7; transform: scale(1.08) rotate(var(--geo-rot, 0deg)); }
}

.ep-loading-geo-1 { --geo-rot: 45deg; }

/* Scan line sweep */
.ep-loading-scanline {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,229,255,0.4) 50%, transparent 100%);
  box-shadow: 0 0 20px rgba(0,229,255,0.2);
  z-index: 1;
  pointer-events: none;
  animation: ep-scanline-sweep 3s linear infinite;
}

@keyframes ep-scanline-sweep {
  0% { top: 0; opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { top: 100%; opacity: 0; }
}

/* Center content */
.ep-loading-center {
  position: relative;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ep-loading-subtitle {
  font-family: 'Exo 2', sans-serif;
  font-size: 0.7rem;
  font-weight: 300;
  letter-spacing: 0.5em;
  text-transform: uppercase;
  color: var(--ep-metallic-gray);
  margin-bottom: 0.75rem;
  opacity: 0;
  animation: ep-fade-in-up 0.6s ease 0.3s forwards;
}

.ep-loading-logo {
  font-family: 'Orbitron', sans-serif;
  font-weight: 900;
  font-size: clamp(2.5rem, 6vw, 4rem);
  letter-spacing: 0.06em;
  color: var(--ep-metallic-white);
  text-shadow: 0 0 30px var(--ep-cyan-glow), 0 0 60px rgba(0,229,255,0.2);
  animation: ep-glitch 2.5s ease-in-out infinite;
  margin-bottom: 0.5rem;
  opacity: 0;
  animation: ep-glitch 2.5s ease-in-out infinite, ep-fade-in-up 0.6s ease 0.5s forwards;
}

.ep-loading-logo .logo-cyan {
  color: var(--ep-cyan);
  text-shadow: 0 0 20px var(--ep-cyan-glow), 0 0 50px rgba(0,229,255,0.3);
}

.ep-loading-logo .logo-magenta {
  color: var(--ep-magenta);
  text-shadow: 0 0 20px var(--ep-magenta-glow), 0 0 50px rgba(255,0,170,0.3);
}

.ep-loading-tagline {
  font-family: 'Orbitron', sans-serif;
  font-size: 0.65rem;
  font-weight: 400;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--ep-metallic-gray);
  margin-bottom: 2.5rem;
  opacity: 0;
  animation: ep-fade-in-up 0.6s ease 0.7s forwards;
}

@keyframes ep-fade-in-up {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Progress bar */
.ep-loading-bar-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  opacity: 0;
  animation: ep-fade-in-up 0.6s ease 0.9s forwards;
}

.ep-loading-bar {
  width: 260px;
  height: 3px;
  background: var(--ep-gray-dark);
  border-radius: 3px;
  overflow: hidden;
  position: relative;
}

.ep-loading-bar::before {
  content: '';
  position: absolute;
  inset: -2px;
  border: 1px solid rgba(0,229,255,0.08);
  border-radius: 5px;
}

.ep-loading-bar-fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--ep-cyan), var(--ep-magenta), var(--ep-purple));
  box-shadow: 0 0 12px var(--ep-cyan-glow), 0 0 24px rgba(0,229,255,0.2);
  transition: width 0.3s ease;
  border-radius: 3px;
  position: relative;
}

.ep-loading-bar-fill::after {
  content: '';
  position: absolute;
  right: 0;
  top: -4px;
  width: 8px;
  height: 11px;
  background: var(--ep-cyan);
  border-radius: 2px;
  box-shadow: 0 0 16px var(--ep-cyan), 0 0 30px var(--ep-cyan-glow);
}

.ep-loading-percent {
  font-family: 'Orbitron', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: var(--ep-cyan);
  text-shadow: 0 0 8px var(--ep-cyan-glow);
}

.ep-loading-text {
  font-family: 'Exo 2', sans-serif;
  font-size: 0.7rem;
  font-weight: 300;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--ep-metallic-gray);
  opacity: 0;
  transition: opacity 0.4s ease;
  min-height: 1.2em;
}

.ep-loading-text.is-visible {
  opacity: 1;
}

/* HUD corners on loading */
.ep-loading-hud-tl,
.ep-loading-hud-tr,
.ep-loading-hud-bl,
.ep-loading-hud-br {
  position: absolute;
  width: 40px;
  height: 40px;
  z-index: 2;
  pointer-events: none;
}

.ep-loading-hud-tl {
  top: 20px;
  left: 20px;
  border-left: 2px solid var(--ep-cyan);
  border-top: 2px solid var(--ep-cyan);
  opacity: 0.3;
  animation: ep-hud-corner-pulse 3s ease-in-out infinite;
}

.ep-loading-hud-tr {
  top: 20px;
  right: 20px;
  border-right: 2px solid var(--ep-cyan);
  border-top: 2px solid var(--ep-cyan);
  opacity: 0.3;
  animation: ep-hud-corner-pulse 3s ease-in-out infinite 0.5s;
}

.ep-loading-hud-bl {
  bottom: 20px;
  left: 20px;
  border-left: 2px solid var(--ep-purple);
  border-bottom: 2px solid var(--ep-purple);
  opacity: 0.3;
  animation: ep-hud-corner-pulse 3s ease-in-out infinite 1s;
}

.ep-loading-hud-br {
  bottom: 20px;
  right: 20px;
  border-right: 2px solid var(--ep-magenta);
  border-bottom: 2px solid var(--ep-magenta);
  opacity: 0.3;
  animation: ep-hud-corner-pulse 3s ease-in-out infinite 1.5s;
}

@keyframes ep-hud-corner-pulse {
  0%, 100% { opacity: 0.2; }
  50% { opacity: 0.6; }
}

/* HUD data readouts */
.ep-loading-hud-data {
  position: absolute;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.5rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(0,229,255,0.2);
  z-index: 2;
  pointer-events: none;
  white-space: nowrap;
}

.ep-loading-hud-data-tl {
  top: 70px;
  left: 24px;
}

.ep-loading-hud-data-tr {
  top: 70px;
  right: 24px;
  text-align: right;
}

.ep-loading-hud-data-bl {
  bottom: 70px;
  left: 24px;
}

.ep-loading-hud-data-br {
  bottom: 70px;
  right: 24px;
  text-align: right;
}

/* Electric arc flash overlay */
.ep-loading-flash {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(0,229,255,0.08) 0%, transparent 70%);
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  animation: ep-flash-pulse 2s ease-in-out infinite;
}

@keyframes ep-flash-pulse {
  0%, 100% { opacity: 0; }
  50% { opacity: 1; }
}

/* === Footer Styles === */
.ep-site-footer {
  position: relative;
  border-top: 1px solid var(--ep-glass-border);
}

.ep-site-footer::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--ep-cyan), var(--ep-magenta), var(--ep-purple), transparent);
  opacity: 0.5;
}

/* Payment badges */
.ep-payment-badge {
  background: rgba(35, 35, 70, 0.98) !important;
  border: 1px solid rgba(0, 229, 255, 0.35) !important;
  border-radius: 10px !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease, background 0.3s ease;
  position: relative;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3), inset 0 0 8px rgba(0, 229, 255, 0.06);
}

.ep-payment-badge::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 200%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0,229,255,0.15), transparent);
  pointer-events: none;
  z-index: 1;
}

.ep-payment-badge:hover {
  border-color: rgba(0,229,255,0.5) !important;
  box-shadow: 0 0 24px rgba(0,229,255,0.15), inset 0 0 14px rgba(0,229,255,0.05);
  transform: translateY(-2px);
  background: rgba(0, 229, 255, 0.08) !important;
}

.ep-payment-badge p {
  font-size: 0.78rem !important;
  letter-spacing: 0.1em !important;
  white-space: nowrap;
  color: #FFFFFF !important;
  text-shadow: 0 0 6px rgba(255, 255, 255, 0.1);
}

/* Specific payment badge accents */
.ep-payment-badge--mbway {
  border-color: rgba(0, 229, 255, 0.3) !important;
  background: rgba(0, 229, 255, 0.06) !important;
}

.ep-payment-badge--mbway:hover {
  border-color: rgba(0, 229, 255, 0.6) !important;
  box-shadow: 0 0 24px rgba(0,229,255,0.2);
}

.ep-payment-badge--mb {
  border-color: rgba(0, 229, 255, 0.25) !important;
  background: rgba(0, 229, 255, 0.04) !important;
}

.ep-payment-badge--cofidis {
  border-color: rgba(255, 107, 53, 0.3) !important;
  background: rgba(255, 107, 53, 0.06) !important;
}

.ep-payment-badge--cofidis:hover {
  border-color: rgba(255, 107, 53, 0.55) !important;
  box-shadow: 0 0 24px rgba(255, 107, 53, 0.15);
  background: rgba(255, 107, 53, 0.1) !important;
}

.ep-payment-badge--pagaqui {
  border-color: rgba(0, 255, 136, 0.3) !important;
  background: rgba(0, 255, 136, 0.06) !important;
}

.ep-payment-badge--pagaqui:hover {
  border-color: rgba(0, 255, 136, 0.55) !important;
  box-shadow: 0 0 24px rgba(0, 255, 136, 0.15);
  background: rgba(0, 255, 136, 0.1) !important;
}

.ep-payment-badge-crypto {
  border-color: rgba(155,89,255,0.3) !important;
  background: rgba(155,89,255,0.06) !important;
}

.ep-payment-badge-crypto:hover {
  border-color: rgba(155,89,255,0.55) !important;
  box-shadow: 0 0 24px rgba(155,89,255,0.18);
  background: rgba(155,89,255,0.1) !important;
}

/* Footer payments section enhanced layout */
.ep-footer-payments {
  gap: 10px !important;
}

/* Ensure payment badge text is always white and visible */
.ep-payment-badge p {
  color: #FFFFFF !important;
  text-shadow: 0 0 4px rgba(255, 255, 255, 0.08);
  font-weight: 700 !important;
}

/* Payment section wrapper — ensure readable background */
.ep-site-footer .has-background[style*="rgba(40,40,65"] {
  background-color: rgba(35, 35, 60, 0.95) !important;
}

/* Payment section — boost contrast on all inner text */
.ep-site-footer .ep-footer-payments .ep-payment-badge p {
  color: #FFFFFF !important;
  font-weight: 700 !important;
  text-shadow: 0 0 6px rgba(255, 255, 255, 0.12);
}

/* Payment section HUD label visibility */
.ep-site-footer .ep-hud-label {
  color: #00E5FF !important;
}

/* Payment section subtitle text */
.ep-site-footer .has-metallic-gray-color[style*="font-style:italic"] {
  color: #C0C0D8 !important;
}

@media (max-width: 768px) {
  .ep-footer-payments {
    gap: 8px !important;
  }

  .ep-payment-badge {
    padding: 10px 16px !important;
  }

  .ep-payment-badge p {
    font-size: 0.65rem !important;
    letter-spacing: 0.08em !important;
  }
}

@media (max-width: 480px) {
  .ep-payment-badge {
    padding: 8px 12px !important;
  }

  .ep-payment-badge p {
    font-size: 0.58rem !important;
  }
}

/* === Image Hover Neon Frame === */
.ep-neon-frame {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
}

.ep-neon-frame::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid transparent;
  border-radius: 12px;
  transition: border-color 0.4s ease, box-shadow 0.4s ease;
  pointer-events: none;
}

.ep-neon-frame:hover::after {
  border-color: var(--ep-cyan);
  box-shadow: inset 0 0 20px rgba(0,229,255,0.08);
}

/* === Circuit Line Decoration === */
.ep-circuit-line {
  position: relative;
}

.ep-circuit-line::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--ep-cyan-dim), transparent);
  opacity: 0.5;
}

/* === All Box Text Contrast Enhancement === */
/* Ensure all paragraphs inside dark sections are readable */
/* NOTE: Moved to the Glass Card Text Visibility block above for v5.0.0 consolidation */

/* Headings inside sections — force transparent background to prevent
   white boxes on production servers where WP core injects default bg */
.alignfull h1, .alignfull h2, .alignfull h3, .alignfull h4,
.wp-block-cover h1, .wp-block-cover h2, .wp-block-cover h3,
.wp-block-group h1, .wp-block-group h2, .wp-block-group h3, .wp-block-group h4,
.ep-glass-card h1, .ep-glass-card h2, .ep-glass-card h3, .ep-glass-card h4,
h1.wp-block-heading, h2.wp-block-heading, h3.wp-block-heading, h4.wp-block-heading {
  color: #FFFFFF;
  background-color: transparent !important;
  background: transparent !important;
}

/* === FIX: Inline text links inside paragraphs must be clickable === */
/* Some browsers on production servers block clicks on <a> inside <p>
   when a glass-card pseudo-element (::before shimmer) sits above the link.
   Force all inline links inside content to be above pseudo-elements. */
p a,
li a,
td a,
.ep-glass-card p a,
.ep-glass-card li a,
.has-metallic-gray-color a,
.has-text-color a {
  position: relative;
  z-index: 2;
  pointer-events: auto !important;
}

/* Buttons inside all sections must always be clickable */
.wp-block-button__link {
  position: relative;
  z-index: 3;
  pointer-events: auto !important;
}

.wp-block-button {
  position: relative;
  z-index: 3;
}

.wp-block-buttons {
  position: relative;
  z-index: 3;
}

/* Fix: Cover block buttons — ensure they are above the overlay layers */
.wp-block-cover .wp-block-buttons {
  position: relative;
  z-index: 5;
}

.wp-block-cover .wp-block-button__link {
  position: relative;
  z-index: 5;
}

/* === FIX: All buttons and links MUST be clickable on production servers ===
   The anti-copy CSS (user-select:none) combined with glassmorphism
   pseudo-elements can make buttons unresponsive on some browsers.
   Force all interactive elements to accept pointer events and clicks. */
a,
button,
[role="button"],
.wp-block-button__link,
.ep-hub-submit,
.ep-hub-tab,
.ep-hub-channel,
.ep-gc-arrow,
.ep-gc-dot,
.ep-ap-btn,
.ep-ap-toggle,
.ep-mobile-toggle,
.ep-mobile-nav-link,
.ep-mobile-nav-cta,
.ep-mobile-nav-close,
.ep-mega-menu-trigger,
.ep-mega-close,
.ep-mega-sidebar-item,
.ep-mega-subcat-card,
.ep-mega-view-all-btn,
.ep-mega-preview-cta,
.ep-mega-quickbar-link,
.ep-more-menu-trigger,
.ep-more-menu-item,
.ep-search-toggle,
.ep-search-submit,
.ep-account-link,
.ep-mini-cart-link,
.ep-a11y-toggle,
.ep-a11y-option,
.ep-a11y-close,
.ep-a11y-reset,
.ep-back-to-top,
.ep-cookie-accept,
.ep-cookie-more,
.ep-whatsapp-float-btn,
.ep-nav-link,
.ep-social-link,
.ep-push-btn,
input[type="submit"],
input[type="button"] {
  -webkit-user-select: auto !important;
  -moz-user-select: auto !important;
  user-select: auto !important;
  -webkit-user-drag: none !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}

/* Prevent white background boxes on any block heading inside dark sections */
.wp-block-cover__inner-container h1,
.wp-block-cover__inner-container h2,
.wp-block-cover__inner-container h3,
.wp-block-cover__inner-container h4,
.ep-section-dark h1, .ep-section-dark h2, .ep-section-dark h3, .ep-section-dark h4,
.ep-section-gradient h1, .ep-section-gradient h2, .ep-section-gradient h3, .ep-section-gradient h4 {
  background-color: transparent !important;
  background: transparent !important;
}

/* Paragraphs inside cover blocks — also prevent white background */
.wp-block-cover__inner-container p,
.wp-block-cover__inner-container .wp-block-buttons {
  background-color: transparent !important;
  background: transparent !important;
}

/* Links inside glass cards and sections */
.ep-glass-card a:not(.wp-block-button__link) {
  color: #E8E8F5;
}

/* Process step numbers */
.ep-glass-card .has-cyan-neon-color.ep-text-glow-cyan,
.ep-glass-card .has-magenta-color.ep-text-glow-magenta,
.ep-glass-card .has-purple-electric-color.ep-text-glow-purple {
  opacity: 1;
}

/* Cover block inner text — bright and legible */
.wp-block-cover__inner-container p {
  color: #F0F0FF;
}

.wp-block-cover__inner-container .has-metallic-gray-color {
  color: #F0F0FF !important;
}

/* Horario / schedule cards text */
.ep-glass-card .has-metallic-white-color {
  color: #FFFFFF !important;
}

/* === WooCommerce Header Cart Integration === */
.wp-block-shortcode {
  display: inline-flex;
  align-items: center;
}

/* Hide WooCommerce mini-cart widget injected by navigation block */
.ep-site-header .wp-block-navigation .wp-block-woocommerce-mini-cart,
.ep-site-header .wp-block-navigation .wc-block-mini-cart,
.ep-site-header .wp-block-navigation .wp-block-loginout,
.ep-site-header .wp-block-navigation [class*="mini-cart"],
.ep-site-header .wp-block-navigation [class*="account-icon"] {
  display: none !important;
}

/* === Primary Nav Links === */
.ep-nav-links {
  display: flex;
  align-items: center;
  gap: var(--wp--preset--spacing--30);
}

.ep-nav-link {
  font-family: 'Orbitron', sans-serif;
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8A8A9A;
  text-decoration: none;
  transition: color 0.3s ease;
  position: relative;
  white-space: nowrap;
}

.ep-nav-link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 1px;
  background: var(--ep-cyan);
  box-shadow: 0 0 6px var(--ep-cyan-glow);
  transition: width 0.3s ease;
}

.ep-nav-link:hover {
  color: #00E5FF;
}

.ep-nav-link:hover::after {
  width: 100%;
}

/* === Header Actions (Search, Account, Cart) === */
.ep-header-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.ep-header-actions .wp-block-shortcode {
  display: inline-flex;
  align-items: center;
}

/* Account Link */
.ep-account-link {
  display: flex;
  align-items: center;
  color: var(--ep-metallic-gray);
  text-decoration: none;
  transition: color 0.3s ease;
  padding: 6px;
  border-radius: 8px;
}

.ep-account-link:hover {
  color: var(--ep-cyan);
}

/* Search Toggle & Dropdown */
.ep-header-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.ep-search-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ep-metallic-gray);
  padding: 6px;
  border-radius: 8px;
  transition: color 0.3s ease;
}

.ep-search-toggle:hover,
.ep-search-toggle[aria-expanded="true"] {
  color: var(--ep-cyan);
}

.ep-search-dropdown {
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  width: 340px;
  background: rgba(8, 8, 26, 0.95);
  backdrop-filter: blur(24px) saturate(130%);
  -webkit-backdrop-filter: blur(24px) saturate(130%);
  border: 1px solid var(--ep-glass-border);
  border-radius: 14px;
  padding: 14px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
  z-index: 300;
  box-shadow: 0 16px 60px rgba(0, 0, 0, 0.6), 0 0 30px rgba(0,229,255,0.04);
}

.ep-search-dropdown::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--ep-cyan), var(--ep-magenta), transparent);
  opacity: 0.5;
  border-radius: 14px 14px 0 0;
}

.ep-search-dropdown.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.ep-search-form {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ep-search-input {
  flex: 1;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(0, 229, 255, 0.15);
  border-radius: 50px;
  color: var(--ep-metallic-white);
  font-family: 'Exo 2', sans-serif;
  font-size: 0.85rem;
  padding: 10px 18px;
  outline: none;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.ep-search-input::placeholder {
  color: var(--ep-metallic-gray);
  opacity: 0.7;
}

.ep-search-input:focus {
  border-color: var(--ep-cyan);
  box-shadow: 0 0 16px rgba(0,229,255,0.15);
}

.ep-search-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(0,229,255,0.1);
  border: 1px solid rgba(0,229,255,0.25);
  color: var(--ep-cyan);
  cursor: pointer;
  flex-shrink: 0;
  transition: all 0.3s ease;
}

.ep-search-submit:hover {
  background: var(--ep-cyan);
  color: var(--ep-black-deep);
  box-shadow: 0 0 20px rgba(0,229,255,0.3);
}

/* Footer links hover */
.ep-site-footer a:not(.wp-block-button__link) {
  transition: color 0.3s ease;
}

.ep-site-footer a:not(.wp-block-button__link):hover {
  color: var(--ep-cyan) !important;
  text-shadow: 0 0 8px rgba(0,229,255,0.3);
}

/* Ensure social links inside footer shortcode are always visible */
.ep-site-footer .ep-social-links {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.ep-site-footer .ep-social-link {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Fix: Ensure shortcode wrapper never clips social links */
.ep-site-footer .wp-block-shortcode {
  display: block !important;
  overflow: visible !important;
  visibility: visible !important;
  opacity: 1 !important;
  min-height: 40px;
}

/* Fix: All inline text links in glass cards must be clickable */
.ep-glass-card a,
.ep-glass-card p a {
  position: relative;
  z-index: 2;
  cursor: pointer;
  pointer-events: auto !important;
}

/* Fix: Glass card pseudo-elements should never block clicks */
.ep-glass-card::before,
.ep-glass-card::after {
  pointer-events: none !important;
}

/* === Social Links === */
.ep-social-links {
  display: flex !important;
  align-items: center;
  gap: 12px;
  margin-top: 4px;
  flex-wrap: wrap;
  visibility: visible !important;
  opacity: 1 !important;
}

.ep-social-link {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--ep-glass-bg);
  border: 1px solid var(--ep-glass-border);
  color: var(--ep-metallic-gray);
  text-decoration: none;
  transition: all 0.3s ease;
  visibility: visible !important;
  opacity: 1 !important;
  flex-shrink: 0;
}

.ep-social-link:hover {
  color: var(--ep-cyan) !important;
  border-color: rgba(0,229,255,0.3);
  box-shadow: 0 0 16px rgba(0,229,255,0.12);
  transform: translateY(-2px);
}

.ep-social-link.ep-social-whatsapp:hover {
  color: #25D366 !important;
  border-color: rgba(37,211,102,0.3);
  box-shadow: 0 0 16px rgba(37,211,102,0.15);
}

.ep-social-link svg {
  width: 18px;
  height: 18px;
  display: block !important;
  visibility: visible !important;
}

/* Footer bottom links row */
.ep-site-footer .wp-block-group > .wp-block-group:last-of-type {
  opacity: 0.7;
}

/* === Mobile Navigation Hamburger === */
@media (max-width: 992px) {
  /* Hide desktop nav items on tablet and below */
  .ep-site-header .wp-block-navigation {
    display: none !important;
  }

  .ep-nav-links {
    display: none !important;
  }

  .ep-more-menu {
    display: none !important;
  }

  /* Show mobile hamburger button */
  .ep-mobile-toggle {
    display: flex !important;
  }

  /* Mobile header: ensure logo + actions fit in one row */
  .ep-site-header .wp-block-group[style*="justifyContent"] {
    gap: 8px !important;
  }
}

@media (max-width: 768px) {
  .ep-search-dropdown {
    width: calc(100vw - 32px);
    right: -80px;
    max-width: 340px;
  }

  .ep-header-actions {
    gap: 2px;
  }

  .ep-social-links {
    justify-content: center;
  }

  /* Mobile header layout — ensure items stay in a single row */
  .ep-site-header .wp-block-group {
    flex-wrap: nowrap !important;
  }

  .ep-site-header .ep-header-logo-text {
    font-size: 1rem !important;
  }

  /* Mobile footer columns stack */
  .ep-site-footer .wp-block-columns {
    flex-direction: column;
  }

  .ep-site-footer .wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
  }

  /* Better mobile section spacing */
  .wp-block-group.alignfull {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Mobile hero adjustments — reduce height for faster perceived load */
  .ep-hero-section {
    min-height: 70vh !important;
  }

  .ep-hero-section .wp-block-buttons {
    flex-direction: column;
    align-items: center;
  }

  .ep-hero-section .wp-block-button {
    width: 100%;
    max-width: 280px;
  }

  .ep-hero-section .wp-block-button__link {
    width: 100%;
    text-align: center;
    padding: 14px 24px !important;
  }

  /* Mobile stat numbers row — 2 per row */
  .ep-stagger-children.wp-block-columns {
    flex-wrap: wrap !important;
  }

  .ep-stagger-children > .wp-block-column {
    flex-basis: 48% !important;
    min-width: 0 !important;
    margin-bottom: var(--wp--preset--spacing--20);
  }

  /* Mobile cards stack */
  .equal-cards.wp-block-columns {
    flex-direction: column;
  }

  .equal-cards > .wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
  }

  /* Mobile glass card improvements */
  .ep-glass-card {
    background: rgba(10, 10, 30, 0.92) !important;
    border-radius: 14px !important;
  }

  /* Disable hover transforms on mobile — prevents double-tap issue */
  .ep-glass-card:hover {
    transform: none !important;
  }

  /* Mobile payment badges — wrap nicely */
  .ep-footer-payments {
    justify-content: center;
  }

  .ep-payment-badge {
    padding: 8px 14px !important;
  }

  .ep-payment-badge p {
    font-size: 0.62rem !important;
  }

  /* Mobile hero heading size reduction */
  .ep-hero-section h1 {
    font-size: clamp(1.75rem, 7vw, 2.5rem) !important;
  }

  /* Mobile CTA sections — full-width buttons */
  .ep-cta-ambient .wp-block-buttons,
  .ep-neon-bar-bottom .wp-block-buttons {
    flex-direction: column !important;
    align-items: center !important;
  }

  .ep-cta-ambient .wp-block-button,
  .ep-neon-bar-bottom .wp-block-button {
    width: 100%;
    max-width: 300px;
  }

  /* Mobile columns inside cover blocks — stack vertically */
  .wp-block-cover .wp-block-columns {
    flex-direction: column !important;
  }

  .wp-block-cover .wp-block-columns > .wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
  }

  /* Mobile footer link row — wrap better */
  .ep-site-footer .wp-block-group > .wp-block-group:last-of-type {
    opacity: 0.8;
  }

  .ep-site-footer .wp-block-group[style*="justifyContent"] {
    gap: 6px !important;
  }

  /* Mobile: reduce large heading font sizes globally */
  h1.wp-block-heading { font-size: clamp(1.5rem, 6vw, 2.25rem) !important; }
  h2.wp-block-heading { font-size: clamp(1.25rem, 5vw, 1.75rem) !important; }
  h3.wp-block-heading { font-size: 1.1rem !important; }

  /* Mobile: improve touch targets on navigation links */
  .ep-mobile-nav-link {
    padding: 18px 16px !important;
    min-height: 48px;
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(0, 229, 255, 0.08);
  }

  /* Mobile: ensure ALL interactive elements respond to touch */
  a,
  button,
  [role="button"],
  .wp-block-button__link,
  .ep-mobile-toggle,
  .ep-mobile-nav-close,
  .ep-mobile-nav-link,
  .ep-mobile-nav-cta,
  .ep-search-toggle,
  .ep-account-link,
  .ep-mini-cart-link,
  .ep-more-menu-trigger,
  .ep-mega-menu-trigger,
  .ep-a11y-toggle,
  .ep-back-to-top,
  .ep-whatsapp-float-btn,
  .ep-cookie-accept,
  .ep-ap-toggle,
  .ep-ap-btn,
  .ep-gc-arrow,
  .ep-hub-submit,
  .ep-hub-tab,
  .ep-hub-channel,
  .ep-push-btn,
  input[type="submit"],
  input[type="button"],
  summary {
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: rgba(0, 229, 255, 0.06);
  }

  /* Mobile: disable user-select on body but NEVER on interactive elements */
  body:not(.logged-in):not(.ep-keyboard-user) a,
  body:not(.logged-in):not(.ep-keyboard-user) button,
  body:not(.logged-in):not(.ep-keyboard-user) [role="button"],
  body:not(.logged-in):not(.ep-keyboard-user) .wp-block-button__link {
    -webkit-user-select: auto !important;
    user-select: auto !important;
    -webkit-user-drag: none !important;
  }

  /* Mobile: reduce section vertical padding for tighter layout */
  .wp-block-group.alignfull[style*="padding-top:var(--wp--preset--spacing--70)"] {
    padding-top: var(--wp--preset--spacing--50) !important;
    padding-bottom: var(--wp--preset--spacing--50) !important;
  }

  /* Mobile: image neon frame — simpler corners */
  .ep-neon-frame {
    border-radius: 10px;
  }

  /* Mobile: loading screen — faster dismiss */
  .ep-loading-screen {
    animation-duration: 5s !important;
  }

  /* Mobile: disable particles canvas to save battery */
  .ep-particles-canvas {
    display: none !important;
  }

  /* Mobile: disable glow-follow effects */
  .ep-ambient-cyan::before,
  .ep-ambient-magenta::after {
    display: none !important;
  }

  /* Mobile: simplify HUD label for readability */
  .ep-hud-label {
    font-size: 0.58rem !important;
    letter-spacing: 0.22em !important;
  }

  .ep-hud-label::before { content: '' !important; }
  .ep-hud-label::after { content: '' !important; }

  /* === MOBILE: Floating buttons — fixed toolbar at bottom === */
  /* Group all floating buttons into a compact bottom bar on mobile
     so they're always visible and don't overlap content. */
  .ep-whatsapp-float-btn#ep-wa-float,
  .ep-a11y-toggle,
  .ep-back-to-top {
    bottom: auto !important;
    top: auto !important;
  }

  /* Create a fixed bottom toolbar layout: audio(left) | a11y | wa | top(right) */
  .ep-whatsapp-float-btn#ep-wa-float {
    bottom: 16px !important;
    right: 60px !important;
    width: 44px !important;
    height: 44px !important;
  }

  .ep-whatsapp-float-btn#ep-wa-float svg {
    width: 20px;
    height: 20px;
  }

  /* Reduce the pulse ring on mobile to prevent overflow */
  .ep-whatsapp-float-btn#ep-wa-float::after {
    inset: -2px;
    animation-duration: 4s;
  }

  .ep-a11y-toggle {
    bottom: 16px !important;
    right: 112px !important;
    width: 44px !important;
    height: 44px !important;
  }

  .ep-back-to-top {
    bottom: 16px !important;
    right: 16px !important;
    width: 40px !important;
    height: 40px !important;
  }

  /* Audio player — bottom left, compact */
  .ep-ambient-player {
    bottom: 14px !important;
    left: 12px !important;
  }

  .ep-ap-toggle {
    width: 44px !important;
    height: 44px !important;
  }

  /* Mobile nav overlay — ensure it covers the floating buttons */
  .ep-mobile-nav-overlay.is-open {
    z-index: 99999 !important;
  }

  /* Mobile: improve tap feedback on product cards */
  ul.products li.product,
  .ep-glass-card {
    -webkit-tap-highlight-color: rgba(0, 229, 255, 0.06);
  }

  /* Mobile: smoother scroll for touch devices */
  html {
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
  }

  /* Mobile: improve form input size (prevents iOS zoom) */
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="password"],
  input[type="search"],
  input[type="url"],
  input[type="number"],
  select,
  textarea {
    font-size: 16px !important;
  }

  /* Mobile: ensure cover block images don't cause horizontal overflow */
  .wp-block-cover {
    overflow: hidden !important;
  }

  /* Mobile: fix button overflow in narrow containers */
  .wp-block-button__link {
    word-break: break-word;
    hyphens: auto;
    max-width: 100%;
  }

  /* Mobile: compact mobile nav close button for better reach */
  .ep-mobile-nav-close {
    min-width: 44px;
    min-height: 44px;
  }

  /* Mobile: improve footer readability */
  .ep-site-footer {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Mobile: make price table rows stack on narrow screens */
  .ep-glass-card .wp-block-group[style*="justifyContent"]:not(.ep-footer-payments) {
    flex-wrap: wrap !important;
    gap: 4px !important;
  }
}

@media (max-width: 480px) {
  .ep-site-header .ep-header-logo-text {
    font-size: 0.85rem !important;
    letter-spacing: 0.03em !important;
  }

  /* Even smaller section padding */
  .wp-block-group.alignfull {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  /* Smaller HUD labels */
  .ep-hud-label {
    font-size: 0.52rem !important;
    letter-spacing: 0.2em !important;
  }

  /* Mobile headings — ensure they never overflow */
  .wp-block-heading.has-text-align-center {
    font-size: clamp(1.15rem, 5vw, 1.6rem) !important;
    word-break: break-word;
  }

  /* Mobile step process cards — full width */
  .ep-stagger-children > .wp-block-column {
    flex-basis: 100% !important;
  }

  /* Mobile stat numbers — single column on very small screens */
  .ep-stagger-children.wp-block-columns > .wp-block-column {
    flex-basis: 100% !important;
  }

  /* Mobile hero — reduce min height further */
  .ep-hero-section {
    min-height: 65vh !important;
  }

  /* Mobile hero subtitle — smaller */
  .ep-hero-section p {
    font-size: 0.88rem !important;
  }

  /* Mobile glass card text — slightly larger for readability */
  .ep-glass-card p {
    font-size: 0.9rem !important;
    line-height: 1.7 !important;
  }

  /* Mobile buttons — ensure minimum tap size */
  .wp-block-button__link {
    min-height: 44px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 12px 20px !important;
  }

  /* Mobile: prevent text overflow on price badges */
  .ep-payment-badge {
    padding: 6px 10px !important;
  }

  .ep-payment-badge p {
    font-size: 0.55rem !important;
    letter-spacing: 0.06em !important;
  }

  /* Mobile: reduce cover block min heights */
  .wp-block-cover {
    min-height: 50vh !important;
  }

  /* Mobile: footer links — stack vertically on very small screens */
  .ep-site-footer .wp-block-group[style*="justifyContent"]:not(:last-child) {
    flex-direction: column !important;
    align-items: center !important;
    gap: 4px !important;
  }

  /* Mobile: FAQ details — more padding for touch */
  .wp-block-details summary {
    padding: 12px 4px !important;
    font-size: 0.92rem !important;
  }

  .wp-block-details p {
    font-size: 0.88rem !important;
    line-height: 1.7 !important;
  }

  /* Mobile: form improvements */
  .ep-hub-form input,
  .ep-hub-form select,
  .ep-hub-form textarea {
    font-size: 16px !important; /* Prevents iOS zoom on focus */
    padding: 14px 16px !important;
  }

  /* Mobile: cookie notice — more compact */
  .ep-cookie-notice-text {
    font-size: 0.78rem !important;
  }

  .ep-cookie-accept {
    padding: 10px 22px !important;
    font-size: 0.58rem !important;
  }
}

/* === "More" Dropdown Menu === */
.ep-more-menu {
  position: relative;
  display: inline-flex;
  align-items: center;
  z-index: 210;
}

.ep-more-menu-trigger {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8A8A9A;
  transition: color 0.3s ease;
  position: relative;
  line-height: 1;
}

.ep-more-menu-trigger::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 1px;
  background: var(--ep-cyan);
  box-shadow: 0 0 6px var(--ep-cyan-glow);
  transition: width 0.3s ease;
}

.ep-more-menu-trigger:hover,
.ep-more-menu-trigger[aria-expanded="true"] {
  color: var(--ep-cyan);
}

.ep-more-menu-trigger:hover::after,
.ep-more-menu-trigger[aria-expanded="true"]::after {
  width: 100%;
}

.ep-more-menu-icon {
  transition: transform 0.3s ease;
}

.ep-more-menu-trigger[aria-expanded="true"] .ep-more-menu-icon {
  transform: rotate(180deg);
}

.ep-more-menu-dropdown {
  position: absolute;
  top: calc(100% + 16px);
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 240px;
  background: rgba(8, 8, 26, 0.96);
  backdrop-filter: blur(24px) saturate(130%);
  -webkit-backdrop-filter: blur(24px) saturate(130%);
  border: 1px solid var(--ep-glass-border);
  border-radius: 14px;
  padding: 10px 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
  z-index: 310;
  box-shadow: 0 16px 60px rgba(0, 0, 0, 0.6), 0 0 30px rgba(0,229,255,0.04);
}

.ep-more-menu-dropdown::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--ep-cyan), var(--ep-magenta), transparent);
  opacity: 0.5;
  border-radius: 14px 14px 0 0;
}

.ep-more-menu-dropdown.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

.ep-more-menu-item {
  display: block;
  padding: 11px 22px;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.62rem;
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8A8A9A;
  text-decoration: none;
  transition: color 0.25s ease, background 0.25s ease, padding-left 0.25s ease;
  position: relative;
}

.ep-more-menu-item::before {
  content: '';
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 1px;
  background: var(--ep-cyan);
  box-shadow: 0 0 4px var(--ep-cyan-glow);
  transition: width 0.3s ease;
}

.ep-more-menu-item:hover {
  color: var(--ep-cyan);
  background: rgba(0, 229, 255, 0.03);
  padding-left: 30px;
}

.ep-more-menu-item:hover::before {
  width: 10px;
}

@media (max-width: 768px) {
  .ep-more-menu-dropdown {
    left: auto;
    right: 0;
    transform: translateY(8px);
    min-width: 200px;
  }

  .ep-more-menu-dropdown.is-open {
    transform: translateY(0);
  }
}

/* === Mobile Slide-Out Menu === */
.ep-mobile-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: none;
  border: 1px solid var(--ep-glass-border);
  border-radius: 10px;
  cursor: pointer;
  color: var(--ep-metallic-gray);
  transition: color 0.3s ease, border-color 0.3s ease;
  padding: 0;
  flex-shrink: 0;
}

.ep-mobile-toggle:hover,
.ep-mobile-toggle[aria-expanded="true"] {
  color: var(--ep-cyan);
  border-color: rgba(0, 229, 255, 0.3);
}

.ep-mobile-toggle svg {
  width: 20px;
  height: 20px;
}

/* Mobile slide-out panel */
.ep-mobile-nav-overlay {
  position: fixed;
  inset: 0;
  z-index: 99998;
  background: rgba(2, 2, 10, 0.95);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  display: none;
}

.ep-mobile-nav-overlay.is-open {
  display: block;
}

.ep-mobile-nav-overlay.is-open {
  display: block;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.ep-mobile-nav-inner {
  min-height: 100vh;
  padding: 20px 24px 40px;
  display: flex;
  flex-direction: column;
}

.ep-mobile-nav-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(0, 229, 255, 0.06);
  margin-bottom: 24px;
}

.ep-mobile-nav-logo {
  font-family: 'Orbitron', sans-serif;
  font-size: 1.1rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  color: #E8E8F0;
}

.ep-mobile-nav-logo .logo-cyan { color: #00E5FF; }
.ep-mobile-nav-logo .logo-magenta { color: #FF00AA; }

.ep-mobile-nav-close {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(0, 229, 255, 0.1);
  color: #7A7A8A;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}

.ep-mobile-nav-close:hover {
  color: #00E5FF;
  border-color: rgba(0, 229, 255, 0.3);
}

.ep-mobile-nav-section-label {
  font-family: 'Orbitron', sans-serif;
  font-size: 0.5rem;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: #4A4A5A;
  margin-bottom: 12px;
  padding-left: 4px;
}

.ep-mobile-nav-links {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 24px;
}

.ep-mobile-nav-link {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 16px;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #B8B8C8;
  text-decoration: none;
  border-radius: 10px;
  transition: all 0.3s ease;
  position: relative;
}

.ep-mobile-nav-link::before {
  content: '';
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--ep-cyan);
  opacity: 0.3;
  flex-shrink: 0;
}

.ep-mobile-nav-link:hover,
.ep-mobile-nav-link:active {
  color: var(--ep-cyan);
  background: rgba(0, 229, 255, 0.03);
}

.ep-mobile-nav-link:hover::before {
  opacity: 1;
  box-shadow: 0 0 6px var(--ep-cyan);
}

.ep-mobile-nav-divider {
  height: 1px;
  background: rgba(0, 229, 255, 0.04);
  margin: 8px 0 20px;
}

.ep-mobile-nav-link--magenta::before { background: var(--ep-magenta); }
.ep-mobile-nav-link--purple::before { background: var(--ep-purple); }

.ep-mobile-nav-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 28px;
  margin-top: 12px;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ep-black-deep);
  background: var(--ep-cyan);
  border: none;
  border-radius: 50px;
  text-decoration: none;
  box-shadow: 0 0 20px rgba(0, 229, 255, 0.3);
  transition: all 0.3s ease;
}

.ep-mobile-nav-cta:hover {
  box-shadow: 0 0 36px rgba(0, 229, 255, 0.5);
  transform: translateY(-2px);
}

.ep-mobile-nav-footer {
  margin-top: auto;
  padding-top: 20px;
  border-top: 1px solid rgba(0, 229, 255, 0.04);
  text-align: center;
}

.ep-mobile-nav-footer p {
  font-family: 'Exo 2', sans-serif;
  font-size: 0.75rem;
  color: #4A4A5A;
  line-height: 1.6;
}

.ep-mobile-nav-footer a {
  color: var(--ep-cyan);
  text-decoration: none;
}

/* WooCommerce body overrides */
body.ep-woocommerce-active .woocommerce {
  color: var(--ep-metallic-white);
}

body.ep-woocommerce-active .woocommerce a {
  color: var(--ep-cyan);
}

body.ep-woocommerce-active .woocommerce a:hover {
  color: var(--ep-magenta);
}

/* WooCommerce product card text visibility */
body.ep-woocommerce-active ul.products li.product .woocommerce-loop-product__title {
  color: #F0F0F8 !important;
}

body.ep-woocommerce-active ul.products li.product .price {
  color: #00E5FF !important;
}

/* Ensure product images on archive don't overflow */
body.ep-woocommerce-active ul.products li.product {
  position: relative;
}

/* === FUTURISTIC SINGLE PRODUCT PAGE === */

/* Product hero section — immersive background with subtle gradient */
.ep-product-hero-section {
  position: relative;
}

.ep-product-hero-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(ellipse 60% 50% at 30% 40%, rgba(0,229,255,0.03) 0%, transparent 70%),
              radial-gradient(ellipse 40% 40% at 80% 60%, rgba(155,89,255,0.02) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

.ep-product-hero-section > * {
  position: relative;
  z-index: 1;
}

/* Gallery frame — futuristic glass container */
.ep-product-gallery-frame {
  background: rgba(10, 10, 30, 0.5);
  border: 1px solid rgba(0, 229, 255, 0.12);
  overflow: hidden;
  position: relative;
}

.ep-product-gallery-frame::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(0,229,255,0.4), rgba(255,0,170,0.3), transparent);
  opacity: 0.6;
  z-index: 2;
  pointer-events: none;
}

.ep-product-gallery-frame::after {
  content: '';
  position: absolute;
  bottom: 10px;
  right: 10px;
  width: 18px;
  height: 18px;
  border-right: 1px solid rgba(0,229,255,0.15);
  border-bottom: 1px solid rgba(0,229,255,0.15);
  pointer-events: none;
  z-index: 2;
}

/* Product info card — glassmorphism panel */
.ep-product-info-card {
  background: rgba(10, 10, 30, 0.6) !important;
  border: 1px solid rgba(0, 229, 255, 0.1) !important;
  backdrop-filter: blur(16px) saturate(120%);
  -webkit-backdrop-filter: blur(16px) saturate(120%);
  position: relative;
  overflow: hidden;
}

.ep-product-info-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #00E5FF, #FF00AA, #9B59FF, transparent);
  opacity: 0.5;
  z-index: 1;
}

.ep-product-info-card::after {
  content: '';
  position: absolute;
  top: 12px;
  left: 12px;
  width: 16px;
  height: 16px;
  border-left: 1px solid rgba(0,229,255,0.15);
  border-top: 1px solid rgba(0,229,255,0.15);
  pointer-events: none;
  z-index: 1;
}

/* Price badge — prominent neon price display */
.ep-product-price-badge {
  background: rgba(0, 229, 255, 0.04) !important;
  border: 1px solid rgba(0, 229, 255, 0.15) !important;
  position: relative;
}

.ep-product-price-badge::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 60%;
  background: #00E5FF;
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(0,229,255,0.4);
}

/* Trust badges row */
.ep-product-trust-row {
  gap: 8px;
}

/* Details zone — darker section for tabs */
.ep-product-details-zone {
  position: relative;
}

.ep-product-details-zone::before {
  content: '';
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0,229,255,0.2), rgba(255,0,170,0.15), transparent);
}

/* Related products zone */
.ep-product-related-zone {
  position: relative;
}

.ep-product-related-zone::before {
  content: '';
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0,229,255,0.15), transparent);
}

/* Mobile responsive for futuristic product layout */
@media (max-width: 768px) {
  .ep-product-hero-columns {
    flex-direction: column !important;
  }

  .ep-product-hero-columns > .wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
  }

  .ep-product-info-card {
    border-radius: 16px !important;
    padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20) !important;
    margin-top: var(--wp--preset--spacing--20);
  }

  .ep-product-gallery-frame {
    border-radius: 16px !important;
  }

  .ep-product-trust-row {
    justify-content: center !important;
  }
}

/* Single product page — prevent horizontal scroll but allow vertical scroll */
body.single-product {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  height: auto !important;
}

body.single-product .wp-site-blocks {
  overflow-x: hidden !important;
  overflow-y: visible !important;
  height: auto !important;
}

body.single-product img {
  max-width: 100%;
  height: auto;
}

/* Single product page — ensure all content is visible and not clipped */
body.single-product .ep-wc-single-product,
body.single-product .ep-wc-single-product .wp-block-group,
body.single-product main {
  overflow: visible !important;
  height: auto !important;
}

body.single-product .woocommerce,
body.single-product .product {
  overflow: visible !important;
}

/* Ensure the main content area and all parents allow scroll */
body.single-product .wp-block-post-content,
body.single-product .ep-wc-product-details-section,
body.single-product .ep-wc-related-section {
  overflow: visible !important;
}

/* Single product page — disable ALL animations to keep it stable */
body.single-product .ep-fade-up,
body.single-product .ep-stagger-children > .wp-block-column,
body.single-product .ep-glass-card,
body.single-product .ep-neon-frame,
body.single-product .ep-hero-floating,
body.single-product .ep-pulse-btn .wp-block-button__link,
body.single-product .ep-glitch-text {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
}

body.single-product .ep-glass-card:hover {
  transform: none !important;
}

body.single-product .ep-glass-card::before {
  animation: none !important;
}

/* WooCommerce buttons generic override */
body.ep-woocommerce-active .woocommerce .button:not(.ep-btn-wc):not(.single_add_to_cart_button):not(#place_order) {
  font-family: 'Orbitron', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 50px;
  border: 1.5px solid var(--ep-cyan);
  color: var(--ep-cyan);
  background: rgba(0,229,255,0.06);
  padding: 10px 20px;
  transition: all 0.3s ease;
  text-decoration: none;
  cursor: pointer;
}

body.ep-woocommerce-active .woocommerce .button:not(.ep-btn-wc):not(.single_add_to_cart_button):not(#place_order):hover {
  background: var(--ep-cyan);
  color: var(--ep-black-deep);
}

/* === Mega Menu Z-index hierarchy === */
.ep-mega-menu {
	z-index: 200;
	position: relative;
}

/* Ensure header is above page content but mega menu overlay is above all */
header.wp-block-template-part {
	z-index: 200;
}

/* The overlay is position:fixed, so it must be rendered OUTSIDE any stacking
   context that could clip it. Move it to body via JS (portal pattern). As a
   CSS fallback, ensure the z-index wins over everything. */
.ep-mega-menu-overlay {
	z-index: 99999 !important;
}

.ep-mega-menu-overlay.is-open {
	position: fixed !important;
	inset: 0 !important;
}

/* Prevent mega menu panel from being clipped by header overflow */
.ep-site-header {
	overflow: visible !important;
}

.ep-site-header > .wp-block-group {
	overflow: visible !important;
}

/* Ensure navigation flex container allows overflow for mega menu */
.ep-site-header .wp-block-group {
	overflow: visible !important;
}

/* Ensure shortcode wrapper doesn't clip mega menu panel */
.ep-site-header .wp-block-shortcode {
	overflow: visible !important;
	position: relative;
	z-index: 200;
}

/* Ensure wp-site-blocks doesn't create a clipping stacking context */
.wp-site-blocks {
	overflow: visible !important;
}

/* === Animated Background Grid === */
.ep-animated-grid {
  position: relative;
}

.ep-animated-grid::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0,229,255,0.02) 1px, transparent 1px),
    linear-gradient(180deg, rgba(0,229,255,0.02) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none;
  z-index: 0;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black 30%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black 30%, transparent 70%);
  animation: ep-grid-breathe 5s ease-in-out infinite;
}

/* === Floating Particle Effect === */
.ep-particles-section {
  position: relative;
  overflow: hidden;
}

/* === Gallery Carousel Visibility — Force visible === */
.ep-gallery-carousel {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  min-height: 200px;
  position: relative;
  overflow: visible;
  padding-bottom: 50px;
}

.ep-gc-track-wrap {
  overflow: hidden;
  border-radius: 16px;
}

.ep-gc-track {
  display: flex;
  gap: 16px;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.ep-gc-slide {
  flex-shrink: 0;
}

.ep-gc-slide-inner {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(0, 229, 255, 0.12);
  background: rgba(10, 10, 30, 0.8);
  transition: border-color 0.35s ease, box-shadow 0.35s ease;
}

.ep-gc-slide-inner:hover {
  border-color: rgba(0, 229, 255, 0.4);
  box-shadow: 0 8px 40px rgba(0, 229, 255, 0.12);
}

.ep-gc-slide-inner img {
  display: block;
  width: 100%;
  height: 280px;
  object-fit: cover;
}

.ep-gc-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 14px 18px;
  background: linear-gradient(0deg, rgba(5,5,16,0.92), transparent);
  font-family: 'Exo 2', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  color: #E8E8F0;
}

.ep-gc-arrow {
  position: absolute;
  top: calc(50% - 25px);
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(8,8,24,0.92);
  border: 1px solid rgba(0,229,255,0.2);
  color: #8A8A9A;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  z-index: 5;
  padding: 0;
}

.ep-gc-arrow:hover:not(:disabled) {
  color: #00E5FF;
  border-color: rgba(0,229,255,0.5);
  box-shadow: 0 0 20px rgba(0,229,255,0.15);
}

.ep-gc-arrow:disabled {
  opacity: 0.25;
  cursor: default;
}

.ep-gc-arrow--prev { left: -22px; }
.ep-gc-arrow--next { right: -22px; }

.ep-gc-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 20px;
}

.ep-gc-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(0,229,255,0.15);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: all 0.3s ease;
}

.ep-gc-dot.is-active {
  background: #00E5FF;
  box-shadow: 0 0 8px rgba(0,229,255,0.5);
  width: 24px;
  border-radius: 4px;
}

.ep-gc-counter {
  position: absolute;
  bottom: 0;
  right: 0;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #4A4A5A;
}

.ep-gc-empty {
  text-align: center;
  padding: 50px 30px;
  background: rgba(10,10,30,0.6);
  border: 2px dashed rgba(0,229,255,0.15);
  border-radius: 16px;
}

.ep-gc-empty-title {
  font-family: 'Orbitron', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  color: #C0C0D8;
  margin: 0 0 12px;
}

.ep-gc-empty-text {
  font-family: 'Exo 2', sans-serif;
  font-size: 0.82rem;
  color: #6A6A7A;
  line-height: 1.6;
  margin: 0;
}

.ep-gc-empty-text strong { color: #00E5FF; }

.ep-gc-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100000;
  background: rgba(2,2,10,0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.35s ease;
}

.ep-gc-lightbox.is-open { opacity: 1; }
.ep-gc-lightbox.is-closing { opacity: 0; }

.ep-gc-lightbox-inner {
  position: relative;
  max-width: 90vw;
  max-height: 90vh;
}

.ep-gc-lightbox-inner img {
  display: block;
  max-width: 90vw;
  max-height: 85vh;
  object-fit: contain;
  border-radius: 12px;
  border: 1px solid rgba(0,229,255,0.2);
}

.ep-gc-lightbox-close {
  position: absolute;
  top: -16px;
  right: -16px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(8,8,24,0.95);
  border: 1px solid rgba(0,229,255,0.25);
  color: #8A8A9A;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  padding: 0;
}

.ep-gc-lightbox-close:hover {
  color: #00E5FF;
  border-color: rgba(0,229,255,0.5);
  transform: rotate(90deg);
}

@media (max-width: 768px) {
  .ep-gc-slide-inner img { height: 220px; }
  .ep-gc-arrow { width: 36px; height: 36px; }
  .ep-gc-arrow--prev { left: -8px; }
  .ep-gc-arrow--next { right: -8px; }
}

@media (max-width: 480px) {
  .ep-gc-slide-inner img { height: 200px; }
  .ep-gc-arrow { width: 32px; height: 32px; }
  .ep-gc-arrow--prev { left: 4px; }
  .ep-gc-arrow--next { right: 4px; }
}

/* === Contact Hub Form Visibility — Force visible === */
.ep-contact-hub {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.ep-contact-hub .ep-hub-tabs,
.ep-contact-hub .ep-hub-form,
.ep-contact-hub .ep-hub-tab,
.ep-contact-hub .ep-hub-field,
.ep-contact-hub .ep-hub-label,
.ep-contact-hub .ep-hub-submit,
.ep-contact-hub .ep-hub-channels,
.ep-contact-hub .ep-hub-upload-zone {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.ep-contact-hub .ep-hub-form {
  display: block !important;
}

.ep-contact-hub .ep-hub-field {
  display: flex !important;
  flex-direction: column !important;
}

.ep-contact-hub .ep-hub-tabs {
  flex-direction: row !important;
}

/* === Form & Input Text Visibility Fix === */
/* All form inputs, selects, textareas in the theme */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="url"],
select,
textarea {
  color: #F0F0F8 !important;
}

input::placeholder,
textarea::placeholder {
  color: #A0A0B8 !important;
  opacity: 1 !important;
}

/* Labels everywhere */
label,
.ep-hub-label {
  color: #D8D8EA !important;
}

/* === SELECT / DROPDOWN READABILITY FIX v2 ===
   Force ALL dropdowns to use a visible dark-theme-compatible
   colour scheme. Uses !important on every rule to override
   any cached or inline styles from the production server. */

/* CLOSED STATE: dark background + bright text + cyan arrow */
select,
.ep-hub-form select,
.ep-contact-hub select,
.ep-v2-tab ~ form select,
.woocommerce select,
form select,
body select {
  color: #F0F0F8 !important;
  background-color: #1A1A2E !important;
  border: 1px solid rgba(0, 229, 255, 0.3) !important;
  border-radius: 10px !important;
  padding: 12px 40px 12px 16px !important;
  font-family: 'Exo 2', sans-serif !important;
  font-size: 0.92rem !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2300E5FF' d='M6 8L1 3h10z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  outline: none !important;
  cursor: pointer;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

/* FOCUSED STATE: cyan border glow */
select:focus,
.ep-hub-form select:focus,
.ep-v2-tab ~ form select:focus,
form select:focus {
  border-color: #00E5FF !important;
  box-shadow: 0 0 16px rgba(0, 229, 255, 0.15) !important;
  background-color: #1A1A2E !important;
  color: #F0F0F8 !important;
}

/* OPTIONS inside the native dropdown list */
select option,
.ep-hub-form select option,
.ep-contact-hub select option,
.ep-v2-tab ~ form select option,
.woocommerce select option,
form select option,
body select option {
  background-color: #1A1A2E !important;
  color: #F0F0F8 !important;
  padding: 10px 14px !important;
  font-size: 0.92rem !important;
}

/* Hovered / checked option (Firefox is the only browser that styles these) */
@-moz-document url-prefix() {
  select option:hover,
  select option:checked {
    background-color: #00E5FF !important;
    color: #050510 !important;
  }
}

/* Placeholder / disabled option — dimmer text */
select option[value=""],
select option:disabled {
  color: #8A8A9A !important;
}

/* WooCommerce checkout & cart text visibility */
.woocommerce h2,
.woocommerce h3,
.woocommerce label {
  color: #F0F0F8 !important;
}

.woocommerce p,
.woocommerce td,
.woocommerce th,
.woocommerce .woocommerce-form-row label,
.woocommerce .form-row label {
  color: #E0E0F0 !important;
}

/* WooCommerce checkout specific inputs */
.wc-block-components-text-input input,
.wc-block-components-text-input label,
.wc-block-components-combobox input,
.wc-block-components-combobox label,
.wc-block-checkout__form input,
.wc-block-checkout__form select,
.wc-block-checkout__form label {
  color: #F0F0F8 !important;
}

/* WooCommerce block checkout headings */
.wc-block-checkout h2,
.wc-block-checkout h3,
.wc-block-checkout .wc-block-components-title {
  color: #FFFFFF !important;
}

/* WooCommerce block checkout form labels and text */
.wc-block-checkout p,
.wc-block-checkout label,
.wc-block-checkout .wc-block-components-checkbox__label,
.wc-block-checkout .wc-block-components-radio-control__label,
.wc-block-checkout .wc-block-components-radio-control__description,
.wc-block-checkout .wc-block-components-shipping-rates-control__package,
.wc-block-checkout .wc-block-components-totals-item__label,
.wc-block-checkout .wc-block-components-totals-item__value,
.wc-block-checkout .wc-block-components-order-summary-item__description {
  color: #E0E0F0 !important;
}

/* WooCommerce cart block text */
.wc-block-cart h2,
.wc-block-cart .wc-block-components-product-name,
.wc-block-cart .wc-block-components-product-metadata,
.wc-block-cart .wc-block-components-totals-item__label,
.wc-block-cart .wc-block-components-totals-item__value,
.wc-block-cart .wc-block-components-quantity-selector input {
  color: #F0F0F8 !important;
}

/* Improve all section paragraph readability — v6 brighter */
.ep-section-dark p,
.ep-section-gradient p {
  color: #ECECFF;
}

.ep-section-dark h2,
.ep-section-dark h3,
.ep-section-gradient h2,
.ep-section-gradient h3 {
  color: #FFFFFF;
}

/* === Blog Post Styles === */
.ep-blog-single .wp-block-post-content {
  font-family: 'Exo 2', sans-serif;
  font-size: 1.05rem;
  line-height: 1.85;
  color: #E8E8FA;
}

.ep-blog-single .wp-block-post-content h2 {
  font-family: 'Orbitron', sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #00E5FF;
  margin-top: var(--wp--preset--spacing--50);
  margin-bottom: var(--wp--preset--spacing--20);
  padding-bottom: var(--wp--preset--spacing--10);
  border-bottom: 1px solid rgba(0, 229, 255, 0.12);
}

.ep-blog-single .wp-block-post-content h3 {
  font-family: 'Orbitron', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: #FF00AA;
  margin-top: var(--wp--preset--spacing--40);
  margin-bottom: var(--wp--preset--spacing--20);
}

.ep-blog-single .wp-block-post-content p {
  margin-bottom: 1.4em;
  color: #E8E8FA;
}

.ep-blog-single .wp-block-post-content a {
  color: #00E5FF;
  text-decoration: none;
  border-bottom: 1px solid rgba(0, 229, 255, 0.2);
  transition: border-color 0.3s ease;
}

.ep-blog-single .wp-block-post-content a:hover {
  color: #FF00AA;
  border-bottom-color: rgba(255, 0, 170, 0.4);
}

.ep-blog-single .wp-block-post-content blockquote {
  border-left: 3px solid #9B59FF;
  padding-left: var(--wp--preset--spacing--30);
  margin-left: 0;
  font-style: italic;
  color: #C0C0E0;
}

.ep-blog-single .wp-block-post-content ul,
.ep-blog-single .wp-block-post-content ol {
  padding-left: 1.5em;
  margin-bottom: 1.4em;
}

.ep-blog-single .wp-block-post-content li {
  margin-bottom: 0.5em;
  color: #E0E0F5;
}

.ep-blog-single .wp-block-post-content img {
  border-radius: 12px;
}

.ep-blog-single .ep-blog-share {
  gap: 16px;
}

/* Blog archive cards — consistent image height */
.ep-blog-archive .ep-glass-card .wp-block-post-featured-image {
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.ep-blog-archive .ep-glass-card .wp-block-post-featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Blog archive search form cyberpunk style */
.ep-blog-archive .wp-block-search__inside-wrapper {
  background: rgba(10, 10, 30, 0.6) !important;
  border: 1px solid rgba(0, 229, 255, 0.2) !important;
  border-radius: 50px !important;
  overflow: hidden;
}

.ep-blog-archive .wp-block-search__input {
  background: transparent !important;
  border: none !important;
  color: #F0F0F8 !important;
  font-family: 'Exo 2', sans-serif !important;
  padding: 14px 20px !important;
}

.ep-blog-archive .wp-block-search__input::placeholder {
  color: #8A8A9A !important;
}

.ep-blog-archive .wp-block-search__button {
  background: rgba(0, 229, 255, 0.1) !important;
  border: none !important;
  color: #00E5FF !important;
  padding: 14px 18px !important;
  border-radius: 0 50px 50px 0 !important;
}

.ep-blog-archive .wp-block-search__button:hover {
  background: rgba(0, 229, 255, 0.2) !important;
}

/* Related posts in single post — smaller cards */
.ep-blog-single .wp-block-query .ep-glass-card {
  background: rgba(10, 10, 30, 0.7) !important;
}

.ep-blog-single .wp-block-query .wp-block-post-featured-image {
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.ep-blog-single .wp-block-query .wp-block-post-featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 768px) {
  .ep-blog-single .wp-block-query .wp-block-post-template {
    grid-template-columns: 1fr !important;
  }
}

/* === Section Title Enhancement === */
.ep-section-title-decorated {
  position: relative;
  display: inline-block;
}

.ep-section-title-decorated::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 2px;
  background: linear-gradient(90deg, var(--ep-cyan), var(--ep-magenta));
  border-radius: 1px;
}

/* === Badge Styles === */
.ep-badge {
  font-family: 'Orbitron', sans-serif !important;
  font-size: 0.55rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 4px 12px !important;
  border-radius: 50px !important;
  display: inline-block;
}

.ep-badge-cyan {
  color: var(--ep-black-deep) !important;
  background: var(--ep-cyan) !important;
  box-shadow: 0 0 12px rgba(0,229,255,0.3);
}

.ep-badge-magenta {
  color: var(--ep-black-deep) !important;
  background: var(--ep-magenta) !important;
  box-shadow: 0 0 12px rgba(255,0,170,0.3);
}

/* === Improved Link Hover on Cards === */
.ep-glass-card a:not(.wp-block-button__link) {
  transition: color 0.3s ease;
}

/* === FAQ Details Block Styling === */
.wp-block-details {
  color: #F0F0F8;
}

.wp-block-details summary {
  color: #F0F0F8;
  font-family: 'Orbitron', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  cursor: pointer;
  padding: 4px 0;
  transition: color 0.3s ease;
}

.wp-block-details summary:hover {
  color: var(--ep-cyan);
}

.wp-block-details[open] summary {
  color: var(--ep-cyan);
}

.wp-block-details p {
  color: #D0D0E0 !important;
  font-size: 1.05rem !important;
  line-height: 1.75 !important;
}

/* === WooCommerce Product Collection Cards === */
.woocommerce-product-collection .ep-glass-card,
.wp-block-woocommerce-product-collection .ep-glass-card {
  background: rgba(10, 10, 30, 0.8) !important;
}

/* === Improved Section Text Contrast v6 === */
.ep-section-dark p,
.ep-section-gradient p {
  color: #ECECFF;
}

.ep-section-dark h2,
.ep-section-dark h3,
.ep-section-gradient h2,
.ep-section-gradient h3 {
  color: #FFFFFF;
}

/* FAQ details improved contrast */
.wp-block-details summary {
  color: #FFFFFF !important;
}

/* Cover block text contrast — maximum readability on overlays */
.wp-block-cover p,
.wp-block-cover .has-metallic-gray-color {
  color: #F0F0FF !important;
}

/* === Footer Text Contrast Improvement v6 === */
.ep-site-footer h4.has-cyan-neon-color {
  color: #00E5FF !important;
  text-shadow: 0 0 10px rgba(0,229,255,0.25);
}

.ep-site-footer a:not(.wp-block-button__link) {
  color: #E8E8FA;
}

/* === Neon Gradient Accent on Section Headings === */
.alignfull h2.wp-block-heading.has-metallic-white-color {
  text-shadow: 0 0 12px rgba(240, 240, 248, 0.08);
}

/* === Enhanced Card Hover Effects v5 === */
.ep-glass-card-magenta:hover {
  border-color: rgba(255,0,170,0.45) !important;
  box-shadow: 0 12px 50px rgba(255,0,170,0.14), inset 0 0 25px rgba(255,0,170,0.06);
  transform: translateY(-4px);
}

.ep-glass-card-purple:hover {
  border-color: rgba(155,89,255,0.45) !important;
  box-shadow: 0 12px 50px rgba(155,89,255,0.14), inset 0 0 25px rgba(155,89,255,0.06);
  transform: translateY(-4px);
}

/* === Subtle Pulse Animation on Stat Numbers === */
@keyframes ep-stat-subtle-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.85; }
}

.ep-stat-number {
  animation: ep-stat-subtle-pulse 3s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .ep-stat-number {
    animation: none;
  }
}

/* === Category Badge Hover Enhancement === */
.ep-cat-impressao:hover { border-left-width: 4px !important; background: rgba(0,229,255,0.06) !important; }
.ep-cat-personalizados:hover { border-left-width: 4px !important; background: rgba(255,0,170,0.06) !important; }
.ep-cat-artesanato:hover { border-left-width: 4px !important; background: rgba(155,89,255,0.06) !important; }
.ep-cat-sublimacao:hover { border-left-width: 4px !important; background: rgba(0,255,136,0.06) !important; }
.ep-cat-decoracao:hover { border-left-width: 4px !important; background: rgba(255,215,0,0.06) !important; }
.ep-cat-tecnologia:hover { border-left-width: 4px !important; background: rgba(255,107,53,0.06) !important; }

/* === Enhanced Neon Border on Images === */
.ep-neon-frame:hover::after {
  border-color: var(--ep-cyan);
  box-shadow: inset 0 0 25px rgba(0,229,255,0.1), 0 0 20px rgba(0,229,255,0.06);
}

/* === Smooth Entrance for Sections === */
.wp-block-group.alignfull {
  transition: opacity 0.5s ease;
}

/* === Stat Number Readability === */
.ep-stat-number {
  color: inherit !important;
}

/* === Buttons inside cards better contrast === */
.ep-glass-card .wp-block-button__link {
  position: relative;
  z-index: 2;
}

/* === Cover Block Text Fix === */
.wp-block-cover .wp-block-cover__inner-container p,
.wp-block-cover .wp-block-cover__inner-container h1,
.wp-block-cover .wp-block-cover__inner-container h2,
.wp-block-cover .wp-block-cover__inner-container h3 {
  position: relative;
  z-index: 2;
}

/* === Fix Buttons Alignment — ensure buttons are always centered inline === */
.wp-block-buttons {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px;
}

.wp-block-buttons.has-custom-font-size .wp-block-button,
.wp-block-buttons .wp-block-button {
  margin: 0 !important;
}

/* Ensure cover block inner buttons don't stack vertically */
.wp-block-cover .wp-block-buttons {
  flex-direction: row !important;
  justify-content: center !important;
  align-items: center !important;
}

/* Ensure all CTA sections have centered buttons */
.ep-cta-ambient .wp-block-buttons,
.ep-neon-bar-bottom .wp-block-buttons,
.ep-section-dark .wp-block-buttons,
.ep-section-gradient .wp-block-buttons,
.ep-neon-divider .wp-block-buttons {
  justify-content: center !important;
}

/* === Media Queries === */
@media (max-width: 768px) {
  .ep-neon-cursor,
  .ep-neon-cursor-trail {
    display: none !important;
  }

  /* Improve mobile card readability */
  .ep-glass-card {
    background: rgba(10, 10, 30, 0.92) !important;
  }

  /* Better mobile font sizes */
  .ep-glass-card h3 {
    font-size: 1.05rem !important;
  }

  .ep-glass-card h4 {
    font-size: 1rem !important;
  }

  .ep-glass-card p {
    font-size: 0.92rem !important;
    line-height: 1.75 !important;
    color: #E8E8F5 !important;
  }

  /* Columns go single on mobile */
  .wp-block-columns:not(.is-not-stacked-on-mobile) {
    flex-wrap: wrap !important;
  }

  .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex-basis: 100% !important;
    flex-grow: 0 !important;
  }

  /* Mobile: disable all decorative pseudo-elements that waste GPU */
  .ep-hero-grid-overlay::before,
  .ep-scanlines::after,
  .ep-data-stream-divider::before,
  .ep-holo-grid::after,
  .ep-pulse-border::before,
  .ep-animated-grid::after {
    display: none !important;
  }

  /* Mobile: reduce glass card shimmer animation (saves battery) */
  .ep-glass-card::before {
    animation: none !important;
  }

  /* Mobile: disable CTA ambient rotation (saves battery) */
  .ep-cta-ambient::before {
    animation: none !important;
    display: none !important;
  }

  /* Mobile: ensure all text is readable without needing to pinch-zoom */
  body {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  /* Mobile: improve list readability */
  .wp-block-list li,
  ul li, ol li {
    font-size: 0.88rem;
    line-height: 1.7;
  }

  /* Mobile: images inside columns should be full width */
  .wp-block-column .wp-block-image img {
    width: 100% !important;
    height: auto !important;
  }

  /* Mobile: WooCommerce ordering dropdown — full width */
  .woocommerce-ordering {
    width: 100%;
  }

  .woocommerce .orderby,
  select.orderby {
    width: 100% !important;
  }

  /* Mobile: improve cover block text readability */
  .wp-block-cover__inner-container {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  /* Mobile: disable 3D tilt on cards (causes jank on low-end devices) */
  .ep-glass-card {
    will-change: auto !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ep-fade-up {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .ep-glitch-text {
    animation: none;
  }

  .ep-pulse-btn .wp-block-button__link {
    animation: none;
  }

  .ep-loading-screen {
    display: none !important;
  }

  .ep-typing-cursor {
    animation: none;
  }

  /* Disable all decorative animations for reduced motion */
  .ep-shimmer-line,
  .ep-glass-card::before,
  .ep-data-stream-divider::before,
  .ep-neon-bar-bottom::after,
  .ep-pulse-border::before,
  .ep-cta-ambient::before,
  .ep-hero-grid-overlay::before,
  .ep-loading-ring,
  .ep-loading-ring-2,
  .ep-loading-scanline,
  .ep-loading-flash,
  .ep-ambient-player.is-playing .ep-ap-toggle::after {
    animation: none !important;
  }

  * {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* === ACCESSIBILITY: Skip to Content Link === */
.ep-skip-to-content {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  z-index: 100001;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  color: #050510;
  background: #00E5FF;
  padding: 16px 32px;
  border-radius: 0 0 12px 12px;
  box-shadow: 0 4px 20px rgba(0, 229, 255, 0.4);
}

.ep-skip-to-content:focus {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  clip-path: none;
}

/* === ACCESSIBILITY: Enhanced Focus Visible === */
*:focus-visible {
  outline: 2px solid #00E5FF !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 4px rgba(0, 229, 255, 0.25) !important;
  border-radius: 4px;
}

/* Remove default outline for mouse users */
*:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

/* Specific focus styles for buttons */
.wp-block-button__link:focus-visible,
.ep-btn-solid-cyan .wp-block-button__link:focus-visible,
.ep-btn-cyan .wp-block-button__link:focus-visible,
.ep-btn-magenta .wp-block-button__link:focus-visible,
.ep-btn-purple .wp-block-button__link:focus-visible {
  outline: 2px solid #FFFFFF !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px rgba(0, 229, 255, 0.35) !important;
}

/* Focus on glass cards */
.ep-glass-card:focus-visible {
  outline: 2px solid #00E5FF !important;
  outline-offset: 2px !important;
  border-color: rgba(0, 229, 255, 0.5) !important;
}

/* Focus on nav links */
.ep-nav-link:focus-visible,
.ep-more-menu-trigger:focus-visible,
.ep-mega-menu-trigger:focus-visible,
.ep-mobile-toggle:focus-visible,
.ep-search-toggle:focus-visible,
.ep-account-link:focus-visible,
.ep-mini-cart-link:focus-visible {
  outline: 2px solid #00E5FF !important;
  outline-offset: 2px !important;
  border-radius: 6px;
}

/* Focus inside overlays */
.ep-mega-menu-overlay *:focus-visible,
.ep-mobile-nav-overlay *:focus-visible {
  outline: 2px solid #00E5FF !important;
  outline-offset: 2px !important;
}

/* Focus on form elements */
.ep-hub-form input:focus-visible,
.ep-hub-form select:focus-visible,
.ep-hub-form textarea:focus-visible,
.ep-search-input:focus-visible {
  outline: 2px solid #00E5FF !important;
  outline-offset: 0 !important;
  border-color: #00E5FF !important;
  box-shadow: 0 0 0 3px rgba(0, 229, 255, 0.2), 0 0 16px rgba(0, 229, 255, 0.1) !important;
}

/* Focus on details/summary (FAQ) */
.wp-block-details summary:focus-visible {
  outline: 2px solid #00E5FF !important;
  outline-offset: 4px !important;
  border-radius: 4px;
}

/* Focus on carousel arrows */
.ep-gc-arrow:focus-visible {
  outline: 2px solid #00E5FF !important;
  outline-offset: 2px !important;
  border-color: rgba(0, 229, 255, 0.5) !important;
}

/* Focus on audio player buttons */
.ep-ap-toggle:focus-visible,
.ep-ap-btn:focus-visible,
.ep-ap-playlist-item:focus-visible {
  outline: 2px solid #00E5FF !important;
  outline-offset: 2px !important;
}

/* === ACCESSIBILITY: High Contrast Mode === */
@media (prefers-contrast: more) {
  :root {
    --ep-metallic-gray: #D0D0E0;
    --ep-metallic-white: #FFFFFF;
    --ep-glass-bg: rgba(0, 0, 0, 0.85);
    --ep-glass-border: rgba(0, 229, 255, 0.35);
  }

  body {
    background: #000000 !important;
  }

  .ep-glass-card {
    background: rgba(0, 0, 0, 0.9) !important;
    border: 2px solid rgba(0, 229, 255, 0.4) !important;
  }

  .ep-glass-card p,
  .ep-glass-card .has-metallic-gray-color {
    color: #FFFFFF !important;
  }

  .has-metallic-gray-color {
    color: #E0E0F0 !important;
  }

  /* Increase text contrast on dark backgrounds */
  .ep-section-dark p,
  .ep-section-gradient p {
    color: #F0F0F8 !important;
  }

  /* Make links more visible */
  a {
    text-decoration: underline !important;
  }

  a:hover {
    text-decoration-thickness: 2px !important;
  }

  /* Stronger borders on interactive elements */
  button,
  [role="button"],
  input,
  select,
  textarea {
    border-width: 2px !important;
  }

  /* Ensure focus is always very visible */
  *:focus-visible {
    outline-width: 3px !important;
    outline-offset: 4px !important;
    box-shadow: 0 0 0 6px rgba(0, 229, 255, 0.4) !important;
  }
}

/* === ACCESSIBILITY: Screen Reader Only (visually hidden but accessible) ===
   Blind users hear these elements via their screen reader even though
   sighted users never see them. Use for contextual descriptions that
   make visual-only content understandable through audio alone. */
.sr-only,
.screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Ensure aria-live regions are positioned but not visible.
   These regions are read aloud by screen readers when their content
   changes — blind users hear announcements like "Mensagem enviada
   com sucesso" or "Menu aberto" without needing to see anything. */
[aria-live="polite"],
[aria-live="assertive"] {
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/* Exception: status messages that are part of the form flow should be visible */
.ep-hub-status[aria-live="polite"] {
  clip: auto;
  clip-path: none;
  height: auto;
  overflow: visible;
  position: static;
  white-space: normal;
  width: auto;
}

/* === Floating WhatsApp Button === */
.ep-whatsapp-float-btn#ep-wa-float {
  position: fixed;
  bottom: 90px;
  right: 24px;
  z-index: 9989;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #25D366;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(37, 211, 102, 0.4), 0 0 30px rgba(37, 211, 102, 0.15);
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  text-decoration: none;
  border: none;
  cursor: pointer;
}

.ep-whatsapp-float-btn#ep-wa-float:hover {
  transform: scale(1.1) !important;
  box-shadow: 0 6px 30px rgba(37, 211, 102, 0.5), 0 0 50px rgba(37, 211, 102, 0.2);
}

.ep-whatsapp-float-btn#ep-wa-float::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 2px solid rgba(37, 211, 102, 0.25);
  animation: ep-wa-pulse 2.5s ease-in-out infinite;
  pointer-events: none;
}

@keyframes ep-wa-pulse {
  0%, 100% { transform: scale(1); opacity: 0.4; }
  50% { transform: scale(1.2); opacity: 0; }
}

/* === Back to Top Button === */
.ep-back-to-top {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9988;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(8, 8, 24, 0.92);
  border: 1px solid rgba(0, 229, 255, 0.2);
  color: #8A8A9A;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
  padding: 0;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.ep-back-to-top:hover {
  color: #00E5FF;
  border-color: rgba(0, 229, 255, 0.45);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.5), 0 0 20px rgba(0, 229, 255, 0.12);
  transform: translateY(-3px);
}

/* === Cookie Notice (RGPD) === */
.ep-cookie-notice {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 99997;
  background: rgba(5, 5, 16, 0.96);
  border-top: 1px solid rgba(0, 229, 255, 0.15);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  padding: 18px clamp(1.5rem, 3vw, 4rem);
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.4s ease, transform 0.4s ease;
  box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.4);
}

.ep-cookie-notice::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #00E5FF, #FF00AA, #9B59FF, transparent);
  opacity: 0.5;
}

.ep-cookie-notice-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.ep-cookie-notice-text {
  font-family: 'Exo 2', sans-serif;
  font-size: 0.85rem;
  color: #D0D0E0;
  line-height: 1.6;
  margin: 0;
  flex: 1;
  min-width: 200px;
}

.ep-cookie-notice-text a {
  color: #00E5FF;
  text-decoration: none;
  transition: color 0.3s ease;
}

.ep-cookie-notice-text a:hover {
  color: #FF00AA;
}

.ep-cookie-notice-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.ep-cookie-accept {
  font-family: 'Orbitron', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #050510;
  background: linear-gradient(135deg, #00E5FF, #00B8D4);
  border: none;
  border-radius: 50px;
  padding: 12px 28px;
  cursor: pointer;
  box-shadow: 0 0 16px rgba(0, 229, 255, 0.3);
  transition: all 0.3s ease;
}

.ep-cookie-accept:hover {
  box-shadow: 0 0 28px rgba(0, 229, 255, 0.45);
  transform: translateY(-1px);
}

.ep-cookie-more {
  font-family: 'Orbitron', sans-serif;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #8A8A9A;
  text-decoration: none;
  padding: 10px 20px;
  border: 1px solid rgba(0, 229, 255, 0.15);
  border-radius: 50px;
  transition: all 0.3s ease;
}

.ep-cookie-more:hover {
  color: #00E5FF;
  border-color: rgba(0, 229, 255, 0.4);
}

@media (max-width: 768px) {
  .ep-cookie-notice-inner {
    flex-direction: column;
    text-align: center;
    gap: 14px;
  }

  .ep-cookie-notice-actions {
    width: 100%;
    justify-content: center;
    gap: 10px;
  }

  .ep-cookie-notice-text {
    font-size: 0.8rem !important;
    line-height: 1.5;
  }

  /* Mobile: footer payment section — more compact */
  .ep-site-footer .ep-footer-payments {
    gap: 6px !important;
  }

  /* Mobile: scroll progress bar — slightly thinner */
  .ep-scroll-progress {
    height: 2px;
  }

  /* Mobile: cookie notice shifts floating buttons up */
  .ep-cookie-notice {
    padding: 14px 16px !important;
  }
}

/* === Accessibility Panel === */
.ep-a11y-toggle {
  position: fixed;
  bottom: 160px;
  right: 24px;
  z-index: 9987;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(8, 8, 24, 0.92);
  border: 1px solid rgba(0, 229, 255, 0.25);
  color: #00E5FF;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
  padding: 0;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.ep-a11y-toggle:hover {
  border-color: rgba(0, 229, 255, 0.5);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.5), 0 0 20px rgba(0, 229, 255, 0.12);
  transform: translateY(-3px);
}

.ep-a11y-panel {
  position: fixed;
  bottom: 160px;
  right: 80px;
  z-index: 9986;
  width: 300px;
  max-height: 480px;
  background: rgba(6, 6, 20, 0.97);
  border: 1px solid rgba(0, 229, 255, 0.2);
  border-radius: 20px;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transform: translateX(20px) scale(0.95);
  transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.35s,
              transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
  box-shadow: 0 16px 60px rgba(0, 0, 0, 0.6), 0 0 30px rgba(0, 229, 255, 0.06);
  display: flex;
  flex-direction: column;
}

.ep-a11y-panel::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #00E5FF, #FF00AA, #9B59FF, transparent);
  opacity: 0.6;
  z-index: 1;
}

.ep-a11y-panel.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateX(0) scale(1);
  pointer-events: auto;
}

.ep-a11y-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px 12px;
  border-bottom: 1px solid rgba(0, 229, 255, 0.08);
}

.ep-a11y-panel-title {
  font-family: 'Orbitron', sans-serif;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #00E5FF;
  text-shadow: 0 0 8px rgba(0, 229, 255, 0.3);
}

.ep-a11y-close {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(0, 229, 255, 0.08);
  color: #5A5A6A;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  padding: 0;
}

.ep-a11y-close:hover {
  color: #00E5FF;
  border-color: rgba(0, 229, 255, 0.3);
}

.ep-a11y-panel-body {
  padding: 12px 14px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  overflow-y: auto;
  max-height: 340px;
  -webkit-overflow-scrolling: touch;
}

.ep-a11y-option {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 14px 8px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(0, 229, 255, 0.08);
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.3s ease;
  color: #B0B0C8;
  font-family: 'Exo 2', sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  text-align: center;
  line-height: 1.3;
}

.ep-a11y-option:hover {
  border-color: rgba(0, 229, 255, 0.25);
  background: rgba(0, 229, 255, 0.03);
  color: #E0E0F0;
}

.ep-a11y-option.is-active {
  border-color: rgba(0, 229, 255, 0.5);
  background: rgba(0, 229, 255, 0.08);
  color: #00E5FF;
  box-shadow: 0 0 12px rgba(0, 229, 255, 0.1);
}

.ep-a11y-option-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(0, 229, 255, 0.04);
  border: 1px solid rgba(0, 229, 255, 0.1);
  color: inherit;
  transition: border-color 0.3s ease;
}

.ep-a11y-option.is-active .ep-a11y-option-icon {
  border-color: rgba(0, 229, 255, 0.4);
  background: rgba(0, 229, 255, 0.1);
}

.ep-a11y-panel-footer {
  padding: 10px 16px 14px;
  border-top: 1px solid rgba(0, 229, 255, 0.06);
  text-align: center;
}

.ep-a11y-reset {
  font-family: 'Orbitron', sans-serif;
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #8A8A9A;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(138, 138, 154, 0.15);
  border-radius: 50px;
  padding: 8px 20px;
  cursor: pointer;
  transition: all 0.3s ease;
  width: 100%;
  margin-bottom: 8px;
}

.ep-a11y-reset:hover {
  color: #FF00AA;
  border-color: rgba(255, 0, 170, 0.3);
  background: rgba(255, 0, 170, 0.04);
}

.ep-a11y-panel-legal {
  font-family: 'Exo 2', sans-serif;
  font-size: 0.58rem;
  color: #4A4A5A;
  margin: 0;
  line-height: 1.4;
}

/* Accessibility mode: High Contrast */
body.ep-a11y-high-contrast {
  filter: contrast(1.4) !important;
}

body.ep-a11y-high-contrast .ep-glass-card {
  background: rgba(0, 0, 0, 0.95) !important;
  border-width: 2px !important;
}

/* Accessibility mode: Large Text */
body.ep-a11y-large-text {
  font-size: 1.35rem !important;
}

body.ep-a11y-large-text p,
body.ep-a11y-large-text li,
body.ep-a11y-large-text td,
body.ep-a11y-large-text th,
body.ep-a11y-large-text label {
  font-size: 1.15rem !important;
}

body.ep-a11y-large-text h1 { font-size: 2.5rem !important; }
body.ep-a11y-large-text h2 { font-size: 2rem !important; }
body.ep-a11y-large-text h3 { font-size: 1.6rem !important; }
body.ep-a11y-large-text h4 { font-size: 1.3rem !important; }

/* Accessibility mode: Text Spacing */
body.ep-a11y-text-spacing p,
body.ep-a11y-text-spacing li,
body.ep-a11y-text-spacing td,
body.ep-a11y-text-spacing th,
body.ep-a11y-text-spacing span {
  letter-spacing: 0.12em !important;
  word-spacing: 0.16em !important;
}

/* Accessibility mode: No Animations */
body.ep-a11y-no-animations *,
body.ep-a11y-no-animations *::before,
body.ep-a11y-no-animations *::after {
  animation: none !important;
  transition: none !important;
}

body.ep-a11y-no-animations .ep-loading-screen {
  display: none !important;
}

/* Accessibility mode: Dyslexia-friendly font */
body.ep-a11y-dyslexia {
  font-family: 'Comic Sans MS', 'OpenDyslexic', 'Verdana', sans-serif !important;
}

body.ep-a11y-dyslexia p,
body.ep-a11y-dyslexia li,
body.ep-a11y-dyslexia td,
body.ep-a11y-dyslexia th,
body.ep-a11y-dyslexia span:not(.ep-hud-label):not(.ep-stat-number),
body.ep-a11y-dyslexia label {
  font-family: 'Comic Sans MS', 'OpenDyslexic', 'Verdana', sans-serif !important;
  letter-spacing: 0.05em !important;
  word-spacing: 0.1em !important;
}

/* Accessibility mode: Highlight Links */
body.ep-a11y-highlight-links a:not(.wp-block-button__link) {
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 3px !important;
  outline: 2px solid rgba(0, 229, 255, 0.3) !important;
  outline-offset: 2px !important;
  border-radius: 2px;
}

/* Accessibility mode: Big Cursor */
body.ep-a11y-big-cursor,
body.ep-a11y-big-cursor * {
  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 d='M4 4L4 28L12 20L20 28L24 24L16 16L28 16Z' fill='%2300E5FF' stroke='%23050510' stroke-width='2'/%3E%3C/svg%3E") 4 4, auto !important;
}

body.ep-a11y-big-cursor .ep-neon-cursor,
body.ep-a11y-big-cursor .ep-neon-cursor-trail {
  display: none !important;
}

/* Accessibility mode: Increased Line Height */
body.ep-a11y-line-height p,
body.ep-a11y-line-height li,
body.ep-a11y-line-height td,
body.ep-a11y-line-height th {
  line-height: 2.2 !important;
}

/* Accessibility mode: Read Aloud (Text-to-Speech) */
body.ep-a11y-read-aloud p,
body.ep-a11y-read-aloud h1,
body.ep-a11y-read-aloud h2,
body.ep-a11y-read-aloud h3,
body.ep-a11y-read-aloud h4,
body.ep-a11y-read-aloud h5,
body.ep-a11y-read-aloud h6,
body.ep-a11y-read-aloud li,
body.ep-a11y-read-aloud td,
body.ep-a11y-read-aloud th,
body.ep-a11y-read-aloud summary,
body.ep-a11y-read-aloud span:not(.ep-ap-eq-bar):not(.ep-gc-dot),
body.ep-a11y-read-aloud a:not(.wp-block-button__link),
body.ep-a11y-read-aloud button:not(.ep-a11y-option):not(.ep-a11y-close):not(.ep-a11y-reset):not(.ep-a11y-toggle),
body.ep-a11y-read-aloud label {
  cursor: pointer !important;
  transition: outline 0.2s ease, background-color 0.2s ease;
}

body.ep-a11y-read-aloud p:hover,
body.ep-a11y-read-aloud h1:hover,
body.ep-a11y-read-aloud h2:hover,
body.ep-a11y-read-aloud h3:hover,
body.ep-a11y-read-aloud h4:hover,
body.ep-a11y-read-aloud li:hover,
body.ep-a11y-read-aloud summary:hover {
  outline: 1px dashed rgba(0, 229, 255, 0.3) !important;
  outline-offset: 2px !important;
  background-color: rgba(0, 229, 255, 0.02) !important;
}

/* Read aloud active indicator on the accessibility toggle button */
body.ep-a11y-read-aloud .ep-a11y-toggle {
  border-color: rgba(0, 255, 136, 0.5);
  box-shadow: 0 0 16px rgba(0, 255, 136, 0.2), 0 4px 20px rgba(0, 0, 0, 0.4);
}

body.ep-a11y-read-aloud .ep-a11y-toggle::after {
  content: '';
  position: absolute;
  top: -3px;
  right: -3px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #00FF88;
  box-shadow: 0 0 8px rgba(0, 255, 136, 0.5);
  animation: ep-tts-pulse 2s ease-in-out infinite;
}

@keyframes ep-tts-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.2); }
}

/* TTS Speed Control Bar positioning */
#ep-tts-speed-bar {
  animation: epTTSBarIn 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes epTTSBarIn {
  from { opacity: 0; transform: translateX(-50%) translateY(10px); }
  to { opacity: 1; transform: translateX(-50%) translateY(0); }
}

@media (max-width: 768px) {
  #ep-tts-speed-bar {
    bottom: 68px !important;
    padding: 8px 14px !important;
    gap: 4px !important;
    max-width: calc(100vw - 24px);
  }

  #ep-tts-speed-bar span {
    display: none !important;
  }

  #ep-tts-speed-bar button[data-speed] {
    font-size: 0.5rem !important;
    padding: 5px 10px !important;
  }
}

@media (max-width: 480px) {
  #ep-tts-speed-bar {
    bottom: 62px !important;
  }
}

@media (max-width: 768px) {
  .ep-a11y-toggle {
    display: flex !important;
    z-index: 9991;
  }

  .ep-a11y-panel {
    bottom: auto;
    top: 50%;
    right: 50%;
    transform: translate(50%, -50%) scale(0.95);
    width: calc(100vw - 24px);
    max-width: 340px;
    max-height: 85vh;
    z-index: 99990;
  }

  .ep-a11y-panel.is-open {
    transform: translate(50%, -50%) scale(1);
  }

  /* Mobile: accessibility panel options — larger touch targets */
  .ep-a11y-option {
    padding: 16px 10px !important;
    min-height: 44px;
  }

  .ep-a11y-panel-body {
    gap: 6px !important;
  }
}

@media (max-width: 480px) {
  .ep-a11y-toggle {
    display: flex !important;
  }
}

/* Very small screens (< 360px, e.g. Poco 3 compact mode) */
@media (max-width: 380px) {
  /* Stack floating buttons in a compact row at bottom right */
  .ep-a11y-toggle {
    right: 96px !important;
    bottom: 12px !important;
    width: 36px !important;
    height: 36px !important;
  }

  .ep-whatsapp-float-btn#ep-wa-float {
    right: 52px !important;
    bottom: 12px !important;
    width: 38px !important;
    height: 38px !important;
  }

  .ep-whatsapp-float-btn#ep-wa-float svg {
    width: 18px;
    height: 18px;
  }

  .ep-back-to-top {
    right: 12px !important;
    bottom: 12px !important;
    width: 34px !important;
    height: 34px !important;
  }

  .ep-back-to-top svg {
    width: 14px;
    height: 14px;
  }

  .ep-a11y-toggle svg {
    width: 18px;
    height: 18px;
  }

  /* Ensure the WhatsApp pulse ring doesn't overflow */
  .ep-whatsapp-float-btn#ep-wa-float::after {
    display: none;
  }

  /* Audio player button — smaller on very small screens */
  .ep-ambient-player {
    bottom: 10px !important;
    left: 6px !important;
  }

  .ep-ap-toggle {
    width: 36px !important;
    height: 36px !important;
  }

  .ep-ap-panel {
    width: calc(100vw - 16px) !important;
    max-width: 300px !important;
  }

  /* Prevent any horizontal overflow on small screens */
  body {
    overflow-x: hidden !important;
  }

  .wp-site-blocks {
    overflow-x: hidden !important;
  }

  /* Very small: reduce hero min-height even more */
  .ep-hero-section {
    min-height: 55vh !important;
  }

  /* Very small: heading sizes */
  h1.wp-block-heading { font-size: 1.35rem !important; }
  h2.wp-block-heading { font-size: 1.15rem !important; }

  /* Very small: glass card padding */
  .ep-glass-card {
    padding: var(--wp--preset--spacing--20) !important;
  }

  /* Very small: buttons — stack with full width */
  .wp-block-buttons {
    flex-direction: column !important;
    align-items: center !important;
    width: 100%;
  }

  .wp-block-button {
    width: 100% !important;
    max-width: 280px;
  }

  /* Very small: reduce stat number size */
  .ep-stat-number {
    font-size: clamp(1.5rem, 8vw, 2.25rem) !important;
  }

  /* Very small: table rows in price lists — stack */
  .ep-glass-card .wp-block-group[style*="justifyContent"]:not(.ep-footer-payments) {
    flex-direction: column !important;
    gap: 4px !important;
    align-items: flex-start !important;
  }

  /* Very small: mobile nav links — even larger touch targets */
  .ep-mobile-nav-link {
    padding: 20px 16px !important;
    font-size: 0.78rem !important;
  }

  /* Very small: prevent horizontal scroll from cover block backgrounds */
  .wp-block-cover {
    overflow: hidden !important;
  }

  /* Very small: scroll progress bar thinner */
  .ep-scroll-progress {
    height: 2px !important;
  }

  /* Very small: accessibility panel — centred overlay */
  .ep-a11y-panel {
    width: calc(100vw - 16px) !important;
    max-width: 320px !important;
    right: 50% !important;
    bottom: auto !important;
    top: 50% !important;
    transform: translate(50%, -50%) scale(0.95) !important;
  }

  .ep-a11y-panel.is-open {
    transform: translate(50%, -50%) scale(1) !important;
  }

  /* Very small: header logo — smaller */
  .ep-site-header .ep-header-logo-text {
    font-size: 0.8rem !important;
    letter-spacing: 0.02em !important;
  }

  /* Very small: header actions — tighter spacing */
  .ep-header-actions {
    gap: 0 !important;
  }

  /* Very small: mobile toggle button — ensure visible */
  .ep-mobile-toggle {
    width: 38px !important;
    height: 38px !important;
    flex-shrink: 0 !important;
  }

  /* Very small: reduce section side padding further */
  .wp-block-group.alignfull {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  /* Very small: cookie notice — compact */
  .ep-cookie-notice-inner {
    padding: 0 10px;
  }

  .ep-cookie-notice-text {
    font-size: 0.72rem !important;
  }

  .ep-cookie-accept {
    padding: 8px 18px !important;
    font-size: 0.55rem !important;
  }
}

/* ===================================================================
   MOBILE FLOATING BUTTONS — ALWAYS VISIBLE FROM PAGE LOAD
   Accessibility and WhatsApp must appear immediately without scroll.
   A person with disabilities should not have to scroll the entire
   page to find the accessibility button.

   CRITICAL FIX: On mobile, `position: fixed` can fail when any
   ancestor has `transform`, `filter`, `perspective`, or
   `will-change: transform`. The `backdrop-filter` on the header
   and other glassmorphism elements creates such contexts. We force
   the floating buttons to break out of any stacking context by
   ensuring they live at the top level of the DOM (done via JS in
   floating-elements.js) and by adding explicit `position: fixed`
   with `!important` plus `contain: none` to prevent containment.
   =================================================================== */

/* Force ALL floating buttons to be position:fixed against the
   viewport on every screen size — including mobile. This overrides
   any inherited transform/filter contexts that break fixed. */
.ep-whatsapp-float-btn#ep-wa-float,
.ep-a11y-toggle,
.ep-back-to-top {
  position: fixed !important;
  contain: none !important;
}

/* The audio player button also needs the same fix */
.ep-ambient-player {
  position: fixed !important;
  contain: none !important;
}

@media (max-width: 992px) {
  /* WhatsApp — always visible, no transform/opacity hiding */
  .ep-whatsapp-float-btn#ep-wa-float {
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
    visibility: visible !important;
  }

  /* Accessibility toggle — always visible */
  .ep-a11y-toggle {
    opacity: 1 !important;
    visibility: visible !important;
    display: flex !important;
    pointer-events: auto !important;
  }

  /* Audio player — always visible */
  .ep-ambient-player {
    opacity: 1 !important;
    visibility: visible !important;
    display: flex !important;
  }

  /* Back to top — this one CAN stay hidden until scroll (it's not urgent) */

  /* Ensure none of the floating buttons are pushed off-screen by
     cookie notice or other bottom-fixed elements */
  .ep-cookie-notice ~ .ep-whatsapp-float-btn,
  .ep-cookie-notice ~ .ep-a11y-toggle {
    /* When cookie bar is showing, buttons shift up slightly */
    transition: bottom 0.3s ease !important;
  }
}

/* === Scroll Progress Bar === */
.ep-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  z-index: 99998;
  background: transparent;
  pointer-events: none;
}

.ep-scroll-progress-bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #00E5FF, #FF00AA, #9B59FF);
  box-shadow: 0 0 8px rgba(0, 229, 255, 0.4), 0 0 16px rgba(0, 229, 255, 0.2);
  transition: width 0.1s linear;
  border-radius: 0 2px 2px 0;
}

/* === ACCESSIBILITY: Minimum Touch Target Size (44x44px) === */
@media (pointer: coarse) {
  .ep-nav-link,
  .ep-more-menu-trigger,
  .ep-mega-menu-trigger,
  .ep-search-toggle,
  .ep-account-link,
  .ep-mini-cart-link,
  .ep-social-link,
  .ep-more-menu-item,
  .ep-mobile-nav-link {
    min-height: 44px;
    min-width: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .ep-gc-arrow {
    min-width: 44px;
    min-height: 44px;
  }

  .ep-gc-dot {
    min-width: 44px;
    min-height: 44px;
    padding: 18px 4px;
  }

  .ep-ap-btn {
    min-width: 44px;
    min-height: 44px;
  }

  .ep-ap-playlist-item {
    min-height: 44px;
  }

  .ep-hub-tab {
    min-height: 44px;
  }

  .wp-block-details summary {
    min-height: 44px;
    display: flex;
    align-items: center;
  }
}