/**
 * AssistCamp Global Styles
 * Design system based on documentation mockup
 */

/* CSS Variables - Color System */
:root {
	/* Background Colors */
	--assistcamp-bg-primary: #ffffff;
	--assistcamp-bg-white: #ffffff;
	--assistcamp-bg-muted: #e8e8e8;
	--assistcamp-bg-hover: #f0f0f0;
	
	/* Border Colors */
	--assistcamp-border: #cccccc;
	--assistcamp-border-light: #dddddd;
	
	/* Text Colors */
	--assistcamp-text-primary: #1a1a1a;
	--assistcamp-text-secondary: #333333;
	--assistcamp-text-muted: #4b5563;
	--assistcamp-text-light: #666666;
	
	/* Accent Colors */
	--assistcamp-accent-hover: rgba(107, 114, 128, 0.15);
	--assistcamp-focus-shadow: rgba(107, 114, 128, 0.1);
	
	/* Spacing */
	--assistcamp-spacing-xs: 0.25rem;
	--assistcamp-spacing-sm: 0.5rem;
	--assistcamp-spacing-md: 1rem;
	--assistcamp-spacing-lg: 1.5rem;
	--assistcamp-spacing-xl: 2rem;
	--assistcamp-spacing-2xl: 3rem;
	--assistcamp-spacing-3xl: 4rem;
	
	/* Typography Scale */
	--assistcamp-font-xs: 0.75rem;    /* 12px */
	--assistcamp-font-sm: 0.875rem;   /* 14px */
	--assistcamp-font-base: 1rem;     /* 16px */
	--assistcamp-font-lg: 1.125rem;   /* 18px */
	--assistcamp-font-xl: 1.25rem;    /* 20px */
	--assistcamp-font-2xl: 1.5rem;    /* 24px */
	--assistcamp-font-3xl: 1.875rem;  /* 30px */
	--assistcamp-font-4xl: 2.5rem;    /* 40px */
	--assistcamp-font-5xl: 3rem;      /* 48px */
	
	/* Border Radius */
	--assistcamp-radius-sm: 4px;
	--assistcamp-radius-md: 8px;
	--assistcamp-radius-lg: 12px;
	--assistcamp-radius-xl: 16px;
	
	/* Shadows */
	--assistcamp-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
	--assistcamp-shadow-md: 0 4px 12px rgba(107, 114, 128, 0.1);
	--assistcamp-shadow-lg: 0 4px 12px rgba(107, 114, 128, 0.15);
	
	/* Transitions */
	--assistcamp-transition: all 0.2s ease;
	--assistcamp-transition-slow: all 0.3s ease;
}

/* Base Typography */
.assistcamp-docs,
.assistcamp-docs * {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
}

.assistcamp-docs {
	line-height: 1.6;
	color: var(--assistcamp-text-secondary);
}

/* Headings */
.assistcamp-hero-title {
	font-size: 3rem !important;
	font-weight: 700;
	color: var(--assistcamp-text-primary);
	line-height: 1.2;
	margin-bottom: var(--assistcamp-spacing-lg);
}

.assistcamp-page-title {
	font-size: var(--assistcamp-font-4xl);
	font-weight: 700;
	color: var(--assistcamp-text-primary);
	line-height: 1.2;
	margin-bottom: var(--assistcamp-spacing-md);
}

.assistcamp-section-title {
	font-size: var(--assistcamp-font-3xl);
	font-weight: 600;
	color: var(--assistcamp-text-primary);
	margin-bottom: var(--assistcamp-spacing-xl);
}

.assistcamp-card-title {
	font-size: var(--assistcamp-font-xl);
	font-weight: 600;
	color: var(--assistcamp-text-primary);
	margin-bottom: var(--assistcamp-spacing-sm);
}

/* Text Styles */
.assistcamp-hero-title {
	font-size: 3rem !important;
	font-weight: 700;
	color: var(--assistcamp-text-primary);
	line-height: 1.2;
}

.assistcamp-subtitle {
	font-size: 1.125rem !important;
	color: var(--assistcamp-text-muted);
	line-height: 1.6;
	margin: 0 auto;
}

.assistcamp-section-title {
	font-size: 1.875rem !important;
	font-weight: 600;
	color: var(--assistcamp-text-primary);
}

.assistcamp-meta-text {
	font-size: var(--assistcamp-font-sm);
	color: var(--assistcamp-text-muted);
}

/* Badge Styles */
.assistcamp-badge {
	display: inline-block;
	background: var(--assistcamp-bg-muted);
	color: var(--assistcamp-text-muted);
	padding: var(--assistcamp-spacing-xs) var(--assistcamp-spacing-sm);
	border-radius: var(--assistcamp-radius-xl);
	font-size: var(--assistcamp-font-xs);
	font-weight: 500;
	line-height: 1;
}

.assistcamp-count-badge {
	background: #e5e7eb;
	color: var(--assistcamp-text-muted);
	padding: 0.125rem 0.5rem;
	border-radius: 12px;
	font-size: var(--assistcamp-font-xs);
	font-weight: 500;
}

/* Card Styles */
.assistcamp-card {
	background: var(--assistcamp-bg-white);
	border: 1px solid var(--assistcamp-border);
	border-radius: var(--assistcamp-radius-sm);
	padding: var(--assistcamp-spacing-lg);
	transition: var(--assistcamp-transition);
}

.assistcamp-card:hover {
	border-color: var(--assistcamp-text-muted);
	box-shadow: var(--assistcamp-shadow-lg);
	transform: translateY(-2px);
}

/* Icon Container */
.assistcamp-icon-box {
	background: var(--assistcamp-bg-muted);
	color: var(--assistcamp-text-muted);
	width: 48px;
	height: 48px;
	border-radius: var(--assistcamp-radius-lg);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: var(--assistcamp-font-xl);
	flex-shrink: 0;
}

/* Layout Containers */

	margin: 0 auto;
	padding: 4rem var(--assistcamp-spacing-xl);
	background-color: var(--assistcamp-bg-primary);
	min-height: 100vh;
}

.assistcamp-content-width {
	max-width: 800px;
	margin: 0 auto;
}

/* Two Column Layout */
.assistcamp-layout {
	display: flex;
	gap: var(--assistcamp-spacing-2xl);
	align-items: flex-start;
}

.assistcamp-sidebar-container {
	width: 320px;
	flex-shrink: 0;
}

.assistcamp-main-content {
	flex: 1;
	min-width: 0;
}

/* Responsive Grid */
.assistcamp-grid {
	display: grid;
	gap: var(--assistcamp-spacing-lg);
}

.assistcamp-grid-3 {
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

/* Section Spacing */
.assistcamp-section {
	margin-bottom: var(--assistcamp-spacing-2xl);
}

/* Hero Section */
.assistcamp-hero {
	text-align: center;
	padding: var(--assistcamp-spacing-3xl) 0 var(--assistcamp-spacing-xl);
	margin-bottom: var(--assistcamp-spacing-lg);
}

/* Search Section Base */
.assistcamp-search-section {
	margin-bottom: var(--assistcamp-spacing-2xl);
	text-align: left;
}

/* Responsive Design */
@media (max-width: 1024px) {
	.assistcamp-layout {
		flex-direction: column;
	}
	
	.assistcamp-sidebar-container {
		width: 100%;
	}
	
	.assistcamp-hero-title {
		font-size: var(--assistcamp-font-4xl);
	}
}

@media (max-width: 768px) {
	:root {
		--assistcamp-spacing-xl: 1.5rem;
		--assistcamp-spacing-2xl: 2rem;
		--assistcamp-spacing-3xl: 3rem;
	}
	
	.assistcamp-hero-title {
		font-size: var(--assistcamp-font-3xl);
	}
	
	.assistcamp-page-title {
		font-size: var(--assistcamp-font-3xl);
	}
	
	.assistcamp-subtitle {
		font-size: var(--assistcamp-font-base);
	}
	
	.assistcamp-grid-3 {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	.assistcamp-hero {
		padding: var(--assistcamp-spacing-xl) 0;
	}
	
	.assistcamp-hero-title {
		font-size: 1.75rem;
	}
}

/* Utility Classes */
.assistcamp-text-center {
	text-align: center;
}

.assistcamp-mb-md {
	margin-bottom: var(--assistcamp-spacing-md);
}

.assistcamp-mb-lg {
	margin-bottom: var(--assistcamp-spacing-lg);
}

.assistcamp-mb-xl {
	margin-bottom: var(--assistcamp-spacing-xl);
}

/* Animation Classes */
.assistcamp-fade-in {
	animation: assistcampFadeIn 0.3s ease-in-out;
}

@keyframes assistcampFadeIn {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Focus States */
.assistcamp-focusable:focus {
	outline: none;
	box-shadow: 0 0 0 3px var(--assistcamp-focus-shadow);
}

/* Link Styles */
.assistcamp-link {
	color: var(--assistcamp-text-secondary);
	text-decoration: none;
	transition: var(--assistcamp-transition);
}

.assistcamp-link:hover {
	color: var(--assistcamp-text-primary);
	text-decoration: underline;
}


/* Doc Header Styles */
.assistcamp-doc-header {
	border-bottom: 1px solid var(--assistcamp-border);
}

.assistcamp-doc-header h1 {
	font-size: var(--assistcamp-font-4xl);
	font-weight: 700;
	color: var(--assistcamp-text-primary);
	line-height: 1.2;
}

/* Doc Meta Information */
.assistcamp-doc-meta {
	display: flex;
	align-items: center;
	gap: var(--assistcamp-spacing-lg);
	flex-wrap: wrap;
	font-size: var(--assistcamp-font-sm);
	color: var(--assistcamp-text-muted);
}

.assistcamp-doc-meta > * {
	display: flex;
	align-items: center;
	gap: var(--assistcamp-spacing-xs);
}

/* Breadcrumb Enhancement */
.wp-block-assistcamp-breadcrumb .breadcrumb-separator {
	color: var(--assistcamp-text-light);
	font-size: var(--assistcamp-font-xs);
	margin: 0 var(--assistcamp-spacing-sm);
}

/* TOC Section Styling */
.wp-block-assistcamp-table-of-contents {
	margin-top: var(--assistcamp-spacing-xl);
	padding-top: var(--assistcamp-spacing-xl);
	border-top: 1px solid var(--assistcamp-border-light);
}

/* Sidebar Adjustments */
.wp-block-assistcamp-sidebar + .wp-block-assistcamp-table-of-contents {
	margin-top: var(--assistcamp-spacing-xl);
}

/* Doc Content Spacing */
.wp-block-assistcamp-single-doc-content {
	margin-top: var(--assistcamp-spacing-xl);
}


/* Doc Navigation Enhancement */
.wp-block-assistcamp-doc-navigation {
	margin-top: var(--assistcamp-spacing-lg);
}

/* Sidebar Categories Section Animation */
.assistcamp-sidebar__categories-section {
	transition: opacity 0.3s ease, transform 0.3s ease;
	opacity: 1;
	transform: translateY(0);
}

.assistcamp-sidebar__categories-section.hidden {
	opacity: 0;
	transform: translateY(-20px);
	pointer-events: none;
	position: absolute;
	top: 0;
	visibility: hidden;
}

/* TOC Compact Mode */
.wp-block-assistcamp-table-of-contents {
	transition: margin-top 0.3s ease, padding-top 0.3s ease;
}

.wp-block-assistcamp-table-of-contents.compact {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.wp-block-assistcamp-table-of-contents.compact .assistcamp-table-of-contents__nav {
	border-top: none;
}