@import "tailwindcss";

/* Light mode colors (default) */
:root {
	--bg: #F4F6F8;
	--surface: #FFFFFF;
	--text-primary: #1C1E21;
	--text-secondary: #5C6670;
	--accent: #4F46E5;
	--border: #E5E7EB;
	--link: #4F46E5;
	--link-hover: #3730A3;
	--link-active: #312E81;
	--link-visited: #6D28D9;
	--focus-ring: rgba(79, 70, 229, 0.35);
	
	/* Legacy variables for compatibility */
	--color-background: var(--bg);
	--color-foreground: var(--text-primary);
	--color-muted: var(--surface);
	--color-muted-foreground: var(--text-secondary);
	--color-accent: var(--accent);
	--color-border: var(--border);
}

/* Dark mode colors */
[data-theme="dark"] {
	--bg: #0E1117;
	--surface: #161B22;
	--text-primary: #E6EDF3;
	--text-secondary: #9DA7B3;
	--accent: #454545;
	--border: #30363D;
	--link: #454545;
	--link-hover: #A78BFA;
	--link-active: #C4B5FD;
	--link-visited: #7C3AED;
	--focus-ring: rgba(139, 92, 246, 0.4);
	
	/* Legacy variables for compatibility */
	--color-background: var(--bg);
	--color-foreground: var(--text-primary);
	--color-muted: var(--surface);
	--color-muted-foreground: var(--text-secondary);
	--color-accent: var(--accent);
	--color-border: var(--border);
}

/* Base styles */
body {
	background-color: var(--bg);
	color: var(--text-primary);
	transition: background-color 0.3s ease, color 0.3s ease;
}

/* Override WordPress global padding styles that break margins */
.has-global-padding {
	padding-right: 0 !important;
	padding-left: 0 !important;
}

/* Ensure alignfull blocks don't get negative margins from global padding */
.has-global-padding > .alignfull {
	margin-right: 0 !important;
	margin-left: 0 !important;
}

/* Global content container pattern: sections at 100%, content at 1400px */
/* Sections can be full-width for backgrounds */
.wp-block-group.alignfull,
.wp-block-cover.alignfull,
.wp-block-columns.alignfull,
.alignfull {
	max-width: 100%;
	width: 100%;
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
}

/* Content inside full-width sections should be constrained to 1400px */
.alignfull > .wp-block-group:not(.alignfull):not(.alignwide),
.alignfull > .wp-block-group[class*="is-layout-constrained"],
.alignfull .wp-block-group__inner-container > .wp-block-group:not(.alignfull):not(.alignwide),
.alignfull .wp-block-group__inner-container > .wp-block-group[class*="is-layout-constrained"],
.alignfull > .wp-block-columns:not(.alignfull):not(.alignwide),
.alignfull .wp-block-post-content:not(.alignfull):not(.alignwide) {
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

/* Default blocks (not in full-width sections) should also be constrained */
.wp-block-group:not(.alignfull):not(.alignwide):not([class*="is-layout-flex"]):not([class*="is-layout-grid"]),
.wp-block-post-content:not(.alignfull):not(.alignwide),
.wp-block-query:not(.alignfull):not(.alignwide) {
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

/* Section container pattern - applies to all sections */
.section-container,
.wp-block-group[class*="is-layout-constrained"]:not(.alignfull):not(.alignwide) {
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

/* Wide alignment */
.wp-block-group.alignwide,
.wp-block-cover.alignwide,
.wp-block-columns.alignwide,
.alignwide {
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

/* Constrained layout (default WordPress block layout) */
.wp-block-group[class*="is-layout-constrained"]:not(.alignfull):not(.alignwide) {
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

/* Ensure constrained layout inside full-width sections */
.alignfull .wp-block-group[class*="is-layout-constrained"]:not(.alignfull):not(.alignwide) {
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

/* Main content area */
main.wp-block-group,
main {
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

/* Header should also respect the container */
.wp-block-template-part[data-area="header"] .header-content-container {
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

/* Ensure header content has proper spacing */
.wp-block-template-part[data-area="header"] .alignwide > .wp-block-group {
	width: 100%;
	max-width: 100%;
}

/* Header navigation and buttons container */
.wp-block-template-part[data-area="header"] .alignwide .wp-block-group:last-child {
	display: flex;
	align-items: center;
	gap: 1rem;
}

/* Theme toggle buttons container spacing */
.wp-block-template-part[data-area="header"] .theme-toggle-buttons {
	margin-right: 0;
	padding-right: 0;
}

/* Ensure header right side has proper spacing */
.wp-block-template-part[data-area="header"] .alignwide > .wp-block-group:last-child {
	padding-right: 0;
	margin-right: 0;
}

/* Responsive header padding */
@media (max-width: 768px) {
	.wp-block-template-part[data-area="header"] .wp-block-group.alignwide,
	.wp-block-template-part[data-area="header"] .alignwide {
		padding-left: 1rem;
		padding-right: 1rem;
	}
}

/* Footer should also respect the container */
.wp-block-template-part[data-area="footer"] .wp-block-group.alignwide,
.wp-block-template-part[data-area="footer"] .alignwide {
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

/* Responsive padding adjustments */
@media (max-width: 768px) {
	.wp-site-blocks > *:not(.alignfull),
	.wp-block-group:not(.alignfull):not(.alignwide):not([class*="is-layout-flex"]):not([class*="is-layout-grid"]),
	.wp-block-post-content:not(.alignfull):not(.alignwide),
	main,
	.section-container,
	.header-content-container {
		padding-left: 1rem;
		padding-right: 1rem;
	}
	
	.alignfull > .wp-block-group:not(.alignfull):not(.alignwide),
	.alignfull .wp-block-group__inner-container > .wp-block-group:not(.alignfull):not(.alignwide),
	.alignfull .wp-block-columns:not(.alignfull):not(.alignwide),
	.alignfull .wp-block-group[class*="is-layout-constrained"]:not(.alignfull):not(.alignwide) {
		padding-left: 1rem;
		padding-right: 1rem;
	}
}

/* Smooth transitions for theme switching */
* {
	transition-property: background-color, border-color, color, fill, stroke;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	transition-duration: 200ms;
}

/* Header styles */
.wp-block-template-part[data-area="header"] {
	position: sticky;
	top: 0;
	z-index: 1000;
}

.wp-block-template-part[data-area="header"] .wp-block-group.alignfull.has-surface-background-color {
	background-color: var(--surface) !important;
	border-bottom: 1px solid var(--border);
	border-radius: 0 0 1rem 1rem;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

/* Dark mode header shadow */
[data-theme="dark"] .wp-block-template-part[data-area="header"] .wp-block-group.alignfull.has-surface-background-color {
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
}

/* Ensure header background changes in dark mode */
[data-theme="dark"] .wp-block-group.has-surface-background-color,
[data-theme="dark"] .wp-block-template-part[data-area="header"] .wp-block-group.alignfull {
	background-color: var(--surface) !important;
}

/* Light mode header background */
:root .wp-block-group.has-surface-background-color,
[data-theme="light"] .wp-block-group.has-surface-background-color,
[data-theme="light"] .wp-block-template-part[data-area="header"] .wp-block-group.alignfull {
	background-color: var(--surface) !important;
}

/* Header content container - max-width 1400px and centered */
.header-content-container {
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

/* Header flex container spacing */
.header-container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	gap: 2rem;
}

/* Header sections */
.header-menu {
	flex: 1;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	max-width: 100%;
}

/* Navigation within header container */
.header-menu .wp-block-navigation {
	width: 100%;
	max-width: 100%;
}

.header-menu .wp-block-navigation__responsive-container {
	max-width: 100%;
}

.header-logo {
	flex: 0 0 auto;
	display: flex;
	justify-content: center;
	align-items: center;
}

.header-social {
	flex: 1;
	display: flex !important;
	justify-content: flex-end;
	align-items: center;
	gap: 1rem;
	visibility: visible !important;
	opacity: 1 !important;
}

/* Social links styles */
.social-links {
	display: flex !important;
	gap: 0.5rem;
	align-items: center;
	visibility: visible !important;
	opacity: 1 !important;
}
.social-link {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 25px;
	height: 25px;
	padding: 0;
	color: var(--text-primary) !important;
	transition: all 0.2s ease;
	border-radius: 0.375rem;
	text-decoration: none;
	opacity: 1;
	visibility: visible;
}

.social-link svg * {
	fill: var(--text-primary) !important;
	stroke: var(--text-primary) !important;
}

.social-link:hover {
	color: var(--accent);
	transform: translateY(-2px);
}

.social-link:focus {
	outline: 2px solid var(--focus-ring);
	outline-offset: 2px;
}

.social-link svg {
	width: 25px !important;
	height: 25px !important;
	display: block !important;
	flex-shrink: 0;
	color: var(--text-primary) !important;
	fill: var(--text-primary) !important;
	stroke: var(--text-primary) !important;
	visibility: visible !important;
	opacity: 1 !important;
}

/* Ensure Tailwind classes work if available, but have fallback */
.social-link svg.w-5,
.social-link .w-5 {
	width: 1.25rem !important;
	height: 1.25rem !important;
}

/* Responsive header */
@media (max-width: 768px) {
	.header-container {
		flex-wrap: wrap;
		gap: 1rem;
	}
	
	.header-menu {
		order: 2;
		flex: 1 1 100%;
		justify-content: center;
	}
	
	.header-logo {
		order: 1;
		flex: 0 0 auto;
	}
	
	.header-social {
		order: 3;
		flex: 1 1 100%;
		justify-content: center;
	}
	
	.social-links {
		gap: 0.5rem;
	}
}

/* Navigation styles */
.wp-block-navigation a {
	color: var(--text-primary) !important;
	transition: color 0.2s ease;
	font-weight: 500;
}

.wp-block-navigation a:hover {
	color: var(--link) !important;
}

.wp-block-navigation a:focus {
	outline: 2px solid var(--focus-ring);
	outline-offset: 2px;
}

.wp-block-navigation a:visited {
	color: var(--text-primary) !important;
}

/* Ensure navigation items are visible in light mode */
.header-menu .wp-block-navigation a,
.header-menu .wp-block-navigation__responsive-container-content a {
	color: var(--text-primary) !important;
}

/* Ensure navigation respects container */
.header-container .wp-block-navigation {
	max-width: 100%;
}

.header-container .wp-block-navigation__responsive-container-content {
	max-width: 100%;
}

/* Site logo */
.wp-block-site-logo {
	display: flex;
	align-items: center;
}

.wp-block-site-logo a {
	display: flex;
	align-items: center;
}

/* Theme toggle buttons */
.theme-toggle-buttons {
	display: flex;
	gap: 0;
	align-items: center;
}

.theme-toggle-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	background: transparent;
	border: none;
	border-radius: 0;
	color: #454545;
	cursor: pointer;
	transition: all 0.2s ease;
}

.theme-toggle-btn:hover {
	background-color: var(--bg);
	color: var(--accent);
	opacity: 0.8;
}

.theme-toggle-btn.active {
	color: var(--accent);
	opacity: 1;
}

.theme-toggle-btn:focus {
	outline: 2px solid var(--focus-ring);
	outline-offset: 2px;
}

.theme-toggle-btn svg {
	width: 20px;
	height: 20px;
	color: inherit;
	fill: currentColor;
	stroke: currentColor;
}

/* Theme toggle colors - Light mode */
:root .theme-toggle-btn,
[data-theme="light"] .theme-toggle-btn {
	color: #454545;
}

:root .theme-toggle-btn svg,
[data-theme="light"] .theme-toggle-btn svg {
	color: #454545;
	fill: #454545;
	stroke: #454545;
}

/* Theme toggle colors - Dark mode */
[data-theme="dark"] .theme-toggle-btn {
	color: #FFFFFF;
}

[data-theme="dark"] .theme-toggle-btn svg {
	color: #FFFFFF;
	fill: #FFFFFF;
	stroke: #FFFFFF;
}

/* Active theme button */
[data-theme="light"] .theme-toggle-light,
[data-theme="dark"] .theme-toggle-dark,
.theme-toggle-btn.active {
	opacity: 1;
}

/* Inactive theme button */
[data-theme="light"] .theme-toggle-dark,
[data-theme="dark"] .theme-toggle-light,
.theme-toggle-btn:not(.active) {
	opacity: 0.6;
}

[data-theme="light"] .theme-toggle-dark:hover,
[data-theme="dark"] .theme-toggle-light:hover,
.theme-toggle-btn:not(.active):hover {
	opacity: 1;
}

/* Links */
a {
	color: var(--link);
	text-decoration: none;
	transition: color 0.2s ease;
}

a:hover {
	color: var(--link-hover);
}

a:active {
	color: var(--link-active);
}

a:visited {
	color: var(--link-visited);
}

a:focus {
	outline: 2px solid var(--focus-ring);
	outline-offset: 2px;
}
