/**
 * Frontend Styles for Semantic Post Recommender
 *
 * @package FourClicks\SemanticRecommender
 * 
 * 
 */

/* Recommendation Paragraph - HomeArtGallery Theme Style */
.semantic-recommendation {
	margin: var(--space-2xl, 3rem) 0;
	padding: var(--space-xl, 2rem);
	background: var(--color-primary-pale, #e8f5e1);
	border-left: 4px solid var(--color-primary, #2d5016);
	border-radius: var(--radius-md, 8px);
	font-family: var(--font-family-body, 'Inter', sans-serif);
	font-size: var(--font-size-base, 1rem);
	line-height: var(--line-height-normal, 1.6);
	box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.08));
	transition: all var(--transition-base, 250ms ease);
}

.semantic-recommendation:hover {
	box-shadow: var(--shadow-md, 0 2px 8px rgba(0, 0, 0, 0.08));
	transform: translateY(-2px);
}

.semantic-recommendation a.recommended-post {
	color: var(--color-primary, #2d5016);
	text-decoration: none;
	font-weight: 600;
	font-family: var(--font-family-heading, 'Playfair Display', serif);
	font-size: var(--font-size-lg, 1.125rem);
	transition: color var(--transition-fast, 150ms ease);
	display: inline-block;
	position: relative;
}

.semantic-recommendation a.recommended-post::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 0;
	height: 2px;
	background: var(--color-accent, #d4a574);
	transition: width var(--transition-base, 250ms ease);
}

.semantic-recommendation a.recommended-post:hover {
	color: var(--color-primary-light, #4a7c2c);
}

.semantic-recommendation a.recommended-post:hover::after {
	width: 100%;
}

/* Alternative Style - Minimal (elegancki, minimalistyczny) */
.semantic-recommendation.style-minimal {
	background: transparent;
	border-left: 3px solid var(--color-accent, #d4a574);
	padding: var(--space-lg, 1.5rem) 0 var(--space-lg, 1.5rem) var(--space-xl, 2rem);
	border-bottom: 1px solid var(--color-neutral-light, #f5f5f5);
	box-shadow: none;
}

.semantic-recommendation.style-minimal:hover {
	border-left-color: var(--color-primary, #2d5016);
	transform: none;
}

/* Alternative Style - Card (białe tło z cieniem) */
.semantic-recommendation.style-card {
	background: var(--color-white, #fff);
	border: 1px solid var(--color-neutral-light, #f5f5f5);
	border-radius: var(--radius-lg, 12px);
	box-shadow: var(--shadow-md, 0 2px 8px rgba(0, 0, 0, 0.08));
	padding: var(--space-xl, 2rem);
}

.semantic-recommendation.style-card:hover {
	box-shadow: var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, 0.12));
}

/* Alternative Style - Accent (tło akcentowe) */
.semantic-recommendation.style-accent {
	background: linear-gradient(135deg, var(--color-secondary-light, #c4b5a0) 0%, var(--color-accent, #d4a574) 100%);
	color: var(--color-neutral-dark, #2c2c2c);
	border: none;
	border-left: 4px solid var(--color-secondary, #8b7355);
}

.semantic-recommendation.style-accent a.recommended-post {
	color: var(--color-neutral-dark, #2c2c2c);
	text-shadow: 0 1px 2px rgba(255, 255, 255, 0.5);
}

.semantic-recommendation.style-accent a.recommended-post::after {
	background: var(--color-secondary, #8b7355);
}

.semantic-recommendation.style-accent a.recommended-post:hover {
	color: var(--color-primary, #2d5016);
}

/* Responsive - Dopasowanie do breakpointów motywu */
@media screen and (max-width: 1024px) {
	.semantic-recommendation {
		padding: var(--space-lg, 1.5rem);
		margin: var(--space-xl, 2rem) 0;
	}
	
	.semantic-recommendation a.recommended-post {
		font-size: var(--font-size-base, 1rem);
	}
}

@media screen and (max-width: 768px) {
	.semantic-recommendation {
		padding: var(--space-md, 1rem);
		margin: var(--space-lg, 1.5rem) 0;
		border-radius: var(--radius-sm, 4px);
	}
	
	.semantic-recommendation a.recommended-post {
		font-size: var(--font-size-sm, 0.875rem);
	}
}

/* Dark Mode Support - Dostosowane do motywu */
@media (prefers-color-scheme: dark) {
	.semantic-recommendation {
		background: rgba(45, 80, 22, 0.1);
		border-left-color: var(--color-primary-light, #4a7c2c);
		color: var(--color-neutral-light, #f5f5f5);
	}

	.semantic-recommendation a.recommended-post {
		color: var(--color-primary-light, #4a7c2c);
	}
	
	.semantic-recommendation a.recommended-post::after {
		background: var(--color-accent, #d4a574);
	}

	.semantic-recommendation a.recommended-post:hover {
		color: var(--color-accent, #d4a574);
	}

	.semantic-recommendation.style-card {
		background: rgba(44, 44, 44, 0.5);
		border-color: rgba(107, 107, 107, 0.3);
		box-shadow: var(--shadow-md, 0 2px 8px rgba(0, 0, 0, 0.3));
	}
	
	.semantic-recommendation.style-minimal {
		border-bottom-color: rgba(107, 107, 107, 0.3);
	}
}

/* Animation - Delikatne wejście */
.semantic-recommendation {
	animation: fadeInUp var(--transition-slow, 400ms ease) forwards;
	opacity: 0;
	color: var(--color-primary, #2d5016);
}

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

/* Opcjonalna ikona przed tekstem rekomendacji */
.semantic-recommendation::before {
	content: '→';
	color: var(--color-primary, #d4a574);
	font-weight: bold;
	margin-right: var(--space-sm, 0.5rem);
	font-size: var(--font-size-xl, 1.25rem);
	vertical-align: middle;
	display: inline-block;
	transition: transform var(--transition-fast, 150ms ease);
}

.semantic-recommendation:hover::before {
	transform: translateX(4px);
}

/* Focus states dla a11y - zgodne z motywem */
.semantic-recommendation a.recommended-post:focus {
	outline: 2px solid var(--color-primary, #2d5016);
	outline-offset: 4px;
	border-radius: var(--radius-sm, 4px);
}

.semantic-recommendation a.recommended-post:focus:not(:focus-visible) {
	outline: none;
}

/* Print styles */
@media print {
	.semantic-recommendation {
		background: transparent;
		border-left-color: #000;
		box-shadow: none;
		page-break-inside: avoid;
	}
	
	.semantic-recommendation a.recommended-post::after {
		display: none;
	}
	
	.recommended-posts-container {
		page-break-inside: avoid;
	}
}

/* ============================================
   Recommended Posts List Style
   Display mode: list (after content)
   ============================================ */

.recommended-posts-container {
	margin: var(--space-3xl, 4rem) 0;
	padding: var(--space-2xl, 3rem);
	background: var(--color-primary-pale, #e8f5e1);
	border-radius: var(--radius-lg, 12px);
	border-left: 4px solid var(--color-primary, #2d5016);
	box-shadow: var(--shadow-md, 0 2px 8px rgba(0, 0, 0, 0.08));
	animation: fadeInUp var(--transition-slow, 400ms ease) forwards;
}

.recommended-posts-title {
	font-family: var(--font-family-heading, 'Playfair Display', serif);
	font-size: var(--font-size-2xl, 1.5rem);
	font-weight: 700;
	color: var(--color-primary, #2d5016);
	margin: 0 0 var(--space-xl, 2rem) 0;
	padding-bottom: var(--space-md, 1rem);
	border-bottom: 2px solid var(--color-accent, #d4a574);
}

.recommended-posts {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--space-lg, 1.5rem);
}

.recommended-posts li {
	margin: 0;
	padding: 0;
	transition: transform var(--transition-base, 250ms ease);
}

.recommended-posts li:hover {
	transform: translateX(8px);
}

.recommended-posts a {
	display: block;
	text-decoration: none;
	color: inherit;
	padding: var(--space-md, 1rem) 0;
	border-left: 3px solid transparent;
	padding-left: var(--space-lg, 1.5rem);
	transition: all var(--transition-base, 250ms ease);
}

.recommended-posts a:hover {
	border-left-color: var(--color-accent, #d4a574);
	background: rgba(255, 255, 255, 0.5);
	border-radius: var(--radius-sm, 4px);
}

.recommended-posts a h4 {
	font-family: var(--font-family-heading, 'Playfair Display', serif);
	font-size: var(--font-size-lg, 1.125rem);
	font-weight: 600;
	color: var(--color-primary, #2d5016);
	margin: 0;
	line-height: var(--line-height-tight, 1.4);
	transition: color var(--transition-fast, 150ms ease);
	position: relative;
}

.recommended-posts a:hover h4 {
	color: var(--color-primary-light, #4a7c2c);
}

.recommended-posts a h4::before {
	content: '→';
	color: var(--color-accent, #d4a574);
	margin-right: var(--space-sm, 0.5rem);
	font-weight: bold;
	transition: transform var(--transition-fast, 150ms ease);
	display: inline-block;
}

.recommended-posts a:hover h4::before {
	transform: translateX(4px);
}

/* Focus states dla a11y */
.recommended-posts a:focus {
	outline: 2px solid var(--color-primary, #2d5016);
	outline-offset: 4px;
	border-radius: var(--radius-sm, 4px);
}

.recommended-posts a:focus:not(:focus-visible) {
	outline: none;
}

/* Responsive adjustments */
@media screen and (max-width: 1024px) {
	.recommended-posts-container {
		padding: var(--space-xl, 2rem);
		margin: var(--space-2xl, 3rem) 0;
	}
	
	.recommended-posts-title {
		font-size: var(--font-size-xl, 1.25rem);
	}
	
	.recommended-posts a h4 {
		font-size: var(--font-size-base, 1rem);
	}
}

@media screen and (max-width: 768px) {
	.recommended-posts-container {
		padding: var(--space-lg, 1.5rem);
		margin: var(--space-xl, 2rem) 0;
		border-radius: var(--radius-md, 8px);
	}
	
	.recommended-posts-title {
		font-size: var(--font-size-lg, 1.125rem);
		margin-bottom: var(--space-lg, 1.5rem);
		padding-bottom: var(--space-sm, 0.5rem);
	}
	
	.recommended-posts {
		gap: var(--space-md, 1rem);
	}
	
	.recommended-posts a {
		padding-left: var(--space-md, 1rem);
	}
	
	.recommended-posts a h4 {
		font-size: var(--font-size-sm, 0.875rem);
	}
}

/* Dark Mode Support */
@media (prefers-color-scheme: dark) {
	.recommended-posts-container {
		background: rgba(45, 80, 22, 0.15);
		border-left-color: var(--color-primary-light, #4a7c2c);
	}
	
	.recommended-posts-title {
		color: var(--color-primary-light, #4a7c2c);
		border-bottom-color: var(--color-accent, #d4a574);
	}
	
	.recommended-posts a h4 {
		color: var(--color-neutral-light, #f5f5f5);
	}
	
	.recommended-posts a:hover {
		background: rgba(255, 255, 255, 0.05);
	}
	
	.recommended-posts a:hover h4 {
		color: var(--color-accent, #d4a574);
	}
}

/* ============================================
   5 CUSTOM RECOMMENDATION STYLES
   Each style can be customized with user colors
   ============================================ */

/* CSS Variables for custom colors - będą nadpisywane inline styles */
.semantic-recommendation {
	--custom-bg: var(--color-primary-pale, #e8f5e1);
	--custom-text: var(--color-primary, #2d5016);
	--custom-link: var(--color-primary, #2d5016);
	--custom-accent: var(--color-accent, #d4a574);
}

/* ============================================
   STYLE 1: PLAIN TEXT
   Prosty tekst bez tła i ramek
   ============================================ */
.semantic-recommendation.style-plain {
	background: transparent;
	border: none;
	box-shadow: none;
	padding: var(--space-md, 1rem) 0;
	margin: var(--space-lg, 1.5rem) 0;
	color: var(--custom-text);
}

.semantic-recommendation.style-plain::before {
	display: none;
}

.semantic-recommendation.style-plain a.recommended-post {
	color: var(--custom-link);
	font-size: var(--font-size-base, 1rem);
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: transparent;
	transition: text-decoration-color var(--transition-base, 250ms ease);
}

.semantic-recommendation.style-plain a.recommended-post::after {
	display: none;
}

.semantic-recommendation.style-plain a.recommended-post:hover {
	text-decoration-color: var(--custom-accent);
}

.semantic-recommendation.style-plain:hover {
	transform: none;
	box-shadow: none;
}

/* ============================================
   STYLE 2: MINIMAL
   Minimalistyczny styl z cienką ramką
   ============================================ */
.semantic-recommendation.style-minimal {
	background: transparent;
	border-left: 2px solid var(--custom-accent);
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
	padding: var(--space-md, 1rem) 0 var(--space-md, 1rem) var(--space-lg, 1.5rem);
	box-shadow: none;
	color: var(--custom-text);
}

.semantic-recommendation.style-minimal::before {
	color: var(--custom-accent);
	font-size: var(--font-size-lg, 1.125rem);
}

.semantic-recommendation.style-minimal a.recommended-post {
	color: var(--custom-link);
	font-weight: 500;
}

.semantic-recommendation.style-minimal a.recommended-post::after {
	background: var(--custom-accent);
}

.semantic-recommendation.style-minimal:hover {
	transform: none;
	border-left-width: 3px;
}

/* ============================================
   STYLE 3: BOXED (DEFAULT)
   Kolorowe tło z ramką i paddingiem
   ============================================ */
.semantic-recommendation.style-boxed {
	background: var(--custom-bg);
	border-left: 4px solid var(--custom-accent);
	color: var(--custom-text);
}

.semantic-recommendation.style-boxed::before {
	color: var(--custom-accent);
}

.semantic-recommendation.style-boxed a.recommended-post {
	color: var(--custom-link);
}

.semantic-recommendation.style-boxed a.recommended-post::after {
	background: var(--custom-accent);
}

/* ============================================
   STYLE 4: CARD
   Biała karta z cieniem i hover efektem
   ============================================ */
.semantic-recommendation.style-card {
	background: var(--color-white, #fff);
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-top: 3px solid var(--custom-accent);
	border-radius: var(--radius-lg, 12px);
	box-shadow: var(--shadow-md, 0 2px 8px rgba(0, 0, 0, 0.08));
	padding: var(--space-xl, 2rem);
	color: var(--custom-text);
}

.semantic-recommendation.style-card::before {
	color: var(--custom-accent);
	font-size: var(--font-size-2xl, 1.5rem);
}

.semantic-recommendation.style-card a.recommended-post {
	color: var(--custom-link);
	font-size: var(--font-size-xl, 1.25rem);
}

.semantic-recommendation.style-card a.recommended-post::after {
	background: var(--custom-accent);
	height: 3px;
}

.semantic-recommendation.style-card:hover {
	box-shadow: var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, 0.12));
	transform: translateY(-4px);
	border-top-width: 4px;
}

/* ============================================
   STYLE 5: FEATURED GRADIENT
   Gradient background z dużym obrazem/ikoną
   ============================================ */
.semantic-recommendation.style-featured-gradient {
	background: linear-gradient(135deg, var(--custom-bg) 0%, var(--custom-accent) 100%);
	border: none;
	border-radius: var(--radius-xl, 16px);
	box-shadow: var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, 0.15));
	padding: var(--space-2xl, 3rem);
	position: relative;
	overflow: hidden;
	color: var(--custom-text);
}

.semantic-recommendation.style-featured-gradient::before {
	content: '✦';
	position: absolute;
	top: var(--space-lg, 1.5rem);
	left: var(--space-lg, 1.5rem);
	font-size: 3rem;
	color: rgba(255, 255, 255, 0.3);
	font-weight: bold;
	line-height: 1;
	margin: 0;
	transform: none;
}

.semantic-recommendation.style-featured-gradient::after {
	content: '';
	position: absolute;
	bottom: -50px;
	right: -50px;
	width: 200px;
	height: 200px;
	background: radial-gradient(circle, rgba(255, 255, 255, 0.2) 0%, transparent 70%);
	border-radius: 50%;
	pointer-events: none;
}

.semantic-recommendation.style-featured-gradient a.recommended-post {
	color: var(--custom-link);
	font-size: var(--font-size-2xl, 1.5rem);
	font-weight: 700;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
	position: relative;
	z-index: 1;
}

.semantic-recommendation.style-featured-gradient a.recommended-post::after {
	background: var(--custom-link);
	height: 3px;
}

.semantic-recommendation.style-featured-gradient:hover {
	transform: scale(1.02);
	box-shadow: var(--shadow-xl, 0 12px 32px rgba(0, 0, 0, 0.2));
}

/* Responsive dla Featured Gradient */
@media screen and (max-width: 768px) {
	.semantic-recommendation.style-featured-gradient {
		padding: var(--space-xl, 2rem);
	}
	
	.semantic-recommendation.style-featured-gradient::before {
		font-size: 2rem;
		top: var(--space-md, 1rem);
		left: var(--space-md, 1rem);
	}
	
	.semantic-recommendation.style-featured-gradient a.recommended-post {
		font-size: var(--font-size-xl, 1.25rem);
	}
}

/* Dark Mode Support dla nowych stylów */
@media (prefers-color-scheme: dark) {
	.semantic-recommendation.style-plain a.recommended-post {
		color: var(--custom-link);
	}
	
	.semantic-recommendation.style-card {
		background: rgba(44, 44, 44, 0.8);
		border-color: var(--custom-accent);
	}
	
	.semantic-recommendation.style-featured-gradient {
		background: linear-gradient(135deg, 
			rgba(45, 80, 22, 0.3) 0%, 
			rgba(212, 165, 116, 0.3) 100%
		);
	}
}

/* ============================================
   LIST MODE STYLES
   Apply custom colors to list mode
   ============================================ */
.recommended-posts-container {
	--custom-bg: var(--color-primary-pale, #e8f5e1);
	--custom-text: var(--color-primary, #2d5016);
	--custom-link: var(--color-primary, #2d5016);
	--custom-accent: var(--color-accent, #d4a574);
}

/* Apply colors to list mode */
.recommended-posts-container.style-plain {
	background: transparent;
	border: none;
	box-shadow: none;
	padding: var(--space-lg, 1.5rem) 0;
}

.recommended-posts-container.style-plain .recommended-posts-title {
	border-bottom: none;
	color: var(--custom-text);
}

.recommended-posts-container.style-minimal {
	background: transparent;
	border-left: 3px solid var(--custom-accent);
	padding-left: var(--space-xl, 2rem);
	box-shadow: none;
}

.recommended-posts-container.style-boxed {
	background: var(--custom-bg);
	border-left-color: var(--custom-accent);
}

.recommended-posts-container.style-card {
	background: var(--color-white, #fff);
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-top: 4px solid var(--custom-accent);
}

.recommended-posts-container.style-featured-gradient {
	background: linear-gradient(135deg, var(--custom-bg) 0%, var(--custom-accent) 100%);
	border: none;
	border-radius: var(--radius-xl, 16px);
	box-shadow: var(--shadow-xl, 0 12px 32px rgba(0, 0, 0, 0.15));
}

/* Apply link colors */
.recommended-posts-container .recommended-posts-title {
	color: var(--custom-text);
	border-bottom-color: var(--custom-accent);
}

.recommended-posts-container .recommended-posts a h4 {
	color: var(--custom-link);
}

.recommended-posts-container .recommended-posts a h4::before {
	color: var(--custom-accent);
}

.recommended-posts-container .recommended-posts a:hover {
	border-left-color: var(--custom-accent);
}
