/* NEON GREEN LOLLI THEME
   Minimal, clean design matching the new logo */

   @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700;800&display=swap');

   * {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
   }
   
   :root {
     /* New Color Palette */
     --color-primary: #39FF14;      /* Neon Green */
     --color-secondary: #00D4FF;    /* Neon Blue */
     --color-black: #000000;        /* Pure Black */
     --color-gray-dark: #333333;    /* Dark Gray */
     --color-gray: #666666;         /* Medium Gray */
     --color-gray-light: #999999;   /* Light Gray */
     --color-white: #FFFFFF;        /* Pure White */
     
     /* Typography */
     --font-primary: 'JetBrains Mono', 'Courier New', monospace;
     --font-size-xs: 0.75rem;   /* 12px */
     --font-size-sm: 0.875rem;  /* 14px */
     --font-size-md: 1rem;      /* 16px */
     --font-size-lg: 1.125rem;  /* 18px */
     --font-size-xl: 1.25rem;   /* 20px */
     --font-size-2xl: 1.5rem;   /* 24px */
     --font-size-3xl: 1.875rem; /* 30px */
     --font-size-4xl: 2.25rem;  /* 36px */
     --font-size-5xl: 3rem;     /* 48px */
     --font-size-6xl: 3.75rem;  /* 60px */
     
     /* Spacing */
     --space-xs: 0.25rem;   /* 4px */
     --space-sm: 0.5rem;    /* 8px */
     --space-md: 1rem;      /* 16px */
     --space-lg: 1.5rem;    /* 24px */
     --space-xl: 2rem;      /* 32px */
     --space-2xl: 2.5rem;   /* 40px */
     --space-3xl: 3rem;     /* 48px */
     --space-4xl: 4rem;     /* 64px */
     
     /* Borders & Radius */
     --radius-sm: 0.25rem;  /* 4px */
     --radius-md: 0.5rem;   /* 8px */
     --radius-lg: 1rem;     /* 16px */
     
     /* Shadows */
     --shadow-sm: 0 1px 3px rgba(57, 255, 20, 0.2);
     --shadow-md: 0 2px 6px rgba(57, 255, 20, 0.3);
     --shadow-lg: 0 4px 12px rgba(57, 255, 20, 0.4);
     
     /* Animations */
     --transition-fast: 150ms ease;
     --transition-medium: 300ms ease;
     --transition-slow: 500ms ease;
   }
   
   body {
     font-family: var(--font-primary);
     font-size: var(--font-size-md);
     color: var(--color-white);
     background-color: var(--color-black);
     line-height: 1.6;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     overflow-x: hidden;
   }
   
   .container {
     width: 100%;
     max-width: 1200px;
     margin: 0 auto;
     padding: 0 var(--space-md);
     text-align: center;
   }
   
   /* ==========================================================================
      Typography
      ========================================================================== */
   
   h1, h2, h3, h4, h5, h6 {
     font-weight: 700;
     line-height: 1.2;
     margin-bottom: var(--space-md);
     color: var(--color-white);
     text-transform: uppercase;
     letter-spacing: 0.05em;
   }
   
   h1 {
     font-size: var(--font-size-5xl);
     font-weight: 800;
     color: var(--color-primary);
   }
   
   h2 {
     font-size: var(--font-size-4xl);
     font-weight: 700;
     color: var(--color-primary);
   }
   
   h3 {
     font-size: var(--font-size-3xl);
     font-weight: 600;
   }
   
   h4 {
     font-size: var(--font-size-2xl);
     font-weight: 600;
   }
   
   p {
     margin-bottom: var(--space-md);
     color: var(--color-gray-light);
   }
   
   .text-center {
     text-align: center;
   }
   
   /* ==========================================================================
      Header and Logo Implementation - UPDATED FOR IMG FILE
      ========================================================================== */
   
   /* Header */
   .header {
     padding: var(--space-xl) 0;
     position: relative;
     width: 100%;
   }
   
   .header-content {
     max-width: 800px;
     margin: 0 auto;
     text-align: center;
     position: relative;
     width: 100%;
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: center;
   }
   
   /* Logo Container - Perfectly Centered */
   .logo-container {
     margin-bottom: var(--space-xl);
     display: flex;
     justify-content: center;
     align-items: center;
     position: relative;
     width: 100%;
   }
   
   /* Logo Image - Updated for SVG file */
   .logo {
     height: 100px;
     width: 400px;
     transition: opacity var(--transition-medium);
     display: block;
     margin: 0 auto;
   }
   
   .logo:hover {
     opacity: 0.8;
   }
   
   /* Header subtitle - Fixed centering */
   .header-subtitle {
     font-size: var(--font-size-xl);
     color: var(--color-gray-light);
     margin-bottom: var(--space-2xl);
     font-weight: 400;
     text-transform: uppercase;
     letter-spacing: 0.1em;
     text-align: center;
     width: 100%;
     display: block;
     max-width: 800px;
     margin-left: auto;
     margin-right: auto;
   }
   
   .lolli-link {
     color: var(--color-primary);
     font-weight: 600;
     text-decoration: none;
     transition: color var(--transition-fast);
     text-transform: uppercase;
     letter-spacing: 0.05em;
   }
   
   .lolli-link:hover {
     color: var(--color-secondary);
   }
   
   /* Main Content */
   .main {
     padding: var(--space-2xl) 0 var(--space-4xl);
     position: relative;
   }
   
   /* Cards & Containers */
   .card {
     background-color: var(--color-black);
     border: 2px solid var(--color-primary);
     border-radius: var(--radius-md);
     padding: var(--space-xl);
     margin-bottom: var(--space-xl);
     position: relative;
     transition: all var(--transition-medium);
   }
   
   .card:hover {
     box-shadow: var(--shadow-md);
     border-color: var(--color-secondary);
   }
   
   /* ==========================================================================
      Form Elements
      ========================================================================== */
   
   .form-group {
     margin-bottom: var(--space-xl);
   }
   
   label {
     display: block;
     font-weight: 600;
     font-size: var(--font-size-md);
     margin-bottom: var(--space-sm);
     color: var(--color-white);
     text-transform: uppercase;
     letter-spacing: 0.05em;
   }
   
   input, textarea, select {
     width: 100%;
     padding: var(--space-md) var(--space-lg);
     border: 2px solid var(--color-gray-dark);
     border-radius: var(--radius-md);
     font-family: var(--font-primary);
     font-size: var(--font-size-md);
     color: var(--color-white);
     background-color: var(--color-black);
     transition: all var(--transition-fast);
   }
   
   input:focus, textarea:focus, select:focus {
     outline: none;
     border-color: var(--color-primary);
     box-shadow: 0 0 0 2px rgba(57, 255, 20, 0.2);
   }
   
   input::placeholder, textarea::placeholder {
     color: var(--color-gray);
   }
   
   textarea {
     min-height: 120px;
     resize: vertical;
   }
   
   select {
     appearance: none;
     cursor: pointer;
     background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2339FF14' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
     background-repeat: no-repeat;
     background-position: right var(--space-md) center;
     background-size: 16px;
     padding-right: var(--space-3xl);
   }
   
   select:hover {
     border-color: var(--color-primary);
   }
   
   select option {
     padding: var(--space-md);
     background-color: var(--color-black);
     color: var(--color-white);
   }
   
   /* Radio Buttons */
   .radio-group {
     display: flex;
     flex-wrap: wrap;
     gap: var(--space-md);
     margin-top: var(--space-md);
   }
   
   .radio-button {
     position: relative;
     flex: 1 0 calc(50% - var(--space-md));
     min-width: 120px;
   }
   
   @media (min-width: 768px) {
     .radio-button {
       flex: 0 0 auto;
     }
   }
   
   .radio-button input[type="radio"] {
     position: absolute;
     opacity: 0;
     width: 0;
     height: 0;
   }
   
   .radio-button label {
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: center;
     text-align: center;
     margin: 0;
     padding: var(--space-lg);
     background-color: var(--color-black);
     border: 2px solid var(--color-gray-dark);
     border-radius: var(--radius-md);
     cursor: pointer;
     transition: all var(--transition-medium);
     height: 100%;
   }
   
   .radio-button svg {
     margin-bottom: var(--space-sm);
     color: var(--color-gray);
     transition: all var(--transition-medium);
   }
   
   .radio-button input[type="radio"]:checked + label {
     border-color: var(--color-primary);
     background-color: rgba(57, 255, 20, 0.1);
   }
   
   .radio-button input[type="radio"]:checked + label svg {
     color: var(--color-primary);
   }
   
   .radio-button label:hover {
     border-color: var(--color-primary);
   }
   
   /* ==========================================================================
      Buttons
      ========================================================================== */
   
   .button {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     padding: var(--space-md) var(--space-xl);
     font-family: var(--font-primary);
     font-size: var(--font-size-md);
     font-weight: 600;
     text-align: center;
     text-decoration: none;
     border-radius: var(--radius-md);
     border: 2px solid transparent;
     cursor: pointer;
     transition: all var(--transition-medium);
     text-transform: uppercase;
     letter-spacing: 0.05em;
   }
   
   .button-primary {
     background-color: var(--color-primary);
     color: var(--color-black);
     border-color: var(--color-primary);
   }
   
   .button-primary:hover {
     background-color: var(--color-black);
     color: var(--color-primary);
     box-shadow: var(--shadow-md);
   }
   
   .button-secondary {
     background-color: var(--color-secondary);
     color: var(--color-white);
     border-color: var(--color-secondary);
   }
   
   .button-secondary:hover {
     background-color: var(--color-black);
     color: var(--color-secondary);
     box-shadow: 0 2px 6px rgba(0, 212, 255, 0.3);
   }
   
   .button-outline {
     background-color: transparent;
     border-color: var(--color-primary);
     color: var(--color-primary);
   }
   
   .button-outline:hover {
     background-color: var(--color-primary);
     color: var(--color-black);
   }
   
   .button-outline-secondary {
     background-color: transparent;
     border-color: var(--color-secondary);
     color: var(--color-secondary);
   }
   
   .button-outline-secondary:hover {
     background-color: var(--color-secondary);
     color: var(--color-white);
   }
   
   .button-full {
     width: 100%;
   }
   
   .button-large {
     padding: var(--space-lg) var(--space-2xl);
     font-size: var(--font-size-lg);
   }
   
   .button-small {
     padding: var(--space-sm) var(--space-lg);
     font-size: var(--font-size-sm);
   }
   
   .button-icon {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: var(--space-sm);
   }
   
   .button-icon svg {
     width: 20px;
     height: 20px;
   }
   
   .button[disabled] {
     opacity: 0.5;
     cursor: not-allowed;
   }
   
   .button-group {
     display: flex;
     gap: var(--space-md);
     flex-wrap: wrap;
   }
   
   /* ==========================================================================
      Error and Success Messages
      ========================================================================== */
   
   .error-message {
     color: var(--color-secondary);
     margin-bottom: 15px;
     text-align: center;
     display: none;
     background-color: rgba(0, 212, 255, 0.1);
     padding: var(--space-md);
     border-radius: var(--radius-md);
     border: 1px solid var(--color-secondary);
   }
   
   .success-message {
     color: var(--color-primary);
     margin-bottom: 15px;
     text-align: center;
     display: none;
     background-color: rgba(57, 255, 20, 0.1);
     padding: var(--space-md);
     border-radius: var(--radius-md);
     border: 1px solid var(--color-primary);
   }
   
   /* ==========================================================================
      Password Form Styling - FIXED FOR CONTRAST
      ========================================================================== */
   
   .password-form-container {
     max-width: 400px;
     margin: 40px auto;
     padding: 30px;
     background-color: var(--color-white);
     border: 2px solid var(--color-primary);
     border-radius: var(--radius-lg);
     text-align: center;
   }
   
   /* Fix all text in password form to be black */
   .password-form-container h1,
   .password-form-container h2,
   .password-form-container h3,
   .password-form-container h4,
   .password-form-container h5,
   .password-form-container h6 {
     color: var(--color-black) !important;
     font-size: var(--font-size-2xl);
     margin-bottom: var(--space-md);
   }
   
   .password-form-container p {
     color: var(--color-gray-dark) !important;
     margin-bottom: var(--space-lg);
   }
   
   .password-form-container label {
     color: var(--color-black) !important;
     font-weight: 600;
   }
   
   /* Override any inherited text colors in the password form */
   .password-form-container * {
     color: var(--color-black);
   }
   
   /* Keep form inputs with black background and white text */
   .password-form-container input {
     background-color: var(--color-black);
     color: var(--color-white);
     border: 2px solid var(--color-gray-dark);
   }
   
   .password-form-container input:focus {
     border-color: var(--color-primary);
   }
   
   /* ==========================================================================
   Simple 3-Dot Blinking Loading Animation - Pure Neon Green
   ========================================================================== */

.loading-container {
  text-align: center;
  padding: var(--space-3xl) var(--space-xl);
  background-color: var(--color-black);
  border: 2px solid var(--color-primary);
  border-radius: var(--radius-lg);
  max-width: 500px;
  margin: var(--space-2xl) auto;
  position: relative;
}

.loading-spinner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  margin: 0 auto var(--space-xl);
  height: 60px;
}

.loading-spinner .dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: var(--color-primary);
  animation: dotBlink 1.4s ease-in-out infinite both;
}

.loading-spinner .dot:nth-child(1) {
  animation-delay: 0s;
}

.loading-spinner .dot:nth-child(2) {
  animation-delay: 0.16s;
}

.loading-spinner .dot:nth-child(3) {
  animation-delay: 0.32s;
}

@keyframes dotBlink {
  0%, 80%, 100% {
    opacity: 0.3;
    transform: scale(0.8);
  }
  40% {
    opacity: 1;
    transform: scale(1);
  }
}

.loading-title {
  font-weight: 600;
  font-size: var(--font-size-xl);
  margin-bottom: var(--space-md);
  color: var(--color-white);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.loading-text {
  color: var(--color-gray-light);
  margin-bottom: var(--space-md);
  font-family: var(--font-primary);
}

/* Loading overlay for PDF generation */
.loading-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.loading-content {
  background-color: var(--color-black);
  border: 2px solid var(--color-primary);
  padding: 40px;
  border-radius: var(--radius-lg);
  text-align: center;
  max-width: 400px;
}

.loader-icon {
  animation: spin 1.5s linear infinite;
  color: var(--color-primary);
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Loading overlay for PDF generation */
.loading-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.loading-content {
  background-color: var(--color-black);
  border: 2px solid var(--color-primary);
  padding: 40px;
  border-radius: var(--radius-lg);
  text-align: center;
  max-width: 400px;
}

.loader-icon {
  animation: spin 1.5s linear infinite;
  color: var(--color-primary);
}
   
   /* Loading overlay for PDF generation */
   .loading-overlay {
     position: fixed;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background-color: rgba(0, 0, 0, 0.9);
     display: flex;
     justify-content: center;
     align-items: center;
     z-index: 9999;
   }
   
   .loading-content {
     background-color: var(--color-black);
     border: 2px solid var(--color-primary);
     padding: 40px;
     border-radius: var(--radius-lg);
     text-align: center;
     max-width: 400px;
   }
   
   .loader-icon {
     animation: spin 1.5s linear infinite;
     color: var(--color-primary);
   }
   
   @keyframes spin {
     0% { transform: rotate(0deg); }
     100% { transform: rotate(360deg); }
   }
   
   /* ==========================================================================
      LOLLI Plan Results
      ========================================================================== */
   
   .results-container {
     margin-top: var(--space-2xl);
   }
   
   .plan-header {
     margin-bottom: var(--space-2xl);
     position: relative;
   }
   
   .plan-header:after {
     content: "";
     position: absolute;
     bottom: -10px;
     left: 50%;
     transform: translateX(-50%);
     width: 80px;
     height: 2px;
     background-color: var(--color-primary);
   }
   
   .plan-overview {
     background-color: var(--color-black);
     border: 2px solid var(--color-primary);
     border-radius: var(--radius-lg);
     padding: var(--space-xl);
     margin-bottom: var(--space-2xl);
     position: relative;
   }
   
   .plan-overview:before {
     content: "";
     position: absolute;
     top: 0;
     left: 0;
     width: 4px;
     height: 100%;
     background-color: var(--color-primary);
   }
   
   .plan-overview-header {
     display: flex;
     align-items: center;
     justify-content: space-between;
     margin-bottom: var(--space-lg);
   }
   
   .plan-overview-grid {
     display: grid;
     grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
     gap: var(--space-lg);
   }
   
   .plan-overview-item {
     background-color: var(--color-black);
     border: 1px solid var(--color-gray-dark);
     padding: var(--space-lg);
     border-radius: var(--radius-md);
     transition: border-color var(--transition-medium);
   }
   
   .plan-overview-item:hover {
     border-color: var(--color-primary);
   }
   
   .plan-overview-item strong {
     display: block;
     color: var(--color-primary);
     font-weight: 600;
     margin-bottom: var(--space-xs);
     text-transform: uppercase;
     letter-spacing: 0.05em;
   }
   
   /* Phase Accordion */
   .phase-accordion {
     margin-bottom: var(--space-2xl);
   }
   
   .phase-item {
     margin-bottom: var(--space-md);
     border-radius: var(--radius-md);
     background-color: var(--color-black);
     border: 2px solid var(--color-gray-dark);
     overflow: hidden;
     transition: all var(--transition-medium);
   }
   
   .phase-item.active {
     border-color: var(--color-primary);
   }
   
   .phase-header {
     padding: var(--space-lg) var(--space-xl);
     display: flex;
     align-items: center;
     justify-content: space-between;
     cursor: pointer;
     transition: background-color var(--transition-fast);
   }
   
   .phase-header:hover {
     background-color: rgba(57, 255, 20, 0.05);
   }
   
   .phase-marker {
     display: flex;
     align-items: center;
     justify-content: center;
     width: 40px;
     height: 40px;
     border-radius: 50%;
     margin-right: var(--space-md);
     font-weight: 700;
     font-size: var(--font-size-lg);
     color: var(--color-black);
     background-color: var(--color-primary);
     flex-shrink: 0;
   }
   
   .phase-item.look .phase-marker {
     background-color: var(--color-primary);
   }
   
   .phase-item.obtain .phase-marker {
     background-color: var(--color-primary);
   }
   
   .phase-item.learn .phase-marker {
     background-color: var(--color-primary);
   }
   
   .phase-item.leverage .phase-marker {
     background-color: var(--color-primary);
   }
   
   .phase-item.implement .phase-marker {
     background-color: var(--color-primary);
   }
   
   .phase-title {
     display: flex;
     align-items: center;
   }
   
   .phase-title h3 {
     margin-bottom: 0;
     font-size: var(--font-size-xl);
     color: var(--color-white);
   }
   
   .phase-method {
     font-weight: 400;
     margin-left: var(--space-sm);
     color: var(--color-gray);
     text-transform: none;
   }
   
   .phase-icon {
     transition: transform var(--transition-medium);
     color: var(--color-gray);
   }
   
   .phase-item.active .phase-icon {
     transform: rotate(180deg);
     color: var(--color-primary);
   }
   
   .phase-content {
     max-height: 0;
     overflow: hidden;
     transition: max-height var(--transition-slow);
   }
   
   .phase-item.active .phase-content {
     max-height: 2000px;
   }
   
   .phase-body {
     padding: var(--space-xl);
     border-top: 1px solid var(--color-gray-dark);
   }
   
   .phase-description {
     font-size: var(--font-size-lg);
     color: var(--color-gray-light);
     margin-bottom: var(--space-xl);
   }
   
   .info-section {
     background-color: rgba(57, 255, 20, 0.05);
     border: 1px solid var(--color-primary);
     padding: var(--space-lg);
     border-radius: var(--radius-md);
     margin-bottom: var(--space-xl);
   }
   
   .info-section h4 {
     color: var(--color-primary);
     display: flex;
     align-items: center;
     gap: var(--space-sm);
     margin-bottom: var(--space-md);
   }
   
   .steps-list {
     counter-reset: steps;
     list-style: none;
     padding: 0;
     margin-top: var(--space-lg);
   }
   
   .steps-list li {
     position: relative;
     margin-bottom: var(--space-lg);
     padding-left: 50px;
     counter-increment: steps;
     color: var(--color-gray-light);
   }
   
   .steps-list li:before {
     content: counter(steps);
     position: absolute;
     left: 0;
     top: 0;
     width: 36px;
     height: 36px;
     background-color: var(--color-primary);
     color: var(--color-black);
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     font-weight: 600;
   }
   
   .hint-list {
     list-style: none;
     padding: 0;
     margin-top: var(--space-lg);
   }
   
   .hint-list li {
     position: relative;
     margin-bottom: var(--space-md);
     padding-left: 36px;
     color: var(--color-gray-light);
   }
   
   .hint-list li:before {
     content: "▶";
     position: absolute;
     left: 0;
     top: 0;
     color: var(--color-primary);
     font-size: var(--font-size-lg);
   }

      /* Left-align text in plan sections while preserving custom bullets */
    .steps-list {
      text-align: left;
    }

    .hint-list {
      text-align: left;
    }

    .phase-description {
      text-align: left;
    }

    .info-section p {
      text-align: left;
    }

    /* Ensure the individual list items are also left-aligned */
    .steps-list li {
      text-align: left;
    }

    .hint-list li {
      text-align: left;
    }
   
   /* ==========================================================================
      Footer
      ========================================================================== */
   
   .footer {
     padding: var(--space-2xl) 0;
     text-align: center;
     color: var(--color-gray);
     position: relative;
     border-top: 1px solid var(--color-gray-dark);
   }
   
   .footer-link {
     color: var(--color-primary);
     text-decoration: none;
     font-weight: 500;
     transition: color var(--transition-fast);
   }
   
   .footer-link:hover {
     color: var(--color-secondary);
   }
   
   .footer-legal {
     margin-top: var(--space-sm);
     text-align: center;
     font-size: var(--font-size-sm);
     color: var(--color-gray);
   }
   
   .footer-legal-link {
     color: var(--color-gray);
     text-decoration: none;
     transition: color var(--transition-fast);
   }
   
   .footer-legal-link:hover {
     color: var(--color-gray-light);
   }
   
   /* ==========================================================================
      Utility Classes
      ========================================================================== */
   
   .hidden {
     display: none !important;
   }
   
   .mb-xs { margin-bottom: var(--space-xs); }
   .mb-sm { margin-bottom: var(--space-sm); }
   .mb-md { margin-bottom: var(--space-md); }
   .mb-lg { margin-bottom: var(--space-lg); }
   .mb-xl { margin-bottom: var(--space-xl); }
   .mb-2xl { margin-bottom: var(--space-2xl); }
   .mb-3xl { margin-bottom: var(--space-3xl); }
   
   .mt-xs { margin-top: var(--space-xs); }
   .mt-sm { margin-top: var(--space-sm); }
   .mt-md { margin-top: var(--space-md); }
   .mt-lg { margin-top: var(--space-lg); }
   .mt-xl { margin-top: var(--space-xl); }
   .mt-2xl { margin-top: var(--space-2xl); }
   .mt-3xl { margin-top: var(--space-3xl); }
   
   
   /* ==========================================================================
      LOLLI 101 Page Styles
      ========================================================================== */
   
   .phases-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
     gap: var(--space-xl);
     margin-bottom: var(--space-xl);
   }
   
   .phase-card {
     background-color: var(--color-black);
     border: 2px solid var(--color-gray-dark);
     border-radius: var(--radius-md);
     overflow: hidden;
     transition: all var(--transition-medium);
   }
   
   .phase-card:hover {
     border-color: var(--color-primary);
     transform: translateY(-2px);
   }
   
   .phase-card-header {
     padding: var(--space-md) var(--space-lg);
     display: flex;
     align-items: center;
     gap: var(--space-md);
     background-color: rgba(57, 255, 20, 0.1);
     border-bottom: 1px solid var(--color-primary);
   }
   
   .phase-card-header h2 {
     margin-bottom: 0;
     font-size: var(--font-size-xl);
     color: var(--color-white);
   }
   
   .phase-card-content {
     padding: var(--space-lg);
   }
   
   .phase-card-content h4 {
     margin-top: var(--space-md);
     margin-bottom: var(--space-sm);
     font-size: var(--font-size-md);
     color: var(--color-white);
   }
   
   .phase-card-content ul {
     list-style-type: none;
     padding-left: 0;
   }
   
   .phase-card-content ul li {
     position: relative;
     padding-left: 20px;
     margin-bottom: var(--space-xs);
     color: var(--color-gray-light);
   }
   
   .phase-card-content ul li:before {
     content: "▶";
     position: absolute;
     left: 0;
     color: var(--color-primary);
   }

      /* Left-align phase card content while keeping headers centered */
    .phase-card-content {
      text-align: left;
    }

    .phase-card-content p {
      text-align: left;
    }

    .phase-card-content ul {
      text-align: left;
    }

    .phase-card-content li {
      text-align: left;
    }

    .phase-card-content h4 {
      text-align: left;
    }
   
   .benefits-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
     gap: var(--space-xl);
   }
   
   .benefit-item {
     text-align: center;
     padding: var(--space-lg);
     border: 1px solid var(--color-gray-dark);
     border-radius: var(--radius-md);
     transition: border-color var(--transition-medium);
   }
   
   .benefit-item:hover {
     border-color: var(--color-primary);
   }
   
   .benefit-item svg {
     width: 40px;
     height: 40px;
     stroke: var(--color-primary);
     margin-bottom: var(--space-md);
   }
   
   .benefit-item h4 {
     margin-bottom: var(--space-sm);
     color: var(--color-white);
   }
   
   /* ==========================================================================
      Legal Pages
      ========================================================================== */
   
   .legal-card {
     max-width: 800px;
     margin: 0 auto;
   }
   
   .legal-section {
     margin-bottom: var(--space-xl);
   }
   
   .legal-section h2 {
     font-size: var(--font-size-2xl);
     margin-bottom: var(--space-md);
     color: var(--color-primary);
   }
   
   .legal-section h3 {
     font-size: var(--font-size-xl);
     margin-bottom: var(--space-sm);
     margin-top: var(--space-lg);
     color: var(--color-white);
   }
   
   .legal-section p {
     margin-bottom: var(--space-md);
     color: var(--color-gray-light);
   }
   
   .legal-section ul {
     padding-left: var(--space-xl);
     margin-bottom: var(--space-md);
   }
   
   .legal-section ul li {
     margin-bottom: var(--space-sm);
     color: var(--color-gray-light);
   }
   
   /* Enhanced intro section */
   .intro-section {
     background-color: rgba(57, 255, 20, 0.05);
     border: 1px solid var(--color-primary);
     padding: var(--space-xl);
     border-radius: var(--radius-lg);
     margin-bottom: var(--space-2xl);
   }
   
   .intro-section p {
     color: var(--color-gray-light);
     font-size: var(--font-size-lg);
     margin-bottom: 0;
   }
   
   /* Brand Title Styling */
   .brand-title {
     font-size: var(--font-size-5xl);
     font-weight: 800;
     color: var(--color-primary);
     text-transform: uppercase;
     letter-spacing: 0.1em;
     margin-bottom: var(--space-sm);
   }
   
   .brand-subtitle {
     font-size: var(--font-size-lg);
     color: var(--color-gray-light);
     font-weight: 400;
     text-transform: uppercase;
     letter-spacing: 0.15em;
   }
   
   /* ==========================================================================
      Responsive Styles
      ========================================================================== */
   
   @media (max-width: 768px) {
     h1 {
       font-size: var(--font-size-4xl);
     }
     
     h2 {
       font-size: var(--font-size-3xl);
     }
     
     h3 {
       font-size: var(--font-size-2xl);
     }
     
     .radio-group {
       flex-direction: column;
     }
     
     .radio-button {
       flex: 1 0 100%;
     }
     
     .button-group {
       flex-direction: column;
     }
     
     .phase-method {
       display: block;
       margin-left: 0;
       margin-top: 5px;
       width: 100%;
       clear: both;
       font-size: 14px;
       color: var(--color-gray);
     }
     
     .phase-title {
       flex-wrap: wrap;
       padding-bottom: 10px;
     }
     
     .phase-title h3 {
       margin-right: 10px;
     }
     
     .plan-overview-grid {
       grid-template-columns: 1fr;
     }
     
     .phase-content {
       max-height: none !important; 
       overflow: visible !important;
       transition: none !important;
     }
     
     .phase-item.active .phase-content {
       max-height: none !important;
       overflow: visible !important;
     }
     
     .phase-body {
       padding: var(--space-md) !important;
     }
     
     .steps-list li, .hint-list li {
       padding-left: 40px;
       margin-bottom: var(--space-md);
       word-wrap: break-word;
       overflow-wrap: break-word;
     }
     
     .card, .plan-overview, .phase-item {
       height: auto !important;
       max-height: none !important;
       overflow: visible !important;
     }
     
     .plan-overview-item {
       overflow-wrap: break-word;
       word-wrap: break-word;
     }
     
     .phase-header {
       padding: var(--space-md) var(--space-lg) !important;
     }
     
     .phase-item {
       margin-bottom: var(--space-lg) !important;
     }
     
     .loading-spinner {
       width: 150px;
     }
     
     .loading-spinner::after {
       width: 60px;
     }
   }
   
   /* ==========================================================================
      Print Styles for PDF Generation
      ========================================================================== */
   
   @media print {
     .phase-content {
       max-height: none !important;
       display: block !important;
       overflow: visible !important;
     }
     
     .phase-item {
       page-break-inside: avoid;
       margin-bottom: 20px;
       break-inside: avoid;
     }
     
     .phase-item.active .phase-content {
       max-height: none !important;
     }
     
     .phase-body {
       display: block !important;
       visibility: visible !important;
     }
     
     .button-group, 
     #downloadPdf,
     .phase-icon {
       display: none !important;
     }
   }