/**
 * Theme Custom Styles
 * Additional styles for Configurable Block Theme
 */

/* Responsive Typography */
@media (max-width: 768px) {
	:root {
		--wp--preset--font-size--4xl: 2rem;
		--wp--preset--font-size--5xl: 2.5rem;
		--wp--preset--font-size--6xl: 3rem;
	}
}

/* Container Widths */
.wp-block-group.alignwide {
	max-width: var(--cbt-container-width, 1200px);
	margin-left: auto;
	margin-right: auto;
}

.wp-block-group.alignfull {
	width: 100%;
	max-width: 100%;
}

/* Responsive Images */
img {
	max-width: 100%;
	height: auto;
	display: block;
}

.wp-block-image img {
	border-radius: 8px;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wp-block-image:hover img {
	transform: scale(1.02);
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

.wp-block-cover img {
	object-fit: cover;
}

/* Button Styles */
.wp-block-button__link {
	transition: all 0.3s ease;
}

.wp-block-button__link:hover {
	opacity: 0.9;
	transform: translateY(-2px);
}

/* Navigation Styles */
.wp-block-navigation {
	font-weight: 500;
}

.wp-block-navigation a {
	text-decoration: none;
	transition: color 0.3s ease;
}

.wp-block-navigation a:hover {
	color: var(--cbt-accent, var(--wp--preset--color--accent));
}

/* Card Styles */
.wp-block-group[style*="border-radius"] {
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wp-block-group[style*="border-radius"]:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

/* Portfolio Grid */
.wp-block-query[class*="grid"] {
	display: grid;
	gap: var(--wp--preset--spacing--lg, 1.5rem);
}

.wp-block-query[class*="columnCount-3"] {
	grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 1024px) {
	.wp-block-query[class*="columnCount-3"] {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.wp-block-query[class*="columnCount-3"] {
		grid-template-columns: 1fr;
	}
}

/* Responsive Columns */
@media (max-width: 768px) {
	.wp-block-columns {
		flex-direction: column;
	}

	.wp-block-column {
		flex-basis: 100% !important;
	}
}

/* Spacing Utilities */
.wp-block-group[style*="padding"] {
	box-sizing: border-box;
}

/* Accessibility Improvements */
.wp-block-button__link:focus,
.wp-block-navigation a:focus {
	outline: 2px solid var(--cbt-accent, var(--wp--preset--color--accent));
	outline-offset: 2px;
}

/* Skip to Content Link */
.skip-link {
	position: absolute;
	top: -40px;
	left: 0;
	background: var(--cbt-primary, var(--wp--preset--color--primary));
	color: var(--cbt-background, var(--wp--preset--color--background));
	padding: 8px 16px;
	text-decoration: none;
	z-index: 9999;
}

.skip-link:focus {
	top: 0;
}

/* Print Styles */
@media print {
	.wp-block-navigation,
	.wp-block-template-part[class*="footer"],
	.wp-block-button {
		display: none;
	}
}

/* Smooth Scrolling */
html {
	scroll-behavior: smooth;
}

/* Focus Visible */
*:focus-visible {
	outline: 2px solid var(--cbt-accent, var(--wp--preset--color--accent));
	outline-offset: 2px;
}

/* Loading States */
.wp-block-image img[loading="lazy"] {
	opacity: 0;
	transition: opacity 0.3s ease;
}

.wp-block-image img[loading="lazy"].loaded {
	opacity: 1;
}

/* Form Styles */
input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
	width: 100%;
	padding: var(--wp--preset--spacing--sm, 0.75rem);
	border: 1px solid var(--cbt-border, var(--wp--preset--color--border));
	border-radius: 4px;
	font-family: inherit;
	font-size: inherit;
	transition: border-color 0.3s ease;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
textarea:focus {
	outline: none;
	border-color: var(--cbt-primary, var(--wp--preset--color--primary));
}

/* Sidebar Styles */
.wp-block-template-part[class*="sidebar"] {
	background: var(--cbt-background, var(--wp--preset--color--background));
	border-left: 1px solid var(--cbt-border, var(--wp--preset--color--border));
	padding-left: var(--wp--preset--spacing--lg, 1.5rem);
}

@media (max-width: 768px) {
	.wp-block-template-part[class*="sidebar"] {
		border-left: none;
		border-top: 1px solid var(--cbt-border, var(--wp--preset--color--border));
		padding-left: 0;
		padding-top: var(--wp--preset--spacing--lg, 1.5rem);
		margin-top: var(--wp--preset--spacing--xl, 2rem);
	}
}

