:root {
	--primary-color: #212529;
	--secondary-color: #495057;
	--accent-color: #343a40;
	--success-color: #28a745;
	--border-radius: 12px;
	--transition-speed: 0.3s;
	--box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
	--box-shadow-hover: 0 1rem 2rem rgba(0, 0, 0, 0.15);
}


.photo-main-image {
	position: relative;
	cursor: zoom-in;
	transition: transform var(--transition-speed) ease;
	border-radius: var(--border-radius);
	overflow: hidden;
}

.photo-main-image:hover {
	transform: scale(1.01);
	box-shadow: var(--box-shadow-hover);
}

.photo-main-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--border-radius);
}


.image-zoom-overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.95);
	z-index: 10000;
	cursor: zoom-out;
	animation: fadeIn 0.3s ease;
}

.image-zoom-overlay.active {
	display: flex;
	align-items: center;
	justify-content: center;
}

.image-zoom-overlay img {
	max-width: 95%;
	max-height: 95vh;
	object-fit: contain;
}

@keyframes fadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}


.card {
	border-radius: var(--border-radius);
	border: none;
	box-shadow: var(--box-shadow);
	transition: box-shadow var(--transition-speed) ease;
}

.card:hover {
	box-shadow: var(--box-shadow-hover);
}


h1.photo-title {
	font-size: 1.75rem;
	font-weight: 600;
	line-height: 1.4;
	color: #212529;
	margin-bottom: 1rem;
}

h2.photo-caption {
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.6;
	color: #495057;
	margin-bottom: 1.5rem;
}


.metadata-table {
	font-size: 0.95rem;
}

.metadata-table th {
	width: 30%;
	font-weight: 600;
	color: #495057;
}

.metadata-table td {
	color: #212529;
}


.keyword-badge {
	display: inline-block;
	padding: 0.5rem 1rem;
	margin: 0.25rem;
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color: white;
	border-radius: 50px;
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
	transition: all var(--transition-speed) ease;
	cursor: pointer;
}

.keyword-badge:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
	color: white;
}


.licensing-card {
	position: sticky;
	top: 100px;
}

.license-option {
	padding: 1rem;
	border-radius: 8px;
	border: 2px solid #e9ecef;
	transition: all var(--transition-speed) ease;
	cursor: pointer;
	margin-bottom: 1rem;
}

.license-option:hover {
	border-color: var(--primary-color);
	background: #f8f9fa;
}

.license-option input[type="radio"]:checked + label {
	color: var(--primary-color);
}

.form-check-input:checked {
	background-color: var(--primary-color);
	border-color: var(--primary-color);
}

.btn-add-to-cart {
	padding: 1rem;
	font-size: 1.125rem;
	font-weight: 600;
	border-radius: 8px;
	transition: all var(--transition-speed) ease;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.btn-add-to-cart:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}


.price-display {
	font-size: 2rem;
	font-weight: 700;
	color: var(--primary-color);
	margin: 1.5rem 0;
}


.breadcrumb {
	background: transparent;
	padding: 0.75rem 0;
	margin-bottom: 1.5rem;
}

.breadcrumb-item + .breadcrumb-item::before {
	content: "›";
	font-size: 1.25rem;
}

.breadcrumb-item a {
	color: var(--secondary-color);
	text-decoration: none;
	transition: color var(--transition-speed) ease;
}

.breadcrumb-item a:hover {
	color: var(--primary-color);
}


.social-share {
	display: flex;
	gap: 0.75rem;
	margin: 1.5rem 0;
}

.social-share-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #f8f9fa;
	color: #495057;
	text-decoration: none;
	transition: all var(--transition-speed) ease;
	border: 2px solid #e9ecef;
}

.social-share-btn:hover {
	transform: translateY(-3px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	color: white;
}

.social-share-btn.facebook:hover {
	background: #1877f2;
	border-color: #1877f2;
}

.social-share-btn.twitter:hover {
	background: #1da1f2;
	border-color: #1da1f2;
}

.social-share-btn.pinterest:hover {
	background: #e60023;
	border-color: #e60023;
}

.social-share-btn.email:hover {
	background: #6c757d;
	border-color: #6c757d;
}


.similar-image-card {
	position: relative;
	overflow: hidden;
	border-radius: 8px;
	transition: all var(--transition-speed) ease;
	aspect-ratio: 3/2;
}

.similar-image-card:hover {
	transform: translateY(-5px);
	box-shadow: var(--box-shadow-hover);
}

.similar-image-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--transition-speed) ease;
}

.similar-image-card:hover img {
	transform: scale(1.1);
}


.btn-download {
	background: linear-gradient(135deg, var(--success-color) 0%, #20c997 100%);
	border: none;
	color: white;
	padding: 0.75rem 1.5rem;
	border-radius: 8px;
	font-weight: 600;
	transition: all var(--transition-speed) ease;
}

.btn-download:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(40, 167, 69, 0.3);
	color: white;
}


.info-banner {
	background: linear-gradient(135deg, #121212 0%, #7e7d7d 100%);
	color: white;
	padding: 1.5rem;
	border-radius: var(--border-radius);
	margin-bottom: 2rem;
}

.info-banner h4 {
	margin-bottom: 0.5rem;
}


@media (max-width: 992px) {
	.licensing-card {
		position: static;
		margin-top: 2rem;
	}

	h1.photo-title {
		font-size: 1.5rem;
	}

	.price-display {
		font-size: 1.5rem;
	}
}


@media print {
	.licensing-card,
	.social-share,
	.similar-images,
	.btn {
		display: none !important;
	}
}


*:focus-visible {
	outline: 3px solid var(--primary-color);
	outline-offset: 2px;
}


.skeleton {
	background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
	background-size: 200% 100%;
	animation: loading 1.5s infinite;
}

@keyframes loading {
	0% { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}


.toast {
	min-width: 350px;
	backdrop-filter: blur(10px);
	box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.2);
	border-radius: var(--border-radius);
	animation: slideInRight 0.3s ease-out;
}

@keyframes slideInRight {
	from {
		transform: translateX(100%);
		opacity: 0;
	}
	to {
		transform: translateX(0);
		opacity: 1;
	}
}

.toast.hide {
	animation: slideOutRight 0.3s ease-in;
}

@keyframes slideOutRight {
	from {
		transform: translateX(0);
		opacity: 1;
	}
	to {
		transform: translateX(100%);
		opacity: 0;
	}
}

.toast-success {
	background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
	color: white;
}

.toast-error {
	background: linear-gradient(135deg, #dc3545 0%, #c82333 100%);
	color: white;
}

.toast-body {
	padding: 1rem 1.25rem;
	font-size: 0.95rem;
}

.toast-icon {
	font-size: 1.5rem;
	animation: scaleIn 0.3s ease-out;
}

@keyframes scaleIn {
	from {
		transform: scale(0);
		opacity: 0;
	}
	to {
		transform: scale(1);
		opacity: 1;
	}
}

.toast-title {
	font-size: 1rem;
	margin-bottom: 0.25rem;
}

.toast-message {
	opacity: 0.9;
	line-height: 1.4;
}

.btn-close-white {
	filter: brightness(0) invert(1);
	opacity: 0.8;
}

.btn-close-white:hover {
	opacity: 1;
}


#cart-count {
	transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
	display: inline-block;
}


@media (max-width: 576px) {
	.toast {
		min-width: 300px;
		max-width: 90vw;
	}

	.toast-body {
		padding: 0.75rem 1rem;
		font-size: 0.875rem;
	}

	.toast-icon {
		font-size: 1.25rem;
	}
}


.ajax-response {
	display: none !important;
}
