/* ============================================
   Custom Properties (CSS Variables)
   ============================================ */
:root {
  --accent-color: #FFD700;
  --accent2-color: #FF5722;
  --accent3-color: #2196F3;
  --accent4-color: #4CAF50;
  --primary-color: #3A7D44;
  
  --dark-text-color: #212121;
  --gray-text-color: #9E9E9E;
  --light-text-color: #FAFAFA;
  
  --dark-background-color: #1A1A1A;
  --light-background-color: #EFF6F1;
  --medium-background-color: #DCECE3;
  
  --dark-border-color: #424242;
  --light-border-color: #E0E0E0;
  
  --primary-button-text-color: #FFFFFF;
  --secondary-button-bg-color: #BC4749;
  --secondary-button-text-color: #FFFFFF;
  
  --primary-button-hover-bg-color: #2E6537;
  --primary-button-hover-text-color: #FFFFFF;
  --secondary-button-hover-bg-color: #93383B;
  --secondary-button-hover-text-color: #FFFFFF;
  
  --button-padding-x: 16px;
  --button-padding-y: 10px;
  --button-rounded-radius: 4px;
  
  --font-family-heading: 'Raleway', sans-serif;
  --font-family-body: 'Open Sans', sans-serif;
}

/* ============================================
   Dev Tools / Debug Classes
   ============================================ */
.hovered-element {
  outline: #3871E0 dashed 2px;
}

.clicked-element {
  outline: #3871E0 solid 2px;
}

.clicked-code-section {
  border: #3B82F6 solid 2px;
}

/* ============================================
   Tailwind Base + Preflight Reset
   ============================================ */
*, ::before, ::after {
  border-width: 0;
  border-style: solid;
  border-color: #e5e7eb;
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
}

/* ============================================
   Tailwind Generated Utility Classes
   ============================================ */

/* Layout */
.absolute { position: absolute; }
.relative { position: relative; }
.sticky { position: sticky; }

.inset-0 { inset: 0px; }
.top-0 { top: 0px; }
.bottom-0 { bottom: 0px; }
.left-0 { left: 0px; }
.right-0 { right: 0px; }

.z-10 { z-index: 10; }
.z-20 { z-index: 20; }
.z-50 { z-index: 50; }

/* Flex & Grid */
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.grid { display: grid; }
.hidden { display: none; }

.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }

.items-start { align-items: flex-start; }
.items-center { align-items: center; }

.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }

/* Spacing */
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }
.gap-12 { gap: 3rem; }

.space-y-3 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.75rem; }
.space-y-4 > :not([hidden]) ~ :not([hidden]) { margin-top: 1rem; }
.space-x-8 > :not([hidden]) ~ :not([hidden]) { margin-left: 2rem; }

/* Sizing */
.w-full { width: 100%; }
.h-full { height: 100%; }
.h-auto { height: auto; }

/* Typography */
.text-center { text-align: center; }

.text-xs { font-size: 0.75rem; line-height: 1rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }

.font-bold { font-weight: 700; }
.font-semibold { font-weight: 600; }
.font-medium { font-weight: 500; }

.leading-tight { line-height: 1.25; }
.leading-relaxed { line-height: 1.625; }

/* Colors - using variables */
.text-\[var(--primary-color)\] { color: var(--primary-color); }
.text-\[var(--accent-color)\] { color: var(--accent-color); }
.text-\[var(--accent2-color)\] { color: var(--accent2-color); }
.text-\[var(--accent3-color)\] { color: var(--accent3-color); }
.text-\[var(--accent4-color)\] { color: var(--accent4-color); }

.bg-\[var(--primary-color)\] { background-color: var(--primary-color); }
.bg-\[var(--accent-color)\] { background-color: var(--accent-color); }
.bg-\[var(--accent2-color)\] { background-color: var(--accent2-color); }

/* Hover States */
.hover\:bg-\[var(--primary-color)\]:hover { background-color: var(--primary-color); }
.hover\:text-\[var(--primary-color)\]:hover { color: var(--primary-color); }
.hover\:-translate-y-1:hover { transform: translateY(-0.25rem); }
.hover\:shadow-xl:hover { box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); }

/* Transitions */
.transition-all { transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1); }
.transition-colors { transition: color, background-color, border-color 150ms cubic-bezier(0.4, 0, 0.2, 1); }
.duration-300 { transition-duration: 300ms; }

/* Shadows */
.shadow-sm { box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); }
.shadow-md { box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); }
.shadow-lg { box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); }
.shadow-xl { box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); }
.shadow-2xl { box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); }

/* Responsive */
@media (min-width: 640px) {
  .sm\:text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
  .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lg\:text-6xl { font-size: 3.75rem; line-height: 1; }
  .lg\:py-28 { padding-top: 7rem; padding-bottom: 7rem; }
}