/*
Theme Name: Karisma Theme v5
Description: Modern dark cinematic WordPress block theme for Karisma Media & Entertainment.
Author: Arttu Jumppanen / AJ-Tech Lapua & Karisma Media
Version: 5.0
License: GPL-2.0-or-later
Text Domain: karismafilms-2025
© 2025 Karisma Media & Entertainment Ky
*/

/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@300;400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');

/* =====================================================
   HIDE WORDPRESS DEFAULT ELEMENTS - AGGRESSIVE
   ===================================================== */
.wp-block-search,
.wp-block-search__button,
.wp-block-search__input,
.wp-block-search__label,
.wp-block-search__inside-wrapper,
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close,
.wp-block-navigation__responsive-container,
.wp-block-navigation,
button.wp-block-search__button,
form.wp-block-search,
[class*="wp-block-search"],
[class*="search-form"],
.search-form,
#searchform,
.searchform,
input[type="search"],
button[aria-label="Etsi"],
button[aria-label="Search"],
*[class*="search"]:not(.kf-nav):not(.kf-header):not(a):not(p) {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	width: 0 !important;
	height: 0 !important;
	max-width: 0 !important;
	max-height: 0 !important;
	overflow: hidden !important;
	position: absolute !important;
	left: -99999px !important;
	pointer-events: none !important;
	clip: rect(0,0,0,0) !important;
}

/* =====================================================
   BASE
   ===================================================== */
*,
*::before,
*::after {
	border-radius: 0 !important;
	box-sizing: border-box;
}

:root {
	--kf-bg-dark: #0a1628;
	--kf-bg-medium: #0f2140;
	--kf-text: #ffffff;
	--kf-text-muted: #a8b8cc;
}

html {
	scroll-behavior: smooth;
}

body {
	background: var(--kf-bg-dark);
	color: var(--kf-text);
	font-family: 'Raleway', -apple-system, BlinkMacSystemFont, sans-serif;
	font-weight: 400;
	line-height: 1.7;
	margin: 0;
	padding: 0;
}

/* =====================================================
   TOISTUVA PATTERN TAUSTA - SELKEÄSTI NÄKYVÄ
   ===================================================== */

/* Pattern SVG - pienet pisteet diagonaalisesti */
:root {
	--kf-pattern-dots: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='2' cy='2' r='1' fill='%23ffffff' fill-opacity='0.06'/%3E%3C/svg%3E");
	--kf-pattern-grid: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 20h40M20 0v40' stroke='%23ffffff' stroke-opacity='0.04' stroke-width='0.5'/%3E%3C/svg%3E");
	--kf-pattern-cross: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 8v8M8 12h8' stroke='%23ffffff' stroke-opacity='0.05' stroke-width='1'/%3E%3C/svg%3E");
}

/* Palvelut-osio - pistekuvio */
#palvelut {
	position: relative !important;
	overflow: hidden !important;
}

#palvelut::before {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	background-image: 
		radial-gradient(ellipse at 0% 0%, rgba(100, 150, 255, 0.08) 0%, transparent 50%),
		radial-gradient(ellipse at 100% 100%, rgba(100, 150, 255, 0.06) 0%, transparent 50%),
		var(--kf-pattern-dots) !important;
	background-size: 100% 100%, 100% 100%, 20px 20px !important;
	pointer-events: none !important;
	z-index: 0 !important;
}

#palvelut > * {
	position: relative !important;
	z-index: 1 !important;
}

/* Showreel-osio - ruudukkokuvio */
#showreel {
	position: relative !important;
	overflow: hidden !important;
}

#showreel::before {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	background-image: 
		radial-gradient(ellipse at 50% 0%, rgba(150, 180, 255, 0.1) 0%, transparent 60%),
		var(--kf-pattern-grid) !important;
	background-size: 100% 100%, 40px 40px !important;
	pointer-events: none !important;
	z-index: 0 !important;
}

#showreel > * {
	position: relative !important;
	z-index: 1 !important;
}

/* Yhteystiedot-osio - ristikuvio */
#yhteystiedot {
	position: relative !important;
	overflow: hidden !important;
}

#yhteystiedot::before {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	background-image: 
		radial-gradient(ellipse at 100% 0%, rgba(100, 150, 255, 0.08) 0%, transparent 50%),
		radial-gradient(ellipse at 0% 100%, rgba(150, 180, 255, 0.06) 0%, transparent 50%),
		var(--kf-pattern-cross) !important;
	background-size: 100% 100%, 100% 100%, 24px 24px !important;
	pointer-events: none !important;
	z-index: 0 !important;
}

#yhteystiedot > * {
	position: relative !important;
	z-index: 1 !important;
}

/* Hero cover pattern */
.wp-block-cover.is-style-cinematic-overlay::after {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	background-image: 
		radial-gradient(ellipse at 50% 100%, rgba(150, 180, 255, 0.15) 0%, transparent 50%),
		var(--kf-pattern-dots) !important;
	background-size: 100% 100%, 20px 20px !important;
	pointer-events: none !important;
	z-index: 1 !important;
	opacity: 0.7 !important;
}

.wp-block-cover__inner-container {
	position: relative !important;
	z-index: 2 !important;
}

/* =====================================================
   TYPOGRAPHY
   ===================================================== */
h1, h2, h3, h4, h5, h6,
.wp-block-heading {
	font-family: 'Playfair Display', Georgia, serif;
	font-weight: 600;
	color: var(--kf-text);
	line-height: 1.2;
	margin: 0 0 1rem 0;
}

p {
	margin: 0 0 1rem 0;
	color: var(--kf-text-muted);
}

a {
	color: var(--kf-text);
	text-decoration: none;
	transition: opacity 0.3s ease;
}

a:hover {
	opacity: 0.8;
}

/* =====================================================
   HEADER & NAVIGATION - ULTRA SÄVÄYTTÄVÄ
   ===================================================== */
.kf-sticky-header {
	position: sticky;
	top: 0;
	z-index: 9999;
	background: linear-gradient(180deg, 
		rgba(10, 22, 40, 0.98) 0%,
		rgba(15, 30, 55, 0.95) 100%
	);
	backdrop-filter: blur(20px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	box-shadow: 
		0 4px 30px rgba(0, 0, 0, 0.3),
		0 0 60px rgba(100, 150, 255, 0.05);
	animation: headerAppear 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes headerAppear {
	0% {
		opacity: 0;
		transform: translateY(-100%);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Animoitu hohtava viiva - LIIKKUVA VALO */
.kf-sticky-header::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 2px;
	background: linear-gradient(90deg, 
		transparent 0%,
		rgba(100, 180, 255, 0.3) 25%,
		rgba(255, 255, 255, 0.9) 50%,
		rgba(100, 180, 255, 0.3) 75%,
		transparent 100%
	);
	background-size: 200% 100%;
	animation: lightBeam 3s ease-in-out infinite;
}

/* Toinen kerros - pulssi */
.kf-sticky-header::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 50%;
	transform: translateX(-50%);
	width: 200px;
	height: 30px;
	background: radial-gradient(ellipse at center bottom, 
		rgba(100, 180, 255, 0.2) 0%,
		transparent 70%
	);
	animation: glowPulse 2s ease-in-out infinite;
	pointer-events: none;
}

@keyframes lightBeam {
	0% {
		background-position: -200% 0;
	}
	100% {
		background-position: 200% 0;
	}
}

@keyframes glowPulse {
	0%, 100% {
		opacity: 0.5;
		width: 200px;
	}
	50% {
		opacity: 1;
		width: 300px;
	}
}

/* LOGO - Interaktiivinen & Säväyttävä */
.kf-logo {
	position: relative;
	transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
	cursor: pointer;
}

.kf-logo::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0;
	height: 0;
	background: radial-gradient(circle, rgba(100, 180, 255, 0.3) 0%, transparent 70%);
	transform: translate(-50%, -50%);
	transition: all 0.5s ease;
	pointer-events: none;
}

.kf-logo:hover::before {
	width: 150px;
	height: 150px;
}

.kf-logo::after {
	content: "";
	position: absolute;
	bottom: -6px;
	left: 0;
	width: 0;
	height: 2px;
	background: linear-gradient(90deg, 
		transparent, 
		rgba(100, 180, 255, 0.8), 
		#ffffff, 
		rgba(100, 180, 255, 0.8), 
		transparent
	);
	transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	box-shadow: 0 0 10px rgba(100, 180, 255, 0.5);
}

.kf-logo:hover::after {
	width: 100%;
}

.kf-logo:hover {
	text-shadow: 
		0 0 20px rgba(255, 255, 255, 0.6),
		0 0 40px rgba(100, 180, 255, 0.4);
	transform: scale(1.02);
	letter-spacing: 0.25em;
}

.kf-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 2rem;
	max-width: 1400px;
	margin: 0 auto;
}

.kf-logo {
	font-family: 'Raleway', sans-serif;
	font-weight: 600;
	font-size: 1rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--kf-text) !important;
	text-decoration: none !important;
}

/* Navigation - INTERAKTIIVINEN */
.kf-nav {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.kf-nav > a,
.kf-dropdown-toggle {
	color: var(--kf-text-muted);
	padding: 0.75rem 1.25rem;
	font-family: 'Raleway', sans-serif;
	font-weight: 500;
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	cursor: pointer;
	position: relative;
	overflow: hidden;
}

/* Hohtava alleviivaus navigaatio-linkeille */
.kf-nav > a::before,
.kf-dropdown-toggle::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, rgba(100, 180, 255, 0.8), #fff, rgba(100, 180, 255, 0.8), transparent);
	transform: translateX(-50%);
	transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	box-shadow: 0 0 8px rgba(100, 180, 255, 0.6);
}

.kf-nav > a:hover::before,
.kf-dropdown-toggle:hover::before {
	width: 80%;
}

/* Glow-efekti hoverissa */
.kf-nav > a::after,
.kf-dropdown-toggle::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0;
	height: 0;
	background: radial-gradient(circle, rgba(100, 180, 255, 0.15) 0%, transparent 70%);
	transform: translate(-50%, -50%);
	transition: all 0.4s ease;
	pointer-events: none;
}

.kf-nav > a:hover::after,
.kf-dropdown-toggle:hover::after {
	width: 100px;
	height: 100px;
}

.kf-nav > a:hover,
.kf-dropdown-toggle:hover {
	color: var(--kf-text);
	text-shadow: 0 0 15px rgba(255, 255, 255, 0.3);
}

/* Dropdown - MODERNI */
.kf-dropdown {
	position: relative;
}

.kf-dropdown-menu {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%) translateY(-15px);
	background: linear-gradient(180deg, rgba(15, 30, 55, 0.98) 0%, rgba(10, 22, 40, 0.98) 100%);
	border: 1px solid rgba(100, 180, 255, 0.15);
	min-width: 220px;
	padding: 0.75rem 0;
	opacity: 0;
	visibility: hidden;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	z-index: 10000;
	box-shadow: 
		0 20px 40px rgba(0, 0, 0, 0.4),
		0 0 30px rgba(100, 180, 255, 0.1);
	backdrop-filter: blur(10px);
}

/* Dropdown nuoli */
.kf-dropdown-menu::before {
	content: "";
	position: absolute;
	top: -6px;
	left: 50%;
	transform: translateX(-50%) rotate(45deg);
	width: 12px;
	height: 12px;
	background: rgba(15, 30, 55, 0.98);
	border-top: 1px solid rgba(100, 180, 255, 0.15);
	border-left: 1px solid rgba(100, 180, 255, 0.15);
}

.kf-dropdown:hover .kf-dropdown-menu {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

.kf-dropdown-menu a {
	display: block;
	padding: 0.875rem 1.5rem;
	color: var(--kf-text-muted);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-decoration: none;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	position: relative;
	overflow: hidden;
}

/* Dropdown linkkien hover - liukuva taustaefekti */
.kf-dropdown-menu a::before {
	content: "";
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(100, 180, 255, 0.1), transparent);
	transition: left 0.4s ease;
}

.kf-dropdown-menu a:hover::before {
	left: 100%;
}

.kf-dropdown-menu a:hover {
	background: rgba(100, 180, 255, 0.08);
	color: var(--kf-text);
	padding-left: 2rem;
	text-shadow: 0 0 10px rgba(100, 180, 255, 0.3);
}

/* =====================================================
   BUTTONS
   ===================================================== */
.wp-block-button__link,
.wp-element-button,
button,
input[type="submit"] {
	border-radius: 0 !important;
	font-family: 'Raleway', sans-serif !important;
	font-weight: 600 !important;
	font-size: 0.7rem !important;
	letter-spacing: 0.15em !important;
	text-transform: uppercase !important;
	padding: 1rem 2.5rem !important;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
	cursor: pointer !important;
	text-decoration: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	white-space: nowrap !important;
	text-align: center !important;
	line-height: 1 !important;
	position: relative !important;
	overflow: hidden !important;
}

/* Hover shine effect */
.wp-block-button__link::before,
.is-style-outline .wp-block-button__link::before {
	content: "";
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
	transition: left 0.6s ease;
}

.wp-block-button__link:hover::before,
.is-style-outline .wp-block-button__link:hover::before {
	left: 100%;
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: #ffffff !important;
	color: var(--kf-bg-dark) !important;
	border: 2px solid #ffffff !important;
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: transparent !important;
	color: #ffffff !important;
}

.is-style-outline .wp-block-button__link {
	background: transparent !important;
	color: var(--kf-text) !important;
	border: 2px solid rgba(255, 255, 255, 0.4) !important;
}

.is-style-outline .wp-block-button__link:hover {
	background: #ffffff !important;
	color: var(--kf-bg-dark) !important;
	border-color: #ffffff !important;
}

/* =====================================================
   SERVICE CARDS - PUHDAS HTML/CSS GRID
   ===================================================== */
.kf-service-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
	align-items: stretch;
	max-width: 1200px;
	margin: 0 auto;
}

.kf-service-card {
	background: linear-gradient(145deg, rgba(8, 18, 35, 0.95) 0%, rgba(12, 25, 50, 0.9) 100%);
	border: 1px solid rgba(255, 255, 255, 0.12);
	padding: 2.5rem 1.5rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	min-height: 280px;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	position: relative;
	overflow: hidden;
	box-shadow: 
		0 4px 20px rgba(0, 0, 0, 0.3),
		inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

/* Card top glow line */
.kf-service-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, rgba(100, 180, 255, 0.7), transparent);
	opacity: 0;
	transition: opacity 0.4s ease;
}

/* Card inner glow on hover */
.kf-service-card::after {
	content: "";
	position: absolute;
	top: -50%;
	left: -50%;
	width: 200%;
	height: 200%;
	background: radial-gradient(circle at center, rgba(100, 180, 255, 0.08) 0%, transparent 50%);
	opacity: 0;
	transition: opacity 0.5s ease;
	pointer-events: none;
}

.kf-service-card:hover::before {
	opacity: 1;
}

.kf-service-card:hover::after {
	opacity: 1;
}

.kf-service-card:hover {
	transform: translateY(-10px);
	border-color: rgba(100, 180, 255, 0.4);
	background: linear-gradient(145deg, rgba(12, 25, 50, 0.98) 0%, rgba(18, 35, 70, 0.95) 100%);
	box-shadow: 
		0 30px 60px rgba(0, 0, 0, 0.5),
		0 0 40px rgba(100, 180, 255, 0.15),
		inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.kf-service-card h3 {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 1.25rem;
	font-weight: 600;
	margin: 0 0 1rem 0;
	color: #ffffff;
	line-height: 1.3;
}

.kf-service-card p {
	font-family: 'Raleway', sans-serif;
	font-size: 0.9rem;
	margin: 0 0 1.5rem 0;
	color: #a8b8cc;
	line-height: 1.6;
	flex-grow: 1;
}

/* Service card napit - PUHDAS TYYLI */
.kf-card-btn {
	display: inline-block;
	padding: 0.875rem 2rem;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.4);
	color: #ffffff;
	font-family: 'Raleway', sans-serif;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	transition: all 0.3s ease;
	margin-top: auto;
}

.kf-card-btn:hover {
	background: #ffffff;
	color: #0a1628;
	border-color: #ffffff;
}

/* =====================================================
   CONTACT FORM
   ===================================================== */
.kf-contact-form {
	background: rgba(15, 33, 64, 0.5) !important;
	border: 1px solid rgba(255, 255, 255, 0.08) !important;
	padding: 2rem !important;
}

.kf-contact-form-inner {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.kf-contact-form-inner input,
.kf-contact-form-inner textarea {
	width: 100% !important;
	padding: 1rem !important;
	background: rgba(10, 22, 40, 0.8) !important;
	border: 1px solid rgba(255, 255, 255, 0.15) !important;
	color: #ffffff !important;
	font-family: 'Raleway', sans-serif !important;
	font-size: 0.95rem !important;
	box-sizing: border-box !important;
}

.kf-contact-form-inner input::placeholder,
.kf-contact-form-inner textarea::placeholder {
	color: #8899aa !important;
}

.kf-contact-form-inner input:focus,
.kf-contact-form-inner textarea:focus {
	outline: none !important;
	border-color: rgba(255, 255, 255, 0.4) !important;
	background: rgba(15, 33, 64, 0.9) !important;
}

.kf-contact-form-inner button {
	background: #ffffff !important;
	color: #000000 !important;
	border: 2px solid #ffffff !important;
	padding: 1rem !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	width: 100% !important;
	font-family: 'Raleway', sans-serif !important;
	font-size: 0.85rem !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	border-radius: 0 !important;
}

.kf-contact-form-inner button:hover {
	background: #000000 !important;
	color: #ffffff !important;
	border: 2px solid #ffffff !important;
}

/* Contact form centered */
.kf-contact-form {
	max-width: 600px !important;
	margin: 0 auto !important;
}

/* =====================================================
   FOOTER
   ===================================================== */
.kf-footer {
	background: #060d18 !important;
	border-top: 1px solid rgba(255, 255, 255, 0.05) !important;
}

/* =====================================================
   RESPONSIVE
   ===================================================== */
@media (max-width: 1100px) {
	.kf-service-cards {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 782px) {
	.kf-header-inner {
		flex-direction: column;
		gap: 1rem;
		padding: 1rem;
	}
	
	.kf-nav {
	flex-wrap: wrap;
	justify-content: center;
	}
	
	.kf-dropdown-menu {
		position: static;
	opacity: 1;
		visibility: visible;
		transform: none;
		display: none;
	}
	
	.kf-dropdown:hover .kf-dropdown-menu {
		display: block;
	}
	
	.kf-service-cards {
		grid-template-columns: 1fr;
	}
	
	.kf-service-card {
		min-height: 220px;
		padding: 2rem 1.5rem;
	}
	
	.wp-block-columns {
		flex-direction: column !important;
	}
	
	.wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}
}

/* =====================================================
   UTILITIES
   ===================================================== */
.has-text-align-center {
	text-align: center;
}

.has-text-primary-color {
	color: var(--kf-text) !important;
}

.has-text-secondary-color {
	color: var(--kf-text-muted) !important;
}

/* =====================================================
   ESIINTYJÄT / ARTIST CAROUSEL
   ===================================================== */

/* Carousel Container */
.kf-carousel-container {
	width: 100% !important;
	max-width: 1200px !important;
	margin: 0 auto !important;
	overflow: hidden !important;
	position: relative !important;
	padding: 20px 0 !important;
}

/* Gradient fade edges */
.kf-carousel-container::before,
.kf-carousel-container::after {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	bottom: 0 !important;
	width: 80px !important;
	z-index: 10 !important;
	pointer-events: none !important;
}

.kf-carousel-container::before {
	left: 0 !important;
	background: linear-gradient(to right, var(--kf-bg-dark), transparent) !important;
}

.kf-carousel-container::after {
	right: 0 !important;
	background: linear-gradient(to left, var(--kf-bg-dark), transparent) !important;
}

/* Track that holds all cards */
.kf-carousel-track {
	display: flex !important;
	gap: 24px !important;
	animation: carouselSlide 20s linear infinite !important;
	width: max-content !important;
}

.kf-carousel-track:hover {
	animation-play-state: paused !important;
}

@keyframes carouselSlide {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(calc(-50% - 12px));
	}
}

/* Static mode when < 3 artists (no animation, centered) */
.kf-carousel-static {
	overflow: visible !important;
}

.kf-carousel-static::before,
.kf-carousel-static::after {
	display: none !important;
}

.kf-carousel-track.kf-no-animation {
	animation: none !important;
	justify-content: center !important;
	width: 100% !important;
}

/* Progress dots */
.kf-carousel-dots {
	display: flex !important;
	justify-content: center !important;
	gap: 12px !important;
	margin-top: 24px !important;
}

.kf-dot {
	width: 10px !important;
	height: 10px !important;
	background: rgba(255, 255, 255, 0.2) !important;
	border-radius: 50% !important;
	transition: all 0.3s ease !important;
	animation: dotPulse 8s infinite !important;
}

.kf-dot:nth-child(1) { animation-delay: 0s; }
.kf-dot:nth-child(2) { animation-delay: 2s; }
.kf-dot:nth-child(3) { animation-delay: 4s; }
.kf-dot:nth-child(4) { animation-delay: 6s; }

@keyframes dotPulse {
	0%, 20% {
		background: rgba(100, 180, 255, 0.8);
		transform: scale(1.2);
		box-shadow: 0 0 12px rgba(100, 180, 255, 0.5);
	}
	25%, 100% {
		background: rgba(255, 255, 255, 0.2);
		transform: scale(1);
		box-shadow: none;
	}
}

/* Legacy grid fallback */
.kf-artist-grid {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 2rem !important;
	max-width: 900px !important;
	margin: 0 auto !important;
	padding: 0 !important;
}

.kf-artist-card {
	background: linear-gradient(145deg, rgba(8, 18, 35, 0.98) 0%, rgba(15, 30, 60, 0.95) 100%) !important;
	border: 1px solid rgba(255, 255, 255, 0.08) !important;
	overflow: hidden !important;
	transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
	display: flex !important;
	flex-direction: column !important;
	flex-shrink: 0 !important;
	width: 280px !important;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3) !important;
}

.kf-artist-card:hover {
	transform: translateY(-12px) scale(1.02) !important;
	border-color: rgba(100, 180, 255, 0.4) !important;
	box-shadow: 
		0 30px 60px rgba(0, 0, 0, 0.5),
		0 0 40px rgba(100, 180, 255, 0.15),
		inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
}

.kf-artist-image {
	position: relative !important;
	width: 100% !important;
	height: 200px !important;
	overflow: hidden !important;
}

.kf-artist-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	transition: transform 0.5s ease !important;
	display: block !important;
}

.kf-artist-card:hover .kf-artist-image img {
	transform: scale(1.08) !important;
}

.kf-artist-info {
	padding: 1.5rem !important;
	flex-grow: 1 !important;
	display: flex !important;
	flex-direction: column !important;
	text-align: left !important;
}

.kf-artist-info h3 {
	font-family: 'Playfair Display', Georgia, serif !important;
	font-size: 1.25rem !important;
	font-weight: 600 !important;
	color: #fff !important;
	margin: 0 0 0.4rem 0 !important;
}

.kf-artist-genre {
	font-family: 'Raleway', sans-serif !important;
	font-size: 0.7rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: rgba(100, 180, 255, 0.9) !important;
	margin: 0 0 0.75rem 0 !important;
}

.kf-artist-info p {
	font-size: 0.85rem !important;
	color: #a8b8cc !important;
	line-height: 1.6 !important;
	margin: 0 !important;
}

.kf-artist-info p:last-child {
	margin: 0 !important;
}

/* =====================================================
   BOOKING FORM / VARAUSLOMAKE
   ===================================================== */
.kf-booking-form {
	max-width: 600px !important;
	margin: 0 auto !important;
	background: linear-gradient(145deg, rgba(8, 18, 35, 0.95) 0%, rgba(12, 25, 50, 0.9) 100%) !important;
	border: 1px solid rgba(255, 255, 255, 0.1) !important;
	padding: 2.5rem !important;
}

.kf-booking-form form {
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;
}

.kf-form-row {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 1.5rem !important;
	margin-bottom: 0 !important;
}

.kf-form-group {
	display: flex !important;
	flex-direction: column !important;
	margin-bottom: 1.25rem !important;
}

.kf-form-row .kf-form-group {
	margin-bottom: 1.25rem !important;
}

.kf-form-group label {
	display: block !important;
	font-family: 'Raleway', sans-serif !important;
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	color: #c5d0de !important;
	margin-bottom: 0.6rem !important;
}

.kf-form-group input,
.kf-form-group select,
.kf-form-group textarea,
.kf-booking-form input,
.kf-booking-form select,
.kf-booking-form textarea {
	width: 100% !important;
	padding: 1rem !important;
	background: rgba(10, 22, 40, 0.8) !important;
	border: 1px solid rgba(255, 255, 255, 0.15) !important;
	color: #fff !important;
	font-family: 'Raleway', sans-serif !important;
	font-size: 0.95rem !important;
	transition: all 0.3s ease !important;
	box-sizing: border-box !important;
}

.kf-form-group input::placeholder,
.kf-form-group textarea::placeholder,
.kf-booking-form input::placeholder,
.kf-booking-form textarea::placeholder {
	color: #6a7a8a !important;
}

.kf-form-group input:focus,
.kf-form-group select:focus,
.kf-form-group textarea:focus,
.kf-booking-form input:focus,
.kf-booking-form select:focus,
.kf-booking-form textarea:focus {
	outline: none !important;
	border-color: rgba(100, 180, 255, 0.5) !important;
	box-shadow: 0 0 15px rgba(100, 180, 255, 0.1) !important;
	background: rgba(15, 30, 55, 0.9) !important;
}

.kf-form-group select,
.kf-booking-form select {
	cursor: pointer !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23a8b8cc' d='M6 8L1 3h10z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 1rem center !important;
	padding-right: 2.5rem !important;
}

.kf-form-group select option,
.kf-booking-form select option {
	background: #0a1628 !important;
	color: #fff !important;
}

.kf-booking-form button,
.kf-booking-form input[type="submit"] {
	width: 100% !important;
	padding: 1.125rem !important;
	background: #fff !important;
	color: #0a1628 !important;
	border: none !important;
	font-family: 'Raleway', sans-serif !important;
	font-size: 0.85rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	transition: all 0.3s ease !important;
	margin-top: 0.5rem !important;
}

.kf-booking-form button:hover,
.kf-booking-form input[type="submit"]:hover {
	background: #0a1628 !important;
	color: #fff !important;
	box-shadow: inset 0 0 0 2px #fff !important;
}

/* Responsive */
@media (max-width: 768px) {
	.kf-artist-grid {
		grid-template-columns: 1fr;
	}
	
	/* Carousel mobile adjustments */
	.kf-carousel-container::before,
	.kf-carousel-container::after {
		width: 40px !important;
	}
	
	.kf-artist-card {
		width: 260px !important;
	}
	
	.kf-carousel-track {
		gap: 16px !important;
		animation-duration: 16s !important;
	}
	
	.kf-form-row {
		grid-template-columns: 1fr;
	}
	
	.kf-booking-form {
		padding: 1.5rem;
	}
}

/* =====================================================
   KARISMA FORMS - PREMIUM FORM STYLING
   ===================================================== */
.kf-contact-form {
	max-width: 580px !important;
	margin: 0 auto !important;
	padding: 48px !important;
	background: linear-gradient(145deg, rgba(10, 22, 45, 0.95) 0%, rgba(15, 30, 60, 0.9) 100%) !important;
	border: 1px solid rgba(100, 180, 255, 0.15) !important;
	box-shadow: 
		0 25px 80px rgba(0, 0, 0, 0.4),
		0 0 60px rgba(100, 180, 255, 0.05),
		inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
	position: relative !important;
	overflow: hidden !important;
}

/* Animated glow effect */
.kf-contact-form::before {
	content: "" !important;
	position: absolute !important;
	top: -50% !important;
	left: -50% !important;
	width: 200% !important;
	height: 200% !important;
	background: conic-gradient(
		from 0deg,
		transparent 0deg,
		rgba(100, 180, 255, 0.03) 60deg,
		transparent 120deg,
		rgba(100, 180, 255, 0.02) 180deg,
		transparent 240deg,
		rgba(100, 180, 255, 0.03) 300deg,
		transparent 360deg
	) !important;
	animation: formGlow 8s linear infinite !important;
	pointer-events: none !important;
}

@keyframes formGlow {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

.kf-contact-form > * {
	position: relative !important;
	z-index: 1 !important;
}

.kf-contact-form .kf-form-group {
	margin-bottom: 28px !important;
}

.kf-contact-form label {
	display: block !important;
	font-family: 'Raleway', sans-serif !important;
	font-size: 0.7rem !important;
	font-weight: 700 !important;
	color: rgba(255, 255, 255, 0.7) !important;
	margin-bottom: 10px !important;
	letter-spacing: 0.15em !important;
	text-transform: uppercase !important;
	transition: color 0.3s ease !important;
}

.kf-contact-form .kf-form-group:focus-within label {
	color: #64b4ff !important;
}

.kf-contact-form input[type="text"],
.kf-contact-form input[type="email"],
.kf-contact-form input[type="tel"],
.kf-contact-form input[type="date"],
.kf-contact-form input[type="number"],
.kf-contact-form select,
.kf-contact-form textarea {
	width: 100% !important;
	padding: 16px 20px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 1rem !important;
	color: #fff !important;
	background: rgba(0, 10, 25, 0.6) !important;
	border: 2px solid rgba(255, 255, 255, 0.08) !important;
	border-radius: 0 !important;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
	box-sizing: border-box !important;
}

.kf-contact-form input:hover,
.kf-contact-form select:hover,
.kf-contact-form textarea:hover {
	border-color: rgba(100, 180, 255, 0.25) !important;
	background: rgba(0, 15, 35, 0.7) !important;
}

.kf-contact-form input:focus,
.kf-contact-form select:focus,
.kf-contact-form textarea:focus {
	outline: none !important;
	border-color: #64b4ff !important;
	background: rgba(0, 20, 45, 0.8) !important;
	box-shadow: 
		0 0 0 4px rgba(100, 180, 255, 0.1),
		0 8px 25px rgba(0, 0, 0, 0.3),
		inset 0 0 20px rgba(100, 180, 255, 0.03) !important;
	transform: translateY(-2px) !important;
}

.kf-contact-form input::placeholder,
.kf-contact-form textarea::placeholder {
	color: rgba(255, 255, 255, 0.3) !important;
	font-style: italic !important;
	transition: opacity 0.3s ease !important;
}

.kf-contact-form input:focus::placeholder,
.kf-contact-form textarea:focus::placeholder {
	opacity: 0.5 !important;
}

.kf-contact-form select {
	cursor: pointer !important;
	appearance: none !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2364b4ff' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 20px center !important;
	padding-right: 48px !important;
}

.kf-contact-form select option {
	background: #0a1628 !important;
	color: #fff !important;
	padding: 12px !important;
}

.kf-contact-form textarea {
	min-height: 160px !important;
	resize: vertical !important;
	line-height: 1.6 !important;
}

.kf-contact-form .kf-checkbox-label {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	cursor: pointer !important;
	font-weight: 400 !important;
	font-size: 0.9rem !important;
	color: rgba(255, 255, 255, 0.8) !important;
	transition: color 0.3s ease !important;
}

.kf-contact-form .kf-checkbox-label:hover {
	color: #fff !important;
}

.kf-contact-form input[type="checkbox"] {
	width: 22px !important;
	height: 22px !important;
	accent-color: #64b4ff !important;
	cursor: pointer !important;
}

.kf-contact-form .kf-form-submit {
	margin-top: 36px !important;
	text-align: center !important;
}

.kf-contact-form button[type="submit"] {
	display: inline-block !important;
	padding: 18px 56px !important;
	font-family: 'Raleway', sans-serif !important;
	font-size: 0.85rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.15em !important;
	text-transform: uppercase !important;
	color: #0a1628 !important;
	background: linear-gradient(135deg, #fff 0%, #e8f4ff 100%) !important;
	border: none !important;
	border-radius: 0 !important;
	cursor: pointer !important;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
	position: relative !important;
	overflow: hidden !important;
}

.kf-contact-form button[type="submit"]::before {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	left: -100% !important;
	width: 100% !important;
	height: 100% !important;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent) !important;
	transition: left 0.5s ease !important;
}

.kf-contact-form button[type="submit"]:hover::before {
	left: 100% !important;
}

.kf-contact-form button[type="submit"]:hover {
	background: linear-gradient(135deg, #64b4ff 0%, #4a9eff 100%) !important;
	color: #fff !important;
	box-shadow: 
		0 12px 35px rgba(100, 180, 255, 0.4),
		0 0 20px rgba(100, 180, 255, 0.2) !important;
	transform: translateY(-3px) scale(1.02) !important;
}

.kf-contact-form button[type="submit"]:active {
	transform: translateY(-1px) scale(0.98) !important;
}

/* Success & Error messages */
.kf-form-success {
	background: linear-gradient(135deg, rgba(46, 125, 50, 0.2) 0%, rgba(76, 175, 80, 0.15) 100%) !important;
	border: 2px solid rgba(76, 175, 80, 0.4) !important;
	padding: 32px !important;
	text-align: center !important;
	animation: successPop 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55) !important;
}

.kf-form-success p {
	color: #81c784 !important;
	font-size: 1.15rem !important;
	font-weight: 600 !important;
}

.kf-form-error {
	background: linear-gradient(135deg, rgba(198, 40, 40, 0.2) 0%, rgba(229, 57, 53, 0.15) 100%) !important;
	border: 2px solid rgba(229, 57, 53, 0.4) !important;
	padding: 16px 20px !important;
	margin-bottom: 24px !important;
	animation: shake 0.5s ease !important;
}

@keyframes successPop {
	0% { transform: scale(0.8); opacity: 0; }
	50% { transform: scale(1.05); }
	100% { transform: scale(1); opacity: 1; }
}

@keyframes shake {
	0%, 100% { transform: translateX(0); }
	20%, 60% { transform: translateX(-8px); }
	40%, 80% { transform: translateX(8px); }
}

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Mobile adjustments */
@media (max-width: 600px) {
	.kf-contact-form {
		padding: 32px 24px !important;
		margin: 0 16px !important;
	}
	
	.kf-contact-form button[type="submit"] {
		width: 100% !important;
		padding: 16px 32px !important;
	}
}
