/*
Theme Name: Hypnosis Store Theme
Theme URI: https://store.hypnosisstageshow.com
Author: Antigravity / Vivid Design
Author URI: https://www.vividgraphicdesign.ca
Description: A modern premium dark/neon custom theme designed for John Cerbone's store, utilizing Easy Digital Downloads.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hypnosis-store-theme
*/

/* Modern Premium CSS for Hypnosis Stage Show */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;800;900&display=swap');

:root {
  --font-family: 'Outfit', sans-serif;
  
  /* Color Palette - Extra Saturated Neon Violet & Cyan Theme */
  --bg-deep: hsl(265, 85%, 8%);
  --bg-dark: hsl(265, 80%, 12%);
  --bg-card: hsl(265, 75%, 16%);
  --bg-card-hover: hsl(265, 80%, 20%);
  
  --text-primary: hsl(0, 0%, 100%);
  --text-secondary: hsl(180, 100%, 80%);
  --text-muted: hsl(270, 80%, 80%);
  
  --accent-purple: hsl(285, 100%, 65%); /* Brightened Neon Purple */
  --accent-blue: hsl(230, 100%, 65%);
  --accent-cyan: hsl(180, 100%, 50%);   /* Saturated Neon Cyan */
  --accent-green: hsl(120, 100%, 50%);
  
  --gradient-primary: linear-gradient(135deg, var(--accent-purple), var(--accent-cyan));
  --gradient-glow: linear-gradient(135deg, hsla(285, 100%, 65%, 0.45), hsla(180, 100%, 50%, 0.45));
  --gradient-section: linear-gradient(180deg, hsl(265, 85%, 8%), hsl(265, 75%, 14%));
  --gradient-card: linear-gradient(135deg, hsl(265, 75%, 16%), hsl(285, 75%, 22%));
  --shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 10px 10px -5px rgba(0, 0, 0, 0.4);
  --border-glass: 1px solid hsla(0, 0%, 100%, 0.08);
  
  --border-radius: 12px;
  --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-family);
  background-color: var(--bg-deep);
  background-image: 
    radial-gradient(circle at 10% 20%, hsla(285, 100%, 65%, 0.15) 0%, transparent 40%),
    radial-gradient(circle at 90% 80%, hsla(180, 100%, 50%, 0.15) 0%, transparent 40%),
    linear-gradient(rgba(18, 16, 24, 0.4) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 16, 24, 0.4) 1px, transparent 1px);
  background-size: 100% 100%, 100% 100%, 40px 40px, 40px 40px;
  color: var(--text-primary);
  line-height: 1.6;
  overflow-x: hidden;
  position: relative;
}

body::before, body::after {
  content: '';
  position: absolute;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  filter: blur(120px);
  z-index: -1;
  pointer-events: none;
  opacity: 0.5;
}

body::before {
  background: var(--accent-purple);
  top: 10%;
  left: -10%;
  animation: floatOrbPurple 25s infinite alternate ease-in-out;
}

body::after {
  background: var(--accent-cyan);
  bottom: 20%;
  right: -10%;
  animation: floatOrbCyan 30s infinite alternate ease-in-out;
}

@keyframes floatOrbPurple {
  0% {
    transform: translate(0, 0) scale(1);
  }
  50% {
    transform: translate(150px, 80px) scale(1.2);
  }
  100% {
    transform: translate(-50px, 150px) scale(0.9);
  }
}

@keyframes floatOrbCyan {
  0% {
    transform: translate(0, 0) scale(1);
  }
  50% {
    transform: translate(-120px, -100px) scale(0.85);
  }
  100% {
    transform: translate(100px, 50px) scale(1.15);
  }
}

p {
  color: var(--text-primary) !important;
}

a {
  color: inherit;
  text-decoration: none;
  transition: var(--transition);
}

/* Header & Nav */
header {
  background: linear-gradient(90deg, hsla(265, 85%, 8%, 0.85), hsla(285, 75%, 14%, 0.85), hsla(180, 100%, 8%, 0.85));
  backdrop-filter: blur(12px);
  position: sticky;
  top: 0;
  z-index: 1000;
  border-bottom: var(--border-glass);
}

.nav-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 2rem;
}

.logo-link {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.logo-title {
  font-weight: 900;
  font-size: 1.5rem;
  font-style: italic;
  padding-right: 0.25rem;
  background: linear-gradient(45deg, var(--text-primary), var(--accent-cyan));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 0.5px rgba(255, 255, 255, 0.45);
}

.logo-subtitle {
  font-weight: 600;
  font-size: 0.8rem;
  letter-spacing: 1px;
  color: var(--text-primary);
}

.nav-menu {
  display: flex;
  list-style: none;
  gap: 1.5rem;
}

.nav-menu a {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--text-secondary);
}

.nav-menu a:hover,
.nav-menu .active {
  color: var(--text-primary);
  text-shadow: 0 0 10px var(--accent-cyan);
}

.menu-toggle {
  display: none;
  background: none;
  border: none;
  color: var(--text-primary);
  font-size: 1.5rem;
  cursor: pointer;
}

@keyframes floatOrb1 {
  0% { 
    transform: translate(0, 0) scale(1) rotate(0deg);
    filter: blur(80px);
  }
  33% { 
    transform: translate(140px, -60px) scale(1.25) rotate(120deg);
    filter: blur(100px);
  }
  66% { 
    transform: translate(-40px, 80px) scale(0.85) rotate(240deg);
    filter: blur(90px);
  }
  100% { 
    transform: translate(0, 0) scale(1) rotate(360deg);
    filter: blur(80px);
  }
}

@keyframes floatOrb2 {
  0% { 
    transform: translate(0, 0) scale(1) rotate(360deg);
    filter: blur(100px);
  }
  50% { 
    transform: translate(-120px, -80px) scale(1.3) rotate(180deg);
    filter: blur(80px);
  }
  100% { 
    transform: translate(0, 0) scale(1) rotate(0deg);
    filter: blur(100px);
  }
}

.hero {
  position: relative;
  padding: 8.5rem 2rem calc(4.5rem + 119px);
  background-color: #0c0817;
  border-bottom: var(--border-glass);
  overflow: hidden;
}

.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(25, 15, 45, 0.2), rgba(10, 5, 20, 0.5)),
              url('assets/site_hero.jpg') no-repeat center center / cover;
  background-blend-mode: overlay;
  filter: brightness(1.4) contrast(1.25);
  z-index: 0;
  pointer-events: none;
}

.hero-container {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 4rem;
  align-items: center;
}

/* Page-specific overrides */
.hero:not(.hero-subpage) .hero-container {
  margin-top: -3.5rem; /* Shifts the content up only on the main page hero */
}

#professional-training::after {
  background: linear-gradient(to bottom, rgba(10, 5, 20, 0.70), rgba(10, 5, 20, 0.90)),
              url('assets/john_cerbone_teaching_class.jpg') no-repeat center center / cover !important;
}

.hero-image-wrapper {
  position: relative;
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  border: 3px solid var(--accent-cyan);
  max-width: 380px;
  justify-self: center;
  width: 100%;
}

.hero-image-wrapper::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, var(--bg-deep), transparent 60%);
  z-index: 1;
}

.hero-image-wrapper img {
  width: 100%;
  height: auto;
  display: block;
  transition: var(--transition);
}

.hero-image-wrapper:hover img {
  transform: scale(1.03);
}

.hero.hero-subpage {
  padding: 8rem 2rem calc(4.5rem + 119px);
  background-color: #0c0817;
  overflow: hidden;
  position: relative;
}

.hero.hero-subpage::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(25, 15, 45, 0.2), rgba(10, 5, 20, 0.5)),
              url('https://hypnosisstageshow.com/assets/hypnotist_on_stage_hypnotizing_group.jpg') no-repeat center center / cover;
  background-blend-mode: overlay;
  filter: brightness(1.4) contrast(1.25);
  z-index: 0;
  pointer-events: none;
}

.hero-subpage .hero-bg-glow, .hero .hero-bg-glow {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 1;
  background: radial-gradient(circle at 50% 0%, rgba(140, 70, 255, 0.15), transparent 70%);
}

.hero-subpage .hero-container, .hero .hero-container {
  position: relative;
  z-index: 2;
}

.hero-subpage .stage-light, .hero .stage-light {
  position: absolute;
  top: -30%;
  width: 400px;
  height: 220%;
  transform-origin: top center;
  filter: blur(4px);
  opacity: 0.8;
  mix-blend-mode: difference;
  will-change: transform, opacity;
  pointer-events: none;
}

.hero-subpage .stage-light.light-1, .hero .stage-light.light-1 {
  left: 10%;
  background: radial-gradient(ellipse 180px 120% at top center, hsla(180, 100%, 50%, 0.8) 0%, hsla(180, 100%, 45%, 0.4) 45%, transparent 90%);
  animation: sweepLight1 14s infinite alternate ease-in-out;
}

.hero-subpage .stage-light.light-2, .hero .stage-light.light-2 {
  right: 5%;
  background: radial-gradient(ellipse 180px 120% at top center, hsla(320, 100%, 65%, 0.8) 0%, hsla(320, 100%, 55%, 0.35) 45%, transparent 90%);
  animation: sweepLight2 18s infinite alternate ease-in-out;
}

.hero-subpage .stage-light.light-3, .hero .stage-light.light-3 {
  left: 35%;
  background: radial-gradient(ellipse 180px 120% at top center, hsla(285, 100%, 65%, 0.75) 0%, hsla(285, 100%, 55%, 0.3) 45%, transparent 90%);
  animation: sweepLight3 16s infinite alternate ease-in-out;
}

.hero-subpage .stage-light.light-4, .hero .stage-light.light-4 {
  right: 30%;
  background: radial-gradient(ellipse 180px 120% at top center, hsla(285, 100%, 65%, 0.75) 0%, hsla(285, 100%, 55%, 0.3) 45%, transparent 90%);
  animation: sweepLight4 20s infinite alternate ease-in-out;
}

.hero-subpage .stage-light.light-5, .hero .stage-light.light-5 {
  right: 15%;
  background: radial-gradient(ellipse 180px 120% at top center, hsla(180, 100%, 50%, 0.8) 0%, hsla(180, 100%, 45%, 0.4) 45%, transparent 90%);
  animation: sweepLight5 22s infinite alternate ease-in-out;
}


@keyframes sweepLight1 {
  0% { transform: rotate(-45deg) scaleX(0.7); opacity: 0.5; }
  50% { opacity: 0.85; }
  100% { transform: rotate(30deg) scaleX(1.2); opacity: 0.65; }
}

@keyframes sweepLight2 {
  0% { transform: rotate(35deg) scaleX(1.25); opacity: 0.75; }
  50% { opacity: 0.55; }
  100% { transform: rotate(-35deg) scaleX(0.8); opacity: 0.85; }
}

@keyframes sweepLight3 {
  0% { transform: rotate(-25deg) scaleX(0.85); opacity: 0.6; }
  100% { transform: rotate(40deg) scaleX(1.3); opacity: 0.8; }
}

@keyframes sweepLight4 {
  0% { transform: rotate(30deg) scaleX(1.2); opacity: 0.8; }
  100% { transform: rotate(-30deg) scaleX(0.75); opacity: 0.5; }
}

@keyframes sweepLight5 {
  0% { transform: rotate(10deg) scaleX(0.8); opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { transform: rotate(-25deg) scaleX(1.15); opacity: 0.65; }
}



.hero-badge {
  display: inline-block;
  padding: 0.5rem 1rem;
  background: hsla(270, 76%, 54%, 0.15);
  border: 1px solid var(--accent-purple);
  border-radius: 50px;
  color: var(--accent-cyan);
  font-weight: 600;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 1.5rem;
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(168, 85, 247, 0.4); }
  70% { box-shadow: 0 0 0 10px rgba(168, 85, 247, 0); }
  100% { box-shadow: 0 0 0 0 rgba(168, 85, 247, 0); }
}

.hero h1 {
  font-size: 3.5rem;
  font-weight: 800;
  line-height: 1.25;
  padding-bottom: 0.5rem;
  margin-bottom: 1.5rem;
  background: linear-gradient(to right, var(--text-primary), var(--accent-cyan));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 0 10px hsla(285, 100%, 65%, 0.5);
  animation: titleGlow 4s infinite alternate;
}

@keyframes titleGlow {
  0% {
    text-shadow: 0 0 10px hsla(285, 100%, 65%, 0.6), 0 0 20px hsla(285, 100%, 65%, 0.3);
  }
  50% {
    text-shadow: 0 0 15px hsla(180, 100%, 50%, 0.8), 0 0 30px hsla(180, 100%, 50%, 0.4);
  }
  100% {
    text-shadow: 0 0 10px hsla(285, 100%, 65%, 0.6), 0 0 20px hsla(285, 100%, 65%, 0.3);
  }
}

.hero p {
  font-size: 1.2rem;
  color: var(--text-secondary);
  margin-bottom: 2rem;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.95);
  max-width: 650px;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 2rem;
  font-weight: 600;
  border-radius: var(--border-radius);
  border: none;
  cursor: pointer;
  background-size: 200% auto;
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), 
              box-shadow 0.3s ease, 
              background-position 0.5s ease-out;
}

.btn-primary {
  background-image: linear-gradient(120deg, var(--accent-purple) 0%, var(--accent-cyan) 50%, var(--accent-purple) 100%);
  color: hsl(265, 80%, 4%);
  box-shadow: 0 4px 15px hsla(285, 100%, 65%, 0.4);
}

.btn-primary:hover {
  transform: translateY(-4px) scale(1.05);
  background-position: right center;
  box-shadow: 0 10px 25px hsla(180, 100%, 50%, 0.4);
}

.btn-secondary {
  background-image: linear-gradient(120deg, transparent 0%, rgba(0, 255, 255, 0.1) 50%, transparent 100%);
  border: 2px solid var(--accent-cyan);
  color: var(--accent-cyan);
  text-shadow: 0 0 5px rgba(0, 255, 255, 0.3);
}

.btn-secondary:hover {
  transform: translateY(-4px) scale(1.05);
  background-position: right center;
  box-shadow: 0 10px 25px hsla(180, 100%, 50%, 0.4);
}

.hero-buttons {
  display: flex;
  gap: 1rem;
  justify-content: flex-start;
}

.hero-visual-wrapper {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  aspect-ratio: 1 / 1;
  max-width: 400px;
  margin: 0 auto;
  border-radius: 50%;
  background: radial-gradient(circle at center, hsla(285, 100%, 65%, 0.05), transparent 70%);
  border: 1px solid hsla(180, 100%, 50%, 0.15);
  box-shadow: 0 0 40px hsla(285, 100%, 65%, 0.1),
              inset 0 0 40px hsla(180, 100%, 50%, 0.05);
}

.hypnotic-vortex {
  width: 90%;
  height: 90%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  filter: drop-shadow(0 0 25px hsla(285, 100%, 65%, 0.35));
}

.hypnotic-vortex svg {
  transform-origin: center;
  transition: transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.hero-visual-wrapper:hover .hypnotic-vortex svg {
  transform: scale(1.08) rotate(180deg);
  filter: drop-shadow(0 0 35px hsla(180, 100%, 50%, 0.5));
}

/* Animations for concentric rings */
.spin-clockwise {
  transform-origin: center;
  animation: spinClockwise 25s infinite linear;
}

.spin-counter {
  transform-origin: center;
  animation: spinCounter 18s infinite linear;
}

.pulse-glow {
  animation: pulseGlow 3s infinite alternate ease-in-out;
  transform-origin: center;
}

@keyframes spinClockwise {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes spinCounter {
  from { transform: rotate(360deg); }
  to { transform: rotate(0deg); }
}

@keyframes pulseGlow {
  0% {
    opacity: 0.5;
    r: 14px;
    stroke-width: 3px;
  }
  100% {
    opacity: 1;
    r: 18px;
    stroke-width: 7px;
    filter: drop-shadow(0 0 10px var(--accent-cyan));
  }
}

/* Sections Base */
.section {
  padding: 0 2rem;
  padding-top: calc(4.5rem + 119px);
  padding-bottom: calc(4.5rem + 119px);
  position: relative;
  margin-top: -119px;
  z-index: 1;
}

.section::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--gradient-section);
  z-index: -1;
  clip-path: polygon(
    -5% 6px,
    10.42% 12px,
    15.28% 48px,
    20.14% 36px,
    24.31% 78px,
    28.47% 66px,
    36.11% 96px,
    41.67% 78px,
    50% 108px,
    55.56% 90px,
    65.97% 114px,
    76.39% 102px,
    86.81% 117px,
    105% 114px,
    105% 100%,
    -5% 100%
  );
  pointer-events: none;
}

.section { z-index: 10; }
.section + .section { z-index: 20; }
.section + .section + .section { z-index: 30; }
.section + .section + .section + .section { z-index: 40; }
.section + .section + .section + .section + .section { z-index: 50; }

.section::before {
  content: '';
  position: absolute;
  top: -30px;
  left: -40px;
  width: calc(100% + 80px);
  height: 180px;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 1440 300' fill='none' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3ClinearGradient id='bolt-grad' x1='0%25' y1='0%25' x2='100%25' y2='0%25'%3E%3Cstop offset='0%25' stop-color='%2300f2fe'/%3E%3Cstop offset='50%25' stop-color='%23d946ef'/%3E%3Cstop offset='100%25' stop-color='%23a855f7'/%3E%3C/linearGradient%3E%3ClinearGradient id='glow-grad' x1='0%25' y1='0%25' x2='100%25' y2='0%25'%3E%3Cstop offset='0%25' stop-color='%2300f2fe' stop-opacity='0.8'/%3E%3Cstop offset='100%25' stop-color='%23a855f7' stop-opacity='0.8'/%3E%3C/linearGradient%3E%3Cfilter id='corona-glow' x='-30%25' y='-30%25' width='160%25' height='160%25'%3E%3CfeGaussianBlur stdDeviation='8' result='blur1'/%3E%3CfeGaussianBlur stdDeviation='20' result='blur2'/%3E%3CfeMerge%3E%3CfeMergeNode in='blur2'/%3E%3CfeMergeNode in='blur1'/%3E%3CfeMergeNode in='SourceGraphic'/%3E%3C/feMerge%3E%3C/filter%3E%3Cstyle%3E.bolt-main%7Banimation:crackle-flicker 12s infinite ease-in-out%3B%7D.bolt-leader%7Banimation:leader-flicker 14s infinite ease-in-out%3B%7D.bolt-branch%7Banimation:branch-flicker 9s infinite ease-in-out alternate%3B%7D.bolt-surge%7Bstroke-dasharray:250 1500%3Banimation:surge-run 16s infinite linear%3B%7D@keyframes crackle-flicker%7B0%25,100%25%7Bopacity:0.9%3B%7D8%25%7Bopacity:0.4%3B%7D10%25%7Bopacity:0.95%3B%7D11%25%7Bopacity:0.25%3B%7D13%25%7Bopacity:0.9%3B%7D45%25%7Bopacity:0.95%3B%7D46%25%7Bopacity:0.15%3B%7D48%25%7Bopacity:0.85%3B%7D49%25%7Bopacity:0.3%3B%7D51%25%7Bopacity:0.9%3B%7D%7D@keyframes leader-flicker%7B0%25,100%25%7Bopacity:0.1%3B%7D20%25%7Bopacity:0.8%3B%7D22%25%7Bopacity:0.2%3B%7D24%25%7Bopacity:0.9%3B%7D26%25%7Bopacity:0.1%3B%7D70%25%7Bopacity:0.75%3B%7D72%25%7Bopacity:0.15%3B%7D74%25%7Bopacity:0.85%3B%7D76%25%7Bopacity:0.2%3B%7D%7D@keyframes branch-flicker%7B0%25,100%25%7Bopacity:0%3B%7D15%25%7Bopacity:0.6%3B%7D17%25%7Bopacity:0.1%3B%7D18%25%7Bopacity:0.75%3B%7D20%25%7Bopacity:0%3B%7D55%25%7Bopacity:0.7%3B%7D57%25%7Bopacity:0.1%3B%7D59%25%7Bopacity:0.8%3B%7D61%25%7Bopacity:0%3B%7D%7D@keyframes surge-run%7B0%25%7Bstroke-dashoffset:1750%3Bopacity:0%3B%7D5%25%7Bopacity:1%3Bstroke-width:16px%3B%7D9%25%7Bopacity:1%3Bstroke-width:10px%3B%7D12%25%7Bstroke-dashoffset:-300%3Bopacity:0%3B%7D100%25%7Bstroke-dashoffset:-300%3Bopacity:0%3B%7D%7D%3C/style%3E%3C/defs%3E%3Cg class='bolt-main' filter='url(%23corona-glow)'%3E%3Cpath d='M0 60 L150 70 L220 130 L290 110 L350 180 L410 160 L520 210 L600 180 L720 230 L800 200 L950 240 L1100 220 L1250 245 L1440 240' stroke='url(%23glow-grad)' stroke-width='14' opacity='0.25' fill='none'/%3E%3Cpath d='M0 60 L150 70 L220 130 L290 110 L350 180 L410 160 L520 210 L600 180 L720 230 L800 200 L950 240 L1100 220 L1250 245 L1440 240' stroke='url(%23bolt-grad)' stroke-width='3.5' fill='none'/%3E%3Cpath d='M0 60 L150 70 L220 130 L290 110 L350 180 L410 160 L520 210 L600 180 L720 230 L800 200 L950 240 L1100 220 L1250 245 L1440 240' stroke='%23ffffff' stroke-width='1.0' fill='none'/%3E%3C/g%3E%3Cg class='bolt-leader' filter='url(%23corona-glow)'%3E%3Cpath d='M0 90 L100 85 L180 140 L260 120 L320 170 L380 145 L490 190 L580 170 L680 210 L760 190 L890 220 L1020 205 L1150 235 L1320 220 L1440 235' stroke='url(%23glow-grad)' stroke-width='6' opacity='0.15' fill='none'/%3E%3Cpath d='M0 90 L100 85 L180 140 L260 120 L320 170 L380 145 L490 190 L580 170 L680 210 L760 190 L890 220 L1020 205 L1150 235 L1320 220 L1440 235' stroke='url(%23bolt-grad)' stroke-width='1.8' fill='none'/%3E%3C/g%3E%3Cg class='bolt-branch' filter='url(%23corona-glow)'%3E%3Cpath d='M350 180 L390 225 L430 245' stroke='url(%23bolt-grad)' stroke-width='3' fill='none'/%3E%3Cpath d='M350 180 L390 225 L430 245' stroke='%23ffffff' stroke-width='0.8' fill='none'/%3E%3Cpath d='M520 210 L550 235 L590 248' stroke='url(%23bolt-grad)' stroke-width='2.5' fill='none'/%3E%3Cpath d='M800 200 L840 155 L885 140' stroke='url(%23bolt-grad)' stroke-width='3' fill='none'/%3E%3Cpath d='M800 200 L840 155 L885 140' stroke='%23ffffff' stroke-width='0.8' fill='none'/%3E%3Cpath d='M1100 220 L1130 180 L1170 165' stroke='url(%23bolt-grad)' stroke-width='2.5' fill='none'/%3E%3C/g%3E%3Cpath class='bolt-surge' d='M0 60 L150 70 L220 130 L290 110 L350 180 L410 160 L520 210 L600 180 L720 230 L800 200 L950 240 L1100 220 L1250 245 L1440 240' stroke='%23ffffff' fill='none'/%3E%3C/svg%3E");
  background-size: 100% 100%;
  background-position: center bottom;
  background-repeat: no-repeat;
  z-index: 100;
  pointer-events: none;
}

.section.variant-b::after {
  clip-path: polygon(
    -5% 114px,
    10.42% 117px,
    15.28% 81px,
    20.14% 90px,
    24.31% 48px,
    28.47% 60px,
    36.11% 30px,
    41.67% 48px,
    50% 18px,
    55.56% 36px,
    65.97% 12px,
    76.39% 24px,
    86.81% 9px,
    105% 6px,
    105% 100%,
    -5% 100%
  );
}

.section.variant-b::before {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 1440 300' fill='none' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3ClinearGradient id='bolt-grad' x1='0%25' y1='0%25' x2='100%25' y2='0%25'%3E%3Cstop offset='0%25' stop-color='%2300f2fe'/%3E%3Cstop offset='50%25' stop-color='%23d946ef'/%3E%3Cstop offset='100%25' stop-color='%23a855f7'/%3E%3C/linearGradient%3E%3ClinearGradient id='glow-grad' x1='0%25' y1='0%25' x2='100%25' y2='0%25'%3E%3Cstop offset='0%25' stop-color='%2300f2fe' stop-opacity='0.8'/%3E%3Cstop offset='100%25' stop-color='%23a855f7' stop-opacity='0.8'/%3E%3C/linearGradient%3E%3Cfilter id='corona-glow' x='-30%25' y='-30%25' width='160%25' height='160%25'%3E%3CfeGaussianBlur stdDeviation='8' result='blur1'/%3E%3CfeGaussianBlur stdDeviation='20' result='blur2'/%3E%3CfeMerge%3E%3CfeMergeNode in='blur2'/%3E%3CfeMergeNode in='blur1'/%3E%3CfeMergeNode in='SourceGraphic'/%3E%3C/feMerge%3E%3C/filter%3E%3Cstyle%3E.bolt-main%7Banimation:crackle-flicker 12s infinite ease-in-out%3B%7D.bolt-leader%7Banimation:leader-flicker 14s infinite ease-in-out%3B%7D.bolt-branch%7Banimation:branch-flicker 9s infinite ease-in-out alternate%3B%7D.bolt-surge%7Bstroke-dasharray:250 1500%3Banimation:surge-run 16s infinite linear%3B%7D@keyframes crackle-flicker%7B0%25,100%25%7Bopacity:0.9%3B%7D8%25%7Bopacity:0.4%3B%7D10%25%7Bopacity:0.95%3B%7D11%25%7Bopacity:0.25%3B%7D13%25%7Bopacity:0.9%3B%7D45%25%7Bopacity:0.95%3B%7D46%25%7Bopacity:0.15%3B%7D48%25%7Bopacity:0.85%3B%7D49%25%7Bopacity:0.3%3B%7D51%25%7Bopacity:0.9%3B%7D%7D@keyframes leader-flicker%7B0%25,100%25%7Bopacity:0.1%3B%7D20%25%7Bopacity:0.8%3B%7D22%25%7Bopacity:0.2%3B%7D24%25%7Bopacity:0.9%3B%7D26%25%7Bopacity:0.1%3B%7D70%25%7Bopacity:0.75%3B%7D72%25%7Bopacity:0.15%3B%7D74%25%7Bopacity:0.85%3B%7D76%25%7Bopacity:0.2%3B%7D%7D@keyframes branch-flicker%7B0%25,100%25%7Bopacity:0%3B%7D15%25%7Bopacity:0.6%3B%7D17%25%7Bopacity:0.1%3B%7D18%25%7Bopacity:0.75%3B%7D20%25%7Bopacity:0%3B%7D55%25%7Bopacity:0.7%3B%7D57%25%7Bopacity:0.1%3B%7D59%25%7Bopacity:0.8%3B%7D61%25%7Bopacity:0%3B%7D%7D@keyframes surge-run%7B0%25%7Bstroke-dashoffset:1750%3Bopacity:0%3B%7D5%25%7Bopacity:1%3Bstroke-width:16px%3B%7D9%25%7Bopacity:1%3Bstroke-width:10px%3B%7D12%25%7Bstroke-dashoffset:-300%3Bopacity:0%3B%7D100%25%7Bstroke-dashoffset:-300%3Bopacity:0%3B%7D%7D%3C/style%3E%3C/defs%3E%3Cg class='bolt-main' filter='url(%23corona-glow)'%3E%3Cpath d='M0 240 L150 245 L220 185 L290 200 L350 130 L410 150 L520 100 L600 130 L720 80 L800 110 L950 70 L1100 90 L1250 65 L1440 60' stroke='url(%23glow-grad)' stroke-width='14' opacity='0.25' fill='none'/%3E%3Cpath d='M0 240 L150 245 L220 185 L290 200 L350 130 L410 150 L520 100 L600 130 L720 80 L800 110 L950 70 L1100 90 L1250 65 L1440 60' stroke='url(%23bolt-grad)' stroke-width='3.5' fill='none'/%3E%3Cpath d='M0 240 L150 245 L220 185 L290 200 L350 130 L410 150 L520 100 L600 130 L720 80 L800 110 L950 70 L1100 90 L1250 65 L1440 60' stroke='%23ffffff' stroke-width='1.0' fill='none'/%3E%3C/g%3E%3Cg class='bolt-leader' filter='url(%23corona-glow)'%3E%3Cpath d='M0 210 L100 215 L180 160 L260 180 L320 130 L380 155 L495 110 L580 130 L680 80 L760 110 L890 70 L1020 95 L1150 65 L1320 80 L1440 65' stroke='url(%23glow-grad)' stroke-width='6' opacity='0.15' fill='none'/%3E%3Cpath d='M0 210 L100 215 L180 160 L260 180 L320 130 L380 155 L495 110 L580 130 L680 80 L760 110 L890 70 L1020 95 L1150 65 L1320 80 L1440 65' stroke='url(%23bolt-grad)' stroke-width='1.8' fill='none'/%3E%3C/g%3E%3Cg class='bolt-branch' filter='url(%23corona-glow)'%3E%3Cpath d='M350 130 L390 85 L430 65' stroke='url(%23bolt-grad)' stroke-width='3' fill='none'/%3E%3Cpath d='M350 130 L390 85 L430 65' stroke='%23ffffff' stroke-width='0.8' fill='none'/%3E%3Cpath d='M520 100 L550 75 L595 60' stroke='url(%23bolt-grad)' stroke-width='2.5' fill='none'/%3E%3Cpath d='M800 110 L840 155 L885 170' stroke='url(%23bolt-grad)' stroke-width='3' fill='none'/%3E%3Cpath d='M800 110 L840 155 L885 170' stroke='%23ffffff' stroke-width='0.8' fill='none'/%3E%3Cpath d='M1100 90 L1130 130 L1170 145' stroke='url(%23bolt-grad)' stroke-width='2.5' fill='none'/%3E%3C/g%3E%3Cpath class='bolt-surge' d='M0 240 L150 245 L220 185 L290 200 L350 130 L410 150 L520 100 L600 130 L720 80 L800 110 L950 70 L1100 90 L1250 65 L1440 60' stroke='%23ffffff' fill='none'/%3E%3C/svg%3E");
  background-size: 100% 100%;
  background-position: center bottom;
  background-repeat: no-repeat;
  z-index: 100;
  pointer-events: none;
}

.section-container {
  max-width: 1200px;
  margin: 0 auto;
}

.section-title {
  font-size: 2.25rem;
  font-weight: 800;
  margin-bottom: 1rem;
  text-align: center;
  background: linear-gradient(45deg, var(--text-primary), var(--accent-cyan));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.section-subtitle {
  color: var(--accent-cyan);
  text-align: center;
  max-width: 700px;
  margin: 0 auto 3.5rem;
}

/* Grid Layouts */
.grid-3 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
}

.grid-2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  gap: 3rem;
  align-items: center;
}

/* Card Styling */
.card {
  background: linear-gradient(135deg, rgba(30, 20, 45, 0.75), rgba(15, 30, 45, 0.75));
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid hsla(285, 100%, 65%, 0.25);
  border-radius: var(--border-radius);
  padding: 2rem;
  transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275), 
              box-shadow 0.4s ease, 
              border-color 0.4s ease, 
              background-color 0.4s ease;
  position: relative;
  overflow: hidden;
  box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.7),
              inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: var(--gradient-primary);
  opacity: 0.7;
  transition: var(--transition);
}

.card:hover {
  background: var(--bg-card-hover);
  box-shadow: 0 20px 40px -5px hsla(180, 100%, 50%, 0.4),
              0 0 25px hsla(285, 100%, 65%, 0.2);
  border-color: hsla(180, 100%, 50%, 0.8);
}

.card:hover::before {
  opacity: 1;
}

.card-title {
  font-size: 1.35rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.card-desc {
  color: var(--accent-cyan);
  margin-bottom: 1.5rem;
  font-size: 0.95rem;
}

/* Media/Video Section */
.video-section {
  position: relative;
  border-bottom: var(--border-glass);
  padding-top: calc(2rem + 119px);
  padding-bottom: calc(2rem + 119px);
}

.video-section::after {
  background: linear-gradient(to bottom, rgba(10, 5, 20, 0.4), rgba(10, 5, 20, 0.6)),
              url('assets/hypnotist_john_cerbone_on_stage_hypnotizing_a_group.jpg') no-repeat center center / cover;
}

.video-container {
  max-width: 800px;
  margin: 0 auto;
  position: relative;
  padding-bottom: 56.25%; /* 16:9 Aspect Ratio */
  height: 0;
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  border: var(--border-glass);
}

.video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* Social Bar */
.social-bar {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin-top: 3rem;
}

.social-icon {
  width: 75px;
  height: 75px;
  border-radius: 50%;
  background: var(--bg-card);
  border: 1px solid hsla(285, 100%, 65%, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition);
}

.social-icon svg {
  width: 32px;
  height: 32px;
  fill: var(--text-secondary);
  transition: var(--transition);
}

.social-icon:hover {
  transform: scale(1.1);
  background: var(--gradient-primary);
}

.social-icon:hover svg {
  fill: var(--text-primary);
}

/* Store / Products */
.product-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.product-price {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--accent-cyan);
  margin-top: auto;
  margin-bottom: 1.5rem;
}

/* Badges and Logos */
.badge-group {
  display: flex;
  gap: 1.5rem;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 2rem;
}

.badge-logo {
  max-height: 70px;
  filter: grayscale(1) brightness(1.5);
  opacity: 0.7;
  transition: var(--transition);
}

.badge-logo:hover {
  filter: none;
  opacity: 1;
}

/* Footer styling */
.section:last-of-type {
  padding-bottom: 5rem;
}

footer {
  background-color: var(--bg-deep) !important;
  border-top: var(--border-glass) !important;
  padding: 3.5rem 2rem 3rem !important;
  margin-top: 0 !important;
  clip-path: none !important;
  position: relative !important;
}

footer::before {
  display: none !important;
}

.footer-content {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 2rem;
  position: relative;
  z-index: 10;
}

.footer-copy {
  color: var(--text-muted);
  font-size: 0.9rem;
}

.footer-logo img {
  height: 80px;
  opacity: 1;
  transition: var(--transition);
}

.footer-logo img:hover {
  opacity: 1;
}

/* Smaller Hero for Subpages */
.hero.hero-subpage {
  padding: 5rem 2rem calc(4.5rem + 119px);
}

.hero.hero-subpage .hero-container {
  grid-template-columns: 1.3fr 0.7fr;
  gap: 3rem;
}

.hero.hero-subpage h1 {
  font-size: 2.75rem;
  margin-bottom: 1rem;
}

.hero.hero-subpage p {
  font-size: 1.1rem;
  margin-bottom: 1.5rem;
  max-width: 650px;
}

.hero.hero-subpage .hero-visual-wrapper {
  max-width: 280px;
}

/* Responsive queries */
@media (max-width: 968px) {
  .hero.hero-subpage {
    padding: 4rem 1.5rem calc(3rem + 119px);
  }
  .hero.hero-subpage h1 {
    font-size: 2.25rem;
  }
  .hero.hero-subpage .hero-visual-wrapper {
    max-width: 200px;
  }
  .hero-container {
    align-items: center;
    text-align: center;
  }
  .hero p {
    margin-left: auto;
    margin-right: auto;
  }
  .hero h1 {
    font-size: 2.75rem;
  }
  .hero-buttons {
    justify-content: center;
  }
  .hero-visual-wrapper {
    max-width: 320px;
    margin: 0 auto;
  }
  .nav-menu {
    display: none;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background-color: var(--bg-deep);
    padding: 1.5rem;
    border-bottom: var(--border-glass);
    gap: 1rem;
  }
  .nav-menu.show {
    display: flex;
  }
  .menu-toggle {
    display: block;
  }
}

@media (max-width: 576px) {
  .hero h1 {
    font-size: 2.25rem;
  }
  .hero-buttons {
    flex-direction: column;
  }
}

/* ==========================================================================
   WordPress and Easy Digital Downloads Specific Styles
   ========================================================================== */

/* WordPress Default Content Container styles */
.wp-content-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 3rem 0;
  margin-top: 3rem;
  margin-bottom: 5rem;
}

.wp-content-wrap h1, .wp-content-wrap h2, .wp-content-wrap h3 {
  color: var(--accent-cyan);
  margin-top: 2rem;
  margin-bottom: 1rem;
}

.wp-content-wrap p {
  margin-bottom: 1.5rem;
  line-height: 1.7;
  color: var(--text-muted);
}

/* Easy Digital Downloads Custom Theme Overrides */
.edd_downloads_list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
  gap: 2rem !important;
  margin: 2rem 0 !important;
}

.edd_download {
  background: rgba(30, 20, 45, 0.45) !important;
  border: 2px solid rgba(0, 242, 254, 0.3) !important;
  border-radius: var(--border-radius) !important;
  padding: 2.25rem 2rem !important;
  transition: var(--transition) !important;
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  float: none !important;
}

.edd_download:hover {
  background: rgba(45, 30, 65, 0.6) !important;
  border-color: rgba(0, 242, 254, 0.8) !important;
  box-shadow: 0 10px 30px rgba(0, 242, 254, 0.1) !important;
}

.edd_download_image img {
  border-radius: 8px !important;
  max-width: 100% !important;
  height: auto !important;
  margin-bottom: 1.5rem !important;
  border: 1px solid rgba(255,255,255,0.06);
}

.edd_download_title {
  font-size: 1.4rem !important;
  font-weight: 800 !important;
  color: var(--text-primary) !important;
  margin-bottom: 0.75rem !important;
  line-height: 1.3 !important;
}

.edd_download_title a {
  color: var(--text-primary) !important;
  text-decoration: none !important;
  transition: var(--transition);
}

.edd_download_title a:hover {
  color: var(--accent-cyan) !important;
}

.edd_download_excerpt p {
  font-size: 0.95rem !important;
  color: var(--text-muted) !important;
  line-height: 1.6 !important;
  margin-bottom: 1.5rem !important;
}

.edd_download_buy_button {
  margin-top: auto !important;
}

.edd_price {
  font-size: 1.25rem !important;
  font-weight: 800 !important;
  color: var(--accent-cyan) !important;
  margin-bottom: 1rem !important;
  display: block;
}

/* Prevent duplicate buttons from appearing by hiding auto-appended ones inside description or excerpt text block wrappers */
.edd_download_excerpt .edd_purchase_submit_wrapper,
.product-description .edd_purchase_submit_wrapper,
.edd_download_excerpt .edd-add-to-cart,
.product-description .edd-add-to-cart,
.edd_download_excerpt .edd_purchase_link,
.product-description .edd_purchase_link {
  display: none !important;
}

/* Hide fallback no-JS duplicate inputs generated by the EDD plugin */
.edd-no-js,
.edd-add-to-cart.edd-has-behavior + input.edd-submit,
.edd-add-to-cart.edd-has-behavior + button.edd-submit,
.edd_purchase_link + input.edd-submit,
.edd_purchase_link + button.edd-submit {
  display: none !important;
}

/* EDD buttons to match gradient buttons */
.edd-submit, .edd_purchase_link, .edd-submit.button, .edd-submit.button.blue {
  font-family: var(--font-family) !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  padding: 0.85rem 1.75rem !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  transition: var(--transition) !important;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center !important;
  justify-content: center !important;
  border: none !important;
  background: var(--gradient-primary) !important;
  color: #0f071a !important;
  box-shadow: 0 0 20px rgba(0, 242, 254, 0.3) !important;
}

.edd-submit:hover, .edd_purchase_link:hover, .edd-submit.button:hover {
  background: linear-gradient(135deg, var(--accent-cyan), var(--accent-purple)) !important;
  box-shadow: 0 0 30px rgba(0, 242, 254, 0.5) !important;
  transform: scale(1.02) !important;
}

/* Checkout forms */
#edd_checkout_form_wrap {
  background: rgba(30, 20, 45, 0.45);
  border: var(--border-glass);
  border-radius: var(--border-radius);
  padding: 2.5rem 2rem;
  margin-top: 2rem;
}

#edd_checkout_form_wrap legend {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--accent-cyan);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding-bottom: 0.5rem;
  margin-bottom: 1.5rem;
  width: 100%;
}

.edd-input, .edd-select {
  width: 100%;
  background: rgba(15, 10, 25, 0.6) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 6px !important;
  color: #fff !important;
  padding: 0.75rem 1rem !important;
  font-family: var(--font-family) !important;
  transition: var(--transition);
}

.edd-input:focus {
  border-color: var(--accent-cyan) !important;
  box-shadow: 0 0 10px rgba(0, 242, 254, 0.2) !important;
  outline: none;
}

.edd-label {
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 0.5rem;
  display: block;
}

/* Removed old legacy checkout styles to prevent conflicts with new block checkout */

/* Limit slanted diagonal section dividers to ONLY the section directly following the hero */
.section:not(.hero + .section)::after {
  clip-path: none !important;
  background: var(--bg-deep) !important;
}

.section:not(.hero + .section) {
  margin-top: 0 !important;
  padding-top: 5rem !important;
  padding-bottom: 5rem !important;
}

/* Limit the glowing neon lightning lines (::before) to ONLY the section directly following the hero */
.section:not(.hero + .section)::before {
  display: none !important;
}

/* Custom background image for the subpage hero on the store */
.hero.hero-subpage::before {
  background: linear-gradient(to bottom, rgba(25, 15, 45, 0.35), rgba(10, 5, 20, 0.65)),
              url('/img/john_cerbone_on_stage_speaking.jpg') no-repeat center center / cover !important;
}

/* Reduce the top padding/spacing gap directly below the hero banner */
.hero + .section {
  padding-top: calc(0.25rem + 119px) !important;
}

.hero + .section .wp-content-wrap,
.hero + .section .section-container {
  margin-top: 0 !important;
}

/* Easy Digital Downloads Pagination Styling */
.edd-pagination,
#edd_download_pagination {
  display: flex !important;
  gap: 0.5rem !important;
  justify-content: center !important;
  align-items: center !important;
  margin: 3rem 0 !important;
  padding: 0 !important;
}

.edd-pagination .page-numbers,
#edd_download_pagination .page-numbers {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 42px !important;
  height: 42px !important;
  padding: 0 0.75rem !important;
  border-radius: 8px !important;
  background: rgba(30, 20, 45, 0.45) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  color: var(--text-primary) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  text-decoration: none !important;
  transition: all 0.3s ease !important;
  box-sizing: border-box !important;
}

.edd-pagination .page-numbers.current,
#edd_download_pagination .page-numbers.current {
  background: var(--gradient-primary) !important;
  color: #000000 !important;
  border-color: var(--accent-cyan) !important;
  box-shadow: 0 0 15px rgba(0, 242, 254, 0.3) !important;
}

.edd-pagination a.page-numbers:hover,
#edd_download_pagination a.page-numbers:hover {
  background: rgba(45, 30, 65, 0.7) !important;
  border-color: var(--accent-cyan) !important;
  box-shadow: 0 0 10px rgba(0, 242, 254, 0.2) !important;
  color: var(--accent-cyan) !important;
}





/* Restore bullet list styles & margins for content blocks, product cards, and excerpts */
.edd_download_excerpt ul,
.edd_download_excerpt ol,
.edd_download_content ul,
.edd_download_content ol,
.card-desc ul,
.card-desc ol,
.wp-content-wrap ul,
.wp-content-wrap ol,
.store-card-tight ul,
.store-card-tight ol,
.entry-content ul,
.entry-content ol,
.product-description ul,
.product-description ol {
  margin: 1rem 0 1rem 2rem !important;
  padding: 0 !important;
  list-style: disc !important;
}

.edd_download_excerpt ol,
.edd_download_content ol,
.card-desc ol,
.wp-content-wrap ol,
.store-card-tight ol,
.entry-content ol,
.product-description ol {
  list-style: decimal !important;
}

.edd_download_excerpt li,
.edd_download_content li,
.card-desc li,
.wp-content-wrap li,
.store-card-tight li,
.entry-content li,
.product-description li {
  margin-bottom: 0.5rem !important;
  line-height: 1.6 !important;
  list-style: inherit !important;
  display: list-item !important;
}

/* Custom EDD Login Page / Form Styling */
#edd_login_form {
  max-width: 480px;
  margin: 3.5rem auto;
  background: linear-gradient(135deg, rgba(30, 20, 45, 0.65), rgba(45, 30, 65, 0.65));
  border: 2px solid rgba(0, 242, 254, 0.3) !important;
  border-radius: var(--border-radius);
  padding: 3rem 2.5rem;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.5), 0 0 25px rgba(0, 242, 254, 0.15);
  backdrop-filter: blur(10px);
}

#edd_login_form fieldset {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

#edd_login_form legend {
  font-family: var(--font-family) !important;
  font-size: 1.8rem !important;
  font-weight: 800 !important;
  color: var(--text-primary) !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  text-align: center !important;
  width: 100% !important;
  margin-bottom: 2rem !important;
  background: var(--gradient-primary) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  display: block !important;
  border: none !important;
  padding: 0 !important;
}

#edd_login_form label {
  display: block !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  color: var(--text-secondary) !important;
  margin-bottom: 0.5rem !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
}

#edd_login_form input.edd-input {
  width: 100% !important;
  padding: 0.85rem 1rem !important;
  background: rgba(15, 10, 25, 0.6) !important;
  border: 1.5px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 8px !important;
  color: var(--text-primary) !important;
  font-family: var(--font-family) !important;
  font-size: 1rem !important;
  margin-bottom: 1.5rem !important;
  transition: var(--transition) !important;
  box-sizing: border-box !important;
}

#edd_login_form input.edd-input:focus {
  border-color: var(--accent-cyan) !important;
  box-shadow: 0 0 12px rgba(0, 242, 254, 0.25) !important;
  outline: none !important;
}

#edd_login_form .edd-login-remember {
  display: flex !important;
  align-items: center !important;
  margin-bottom: 2rem !important;
}

#edd_login_form .edd-login-remember label {
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 500 !important;
  color: var(--text-muted) !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  cursor: pointer !important;
}

#edd_login_form .edd-login-remember input[type="checkbox"] {
  accent-color: var(--accent-cyan) !important;
  width: 16px !important;
  height: 16px !important;
  cursor: pointer !important;
}

#edd_login_form .edd-login-submit {
  margin-bottom: 1.5rem !important;
}

#edd_login_form input[type="submit"]#edd_login_submit {
  width: 100% !important;
  padding: 1rem !important;
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  letter-spacing: 1.5px !important;
  color: #000000 !important;
  background: var(--gradient-primary) !important;
  box-shadow: 0 0 20px rgba(0, 242, 254, 0.3) !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  border: none !important;
  text-transform: uppercase !important;
  transition: var(--transition) !important;
}

#edd_login_form input[type="submit"]#edd_login_submit:hover {
  background: linear-gradient(135deg, var(--accent-cyan), var(--accent-purple)) !important;
  box-shadow: 0 0 30px rgba(0, 242, 254, 0.5) !important;
  transform: translateY(-2px) !important;
}

#edd_login_form .edd-lost-password {
  text-align: center !important;
  margin: 0 !important;
}

#edd_login_form .edd-lost-password a {
  color: var(--accent-cyan) !important;
  text-decoration: none !important;
  font-size: 0.9rem !important;
  transition: var(--transition) !important;
}

#edd_login_form .edd-lost-password a:hover {
  color: var(--accent-purple) !important;
  text-shadow: 0 0 8px rgba(168, 85, 247, 0.3) !important;
}

/* Removed old legacy block checkout styles to prevent conflicts */

/* ==========================================================================
   Easy Digital Downloads Block Checkout Styling
   ========================================================================== */

/* Style the main cart grid wrapper */
.edd-blocks-form__cart #edd_checkout_cart {
  border: 1px solid rgba(0, 242, 254, 0.3) !important; /* Neon accent border */
  background: rgba(30, 20, 45, 0.55) !important;
  border-radius: 8px !important;
  box-shadow: var(--shadow-sm) !important;
  margin-bottom: 1.5rem !important;
  padding: 0 !important;
}

/* Reduce row paddings inside the grid */
.edd-blocks-form__cart .edd-blocks-cart__row,
.edd-blocks-form__cart .edd_cart_footer_row {
  padding: 0.75rem 1rem !important; /* Reduced padding */
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  color: #fff !important;
}

/* Style the purchase forms */
#edd_purchase_form .edd-blocks-form {
  border: 1px solid rgba(0, 242, 254, 0.3) !important;
  background: rgba(30, 20, 45, 0.55) !important;
  border-radius: 8px !important;
  padding: 1.25rem !important; /* Reduced padding */
  gap: 1rem !important;
  box-shadow: var(--shadow-sm) !important;
}

/* Target the trashcan background-image SVG and color it using CSS filter */
.edd-blocks-form__cart .edd-blocks-cart__action-remove,
.edd-blocks-form__cart .edd_cart_remove_item_btn,
.edd_discount_remove {
  /* Filter translates black to neon cyan: #00F2FE */
  filter: invert(86%) sepia(82%) saturate(1636%) hue-rotate(167deg) brightness(101%) contrast(106%) !important;
  opacity: 1 !important;
  width: 1.25em !important;
  height: 1.25em !important;
  background-size: contain !important;
  cursor: pointer !important;
  border: none !important;
  background-color: transparent !important;
  display: inline-block !important;
  vertical-align: middle !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.edd-blocks-form__cart .edd-blocks-cart__action-remove:hover,
.edd-blocks-form__cart .edd_cart_remove_item_btn:hover,
.edd_discount_remove:hover {
  /* Filter translates black to neon purple: #a855f7 */
  filter: invert(61%) sepia(87%) saturate(1142%) hue-rotate(241deg) brightness(101%) contrast(104%) !important;
}



/* Reset and neutralize cached total styles so it stays inline and flat */
.edd-blocks-form__cart .edd_cart_total,
.edd_cart_total,
#edd_checkout_cart_total,
.edd_checkout_cart_total,
#edd_final_total_wrap,
#edd-final-total-wrap,
.edd_cart_amount,
.edd-purchase-total-wrap,
.edd_purchase_total_wrap,
.edd-blocks-cart__total {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  display: inline-block !important;
  color: #fff !important;
  font-weight: 700 !important;
}

/* Input fields styling */
#edd_purchase_form input[type="text"],
#edd_purchase_form input[type="email"],
#edd_purchase_form input[type="password"],
#edd_purchase_form input[type="tel"],
#edd_purchase_form select,
#edd_purchase_form textarea,
.edd-discount-code-field-wrap input {
  background: rgba(15, 10, 25, 0.8) !important;
  border: 1.5px solid rgba(0, 242, 254, 0.35) !important;
  border-radius: 6px !important;
  color: #fff !important;
  padding: 0.5rem 0.75rem !important;
  font-family: var(--font-family, sans-serif) !important;
  transition: all 0.3s ease !important;
}

#edd_purchase_form input:focus,
#edd_purchase_form select:focus,
#edd_purchase_form textarea:focus {
  border-color: var(--accent-cyan, hsl(180, 100%, 50%)) !important;
  box-shadow: 0 0 10px rgba(0, 242, 254, 0.25) !important;
  outline: none !important;
}

/* FORCE the discount input field to be visible by default and hide the redundant toggler */
.wp-block-edd-checkout .edd-blocks__cart #edd-discount-code-wrap,
#edd-discount-code-wrap {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  padding: 0.5rem 0 !important;
}
.wp-block-edd-checkout .edd-blocks__cart #edd_show_discount,
.edd-show-discount,
#edd_show_discount,
.edd-button-secondary {
  display: none !important;
}

/* Error alert background styling - Outer wrapper only */
.edd-alert,
.edd_errors {
  background-color: #950000 !important;
  border: 1px solid #dc3232 !important;
  color: #fff !important;
  padding: 0.75rem 1rem !important;
  border-radius: 6px !important;
  margin-bottom: 1rem !important;
  display: block !important;
}

/* Flatten inner error items so they do not draw nested borders/boxes */
.edd_error,
.edd-alert-error,
.edd-alert p,
.edd_errors p,
.edd_errors li,
.edd_errors ul {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  color: #fff !important;
  list-style: none !important;
}

