/* Custom Design System Tokens & Properties */
:root {
  --color-brand-primary: #15803d; /* emerald-700 */
  --color-brand-secondary: #b45309; /* amber-700 */
  --font-serif: 'Playfair Display', Georgia, Cambria, serif;
  --font-sans: 'Inter', system-ui, -apple-system, sans-serif;
  
  /* Transition timings */
  --transition-speed: 0.3s;
  --transition-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Base resets & typography */
html {
  font-family: var(--font-sans);
}

h1, h2, h3, h4, .font-serif {
  font-family: var(--font-serif);
}

/* Glassmorphism Panel styling */
.glass-panel {
  background: rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(12px) saturate(180%);
  -webkit-backdrop-filter: blur(12px) saturate(180%);
  border: 1px solid rgba(228, 228, 231, 0.4);
}

/* Elegant Hover Animations */
a, button {
  transition: all var(--transition-speed) var(--transition-ease);
}

/* Accessible focus outlines */
input:focus-visible, 
textarea:focus-visible, 
button:focus-visible,
summary:focus-visible {
  outline: 2px solid #000000;
  outline-offset: 3px;
}

/* Form Checkbox and Custom Toggles */
.custom-checkbox {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  min-height: 48px;
  padding: 8px 12px;
  border-radius: 12px;
  border: 1px solid #e4e4e7; /* border-zinc-200 */
  background-color: rgba(250, 250, 249, 0.6); /* stone-50 */
  transition: all var(--transition-speed) var(--transition-ease);
}

.custom-checkbox:hover {
  border-color: #fda4af; /* rose-300 */
  background-color: rgba(255, 241, 242, 0.5); /* rose-50 */
}

.custom-checkbox:has(:checked) {
  border-color: var(--color-brand-primary);
  background-color: rgba(255, 241, 242, 0.7); /* rose-50 */
}

/* Hide checkbox input visually but keep focusable */
.custom-checkbox input[type="checkbox"] {
  position: absolute;
  clip-path: inset(50%);
  overflow: hidden;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  white-space: nowrap;
}

/* Checkbox Indicator mark */
.checkbox-indicator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border: 1px solid #d4d4d8;
  border-radius: 6px;
  margin-right: 12px;
  background-color: #ffffff;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.custom-checkbox input[type="checkbox"]:checked + .checkbox-indicator {
  background-color: var(--color-brand-primary);
  border-color: var(--color-brand-primary);
  color: #ffffff;
}

/* Reveal arrow indicator for details accordion */
details summary::-webkit-details-marker {
  display: none;
}

/* Keyframe animations */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-in {
  animation: fadeInUp 0.4s var(--transition-ease) forwards;
}
