/*
Theme Name: KarismaMedia 2026
Description: Modern dark cinematic WordPress block theme for Karisma Media & Entertainment.
Author: Arttu Jumppanen / AJ-Tech Lapua & Karisma Media
Version: 2.4.0
License: GPL-2.0-or-later
Text Domain: karismamedia-2026
© 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:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap');

/* 
 * CALCITE PRO FONTTI:
 * Jos haluat käyttää Calcite Pro -fonttia, lataa se ja siirrä fonts/ kansioon.
 * Muussa tapauksessa käytetään Playfair Display -fonttia (Google Fonts).
 *
 * Calcite Pro Font Face - aktivoituu kun tiedostot on paikalla
 */
@font-face {
	font-family: 'Calcite Pro';
	src: url('fonts/CalcitePro-Regular.woff2') format('woff2'),
	     url('fonts/CalcitePro-Regular.woff') format('woff'),
	     url('fonts/CalcitePro-Regular.ttf') format('truetype');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Calcite Pro';
	src: url('fonts/CalcitePro-Bold.woff2') format('woff2'),
	     url('fonts/CalcitePro-Bold.woff') format('woff'),
	     url('fonts/CalcitePro-Bold.ttf') format('truetype');
	font-weight: 700;
	font-style: normal;
	font-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 - PLUSMERKKI pattern */
#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(100, 150, 255, 0.08) 0%, transparent 50%),
		radial-gradient(ellipse at 50% 100%, rgba(100, 150, 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;
}

#showreel > * {
	position: relative !important;
	z-index: 1 !important;
}

/* Yhteystiedot-osio - sama pistekuvio kuin palvelut (yhtenäisempi) */
#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(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;
}

#yhteystiedot > * {
	position: relative !important;
	z-index: 1 !important;
}

/* Hero cover pattern - hienovarainen piste-pattern */
.wp-block-cover.is-style-cinematic-overlay::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image: var(--kf-pattern-dots);
	background-size: 20px 20px;
	pointer-events: none;
	z-index: 2;
	opacity: 0.15;
}

/* Hero-alueen overlay - POISTETTU asiakkaan pyynnöstä */
.wp-block-cover.is-style-cinematic-overlay .wp-block-cover__background {
	opacity: 0 !important;
	display: none !important;
}

.wp-block-cover.is-style-cinematic-overlay::before {
	display: none !important;
}

.wp-block-cover__inner-container {
	position: relative !important;
	z-index: 2 !important;
}

/* =====================================================
   TYPOGRAPHY - PLAYFAIR DISPLAY ITALIC (ELEGANT)
   ===================================================== */

/* Otsikkofontti - Calcite Pro */
h1, h2, h3, h4, h5, h6,
.wp-block-heading {
	font-family: 'Calcite Pro', 'Playfair Display', Georgia, serif !important;
	font-weight: 400 !important;
	font-style: italic !important;
	color: var(--kf-text);
	line-height: 1.2;
	margin: 0 0 1rem 0;
	letter-spacing: 0.01em;
}

/* Hero-alueen otsikko */
.wp-block-cover h1,
.wp-block-cover h2,
.wp-block-cover .wp-block-heading,
.wp-block-cover__inner-container h1,
.wp-block-cover__inner-container .wp-block-heading,
.is-style-cinematic-overlay h1,
.is-style-cinematic-overlay .wp-block-heading,
body .wp-block-cover h1.wp-block-heading,
body .wp-block-cover .wp-block-group h1 {
	font-family: 'Calcite Pro', 'Playfair Display', Georgia, serif !important;
	font-weight: 400 !important;
	font-style: italic !important;
	color: #ffffff !important;
}

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 - WITH LOGO SUPPORT
   ===================================================== */

/* Main Header Container */
.kf-header {
	position: sticky !important;
	top: 0 !important;
	z-index: 99999 !important;
	background: linear-gradient(90deg, 
		rgba(6, 14, 30, 0.98) 0%, 
		rgba(10, 22, 45, 0.98) 50%, 
		rgba(8, 18, 38, 0.98) 100%) !important;
	border-bottom: 1px solid rgba(100, 160, 220, 0.12) !important;
	backdrop-filter: blur(20px) !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Logo Group */
.kf-logo-group {
	display: flex !important;
	align-items: center !important;
	gap: 16px !important;
}

/* Logo Image - MUOKATTAVISSA EDITORISSA */
.kf-logo-image {
	margin: 0 !important;
	line-height: 0 !important;
}

.kf-logo-image img {
	max-height: 50px !important;
	width: auto !important;
	object-fit: contain !important;
	display: block !important;
}

.kf-logo-image a {
	display: block !important;
	line-height: 0 !important;
}

/* Logo Text - MUOKATTAVISSA EDITORISSA */
.kf-logo-text {
	font-family: 'Calcite Pro', 'Playfair Display', Georgia, serif !important;
	font-weight: 400 !important;
	font-size: 1.2rem !important;
	font-style: italic !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	margin: 0 !important;
}

.kf-logo-text a {
	color: #fff !important;
	text-decoration: none !important;
	transition: all 0.4s ease !important;
}

.kf-logo-text a:hover {
	text-shadow: 0 0 20px rgba(100, 180, 255, 0.6) !important;
}

/* Animated shimmer effect */
.kf-header::before {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	background: linear-gradient(90deg, 
		transparent 0%, 
		rgba(100, 160, 220, 0.03) 25%, 
		rgba(150, 200, 255, 0.06) 50%, 
		rgba(100, 160, 220, 0.03) 75%, 
		transparent 100%) !important;
	background-size: 200% 100% !important;
	animation: headerShimmer 12s ease-in-out infinite !important;
	pointer-events: none !important;
	z-index: 0 !important;
}

/* Light beam at bottom */
.kf-header::after {
	content: "" !important;
	position: absolute !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 1px !important;
	background: linear-gradient(90deg, 
		transparent 0%,
		rgba(100, 180, 255, 0.15) 20%,
		rgba(255, 255, 255, 0.4) 50%,
		rgba(100, 180, 255, 0.15) 80%,
		transparent 100%) !important;
	background-size: 200% 100% !important;
	animation: headerBeam 6s ease-in-out infinite !important;
	pointer-events: none !important;
	z-index: 1 !important;
}

@keyframes headerShimmer {
	0% { background-position: -200% 0; }
	50% { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

@keyframes headerBeam {
	0% { background-position: -200% 0; }
	100% { background-position: 200% 0; }
}

/* Header Inner */
.kf-header-inner {
	padding: 20px 32px !important;
	position: relative !important;
	z-index: 10 !important;
}

/* Site Title / Logo */
.kf-header .kf-logo,
.kf-header .wp-block-site-title,
.kf-header .wp-block-site-title a {
	font-family: 'Calcite Pro', 'Playfair Display', Georgia, serif !important;
	font-weight: 400 !important;
	font-size: 1.3rem !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: #fff !important;
	text-decoration: none !important;
	transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
	margin: 0 !important;
}

.kf-header .wp-block-site-title a:hover {
	text-shadow: 0 0 25px rgba(100, 180, 255, 0.7), 0 0 50px rgba(100, 180, 255, 0.4) !important;
	letter-spacing: 0.18em !important;
}

/* Navigation Container */
.kf-header .wp-block-navigation,
.kf-header .kf-nav {
	gap: 8px !important;
}

/* Navigation Links */
.kf-header .wp-block-navigation-item__content,
.kf-header .wp-block-navigation-link a,
.kf-header .wp-block-navigation a {
	color: #a8b8cc !important;
	padding: 10px 20px !important;
	font-family: 'Raleway', sans-serif !important;
	font-weight: 500 !important;
	font-size: 12px !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
	position: relative !important;
}

.kf-header .wp-block-navigation-item__content:hover,
.kf-header .wp-block-navigation a:hover {
	color: #fff !important;
	text-shadow: 0 0 10px rgba(255, 255, 255, 0.3) !important;
}

/* Dropdown Submenu */
.kf-header .wp-block-navigation-submenu__toggle {
	color: #a8b8cc !important;
	padding: 10px 20px !important;
	font-family: 'Raleway', sans-serif !important;
	font-weight: 500 !important;
	font-size: 12px !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	background: transparent !important;
	border: none !important;
	cursor: pointer !important;
}

.kf-header .wp-block-navigation-submenu__toggle:hover {
	color: #fff !important;
}

/* Dropdown Menu - HOVER OPEN */
.kf-header .wp-block-navigation-submenu {
	position: relative !important;
}

.kf-header .wp-block-navigation__submenu-container {
	position: absolute !important;
	top: 100% !important;
	left: 0 !important;
	background: #050d1a !important;
	border: 1px solid #1a3a5c !important;
	min-width: 240px !important;
	padding: 8px 0 !important;
	box-shadow: 0 15px 40px rgba(0,0,0,0.8) !important;
	z-index: 999999 !important;
	opacity: 0 !important;
	visibility: hidden !important;
	transform: translateY(-10px) !important;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* HOVER opens dropdown */
.kf-header .wp-block-navigation-submenu:hover > .wp-block-navigation__submenu-container,
.kf-header .wp-block-navigation-item:hover > .wp-block-navigation__submenu-container {
	opacity: 1 !important;
	visibility: visible !important;
	transform: translateY(0) !important;
}

.kf-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: block !important;
	padding: 14px 24px !important;
	color: #c5d0de !important;
	font-size: 13px !important;
}

.kf-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: rgba(100, 180, 255, 0.2) !important;
	color: #fff !important;
	padding-left: 30px !important;
}

/* Hide default WP navigation arrows */
.kf-header .wp-block-navigation__submenu-icon {
	display: none !important;
}

/* Mobile Navigation */
@media (max-width: 900px) {
	.kf-header-inner {
		padding: 16px 20px !important;
	}
	
	.kf-header .wp-block-navigation__responsive-container-open {
		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;
		width: auto !important;
		height: auto !important;
		max-width: none !important;
		max-height: none !important;
		position: static !important;
		left: auto !important;
		clip: auto !important;
		pointer-events: auto !important;
		color: #fff !important;
		background: transparent !important;
		border: none !important;
	}
	
	.kf-header .wp-block-navigation__responsive-container {
		background: #0a1628 !important;
	}
	
	.kf-header .wp-block-navigation__responsive-container.is-menu-open {
		display: flex !important;
		visibility: visible !important;
		opacity: 1 !important;
		padding: 80px 32px 32px !important;
	}
	
	.kf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		flex-direction: column !important;
		gap: 0 !important;
	}
	
	.kf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		padding: 18px 0 !important;
		border-bottom: 1px solid rgba(255,255,255,0.08) !important;
		font-size: 14px !important;
		color: #fff !important;
	}
}

/* =====================================================
   NAVIGATION STYLES - INLINE HTML SUPPORT
   ===================================================== */

/* Desktop Navigation */
.kf-nav {
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
}

.kf-nav > a {
	color: #a8b8cc !important;
	padding: 10px 20px !important;
	font-family: 'Raleway', sans-serif !important;
	font-weight: 500 !important;
	font-size: 12px !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	transition: all 0.3s ease !important;
}

.kf-nav > a:hover {
	color: #fff !important;
}

/* Hover Dropdown */
.kf-hover-dropdown {
	position: relative !important;
	display: inline-block !important;
}

.kf-hover-dropdown > span {
	color: #a8b8cc !important;
	padding: 10px 20px !important;
	font-family: 'Raleway', sans-serif !important;
	font-weight: 500 !important;
	font-size: 12px !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	display: inline-block !important;
	transition: all 0.3s ease !important;
}

.kf-hover-dropdown:hover > span {
	color: #fff !important;
}

.kf-hover-menu {
	position: absolute !important;
	top: 100% !important;
	left: 0 !important;
	background: #050d1a !important;
	border: 1px solid #1a3a5c !important;
	min-width: 240px !important;
	padding: 8px 0 !important;
	box-shadow: 0 15px 40px rgba(0,0,0,0.8) !important;
	z-index: 999999 !important;
	opacity: 0 !important;
	visibility: hidden !important;
	transform: translateY(-10px) !important;
	transition: all 0.3s ease !important;
}

.kf-hover-dropdown:hover .kf-hover-menu {
	opacity: 1 !important;
	visibility: visible !important;
	transform: translateY(0) !important;
}

.kf-hover-menu a {
	display: block !important;
	padding: 14px 24px !important;
	color: #c5d0de !important;
	font-family: 'Raleway', sans-serif !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	text-decoration: none !important;
	transition: all 0.2s ease !important;
}

.kf-hover-menu a:hover {
	background: rgba(100, 180, 255, 0.2) !important;
	color: #fff !important;
	padding-left: 30px !important;
}

/* Mobile Elements */
.kf-hamburger {
	display: none !important;
	flex-direction: column !important;
	width: 44px !important;
	height: 44px !important;
	background: none !important;
	border: none !important;
	cursor: pointer !important;
	justify-content: center !important;
	align-items: center !important;
	z-index: 100001 !important;
}

.kf-hamburger span {
	display: block !important;
	width: 24px !important;
	height: 2px !important;
	background: #fff !important;
	margin: 3px 0 !important;
	transition: all 0.3s ease !important;
}

.kf-menu-toggle {
	display: none !important;
}

.kf-overlay {
	display: none !important;
}

.kf-mobile-nav {
	display: none !important;
}

.kf-close-btn {
	display: none !important;
}

/* Mobile Responsive */
@media (max-width: 900px) {
	.kf-nav {
		display: none !important;
	}
	
	.kf-hamburger {
		display: flex !important;
	}
	
	.kf-mobile-nav {
		position: fixed !important;
		top: 0 !important;
		right: -100% !important;
		width: 280px !important;
		height: 100vh !important;
		background: #0a1628 !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: flex-start !important;
		padding: 100px 32px 32px !important;
		gap: 0 !important;
		transition: right 0.3s ease !important;
		border-left: 1px solid rgba(255,255,255,0.1) !important;
		z-index: 100000 !important;
	}
	
	.kf-mobile-nav a {
		width: 100% !important;
		padding: 18px 0 !important;
		font-family: 'Raleway', sans-serif !important;
		font-size: 14px !important;
		font-weight: 500 !important;
		letter-spacing: 0.1em !important;
		text-transform: uppercase !important;
		border-bottom: 1px solid rgba(255,255,255,0.08) !important;
		color: #fff !important;
		text-decoration: none !important;
	}
	
	.kf-mobile-nav a:hover {
		color: #64b4ff !important;
	}
	
	.kf-menu-toggle:checked ~ .kf-mobile-nav {
		right: 0 !important;
	}
	
	.kf-menu-toggle:checked ~ .kf-hamburger span:nth-child(1) {
		transform: rotate(45deg) translate(5px, 5px) !important;
	}
	
	.kf-menu-toggle:checked ~ .kf-hamburger span:nth-child(2) {
		opacity: 0 !important;
	}
	
	.kf-menu-toggle:checked ~ .kf-hamburger span:nth-child(3) {
		transform: rotate(-45deg) translate(5px, -5px) !important;
	}
	
	.kf-overlay {
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		width: 100% !important;
		height: 100vh !important;
		background: rgba(0,0,0,0.6) !important;
		z-index: 99999 !important;
		display: none !important;
	}
	
	.kf-menu-toggle:checked ~ .kf-overlay {
		display: block !important;
	}
	
	.kf-close-btn {
		display: flex !important;
		position: absolute !important;
		top: 24px !important;
		right: 24px !important;
		width: 40px !important;
		height: 40px !important;
		align-items: center !important;
		justify-content: center !important;
		font-size: 28px !important;
		color: #fff !important;
		cursor: pointer !important;
		background: none !important;
		border: none !important;
	}
}

/* Legacy support */
.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: 'Calcite Pro', 'Playfair Display', Georgia, serif !important;
	font-weight: 400 !important;
	font-style: italic !important;
	font-size: 1.1rem;
	letter-spacing: 0.1em;
	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 - Editorin muutokset sallittu
   ===================================================== */
.wp-block-button__link,
.wp-element-button,
button:not(.components-button),
input[type="submit"] {
	border-radius: 0;
	font-family: 'Raleway', sans-serif;
	font-weight: 700;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 1rem 2.5rem;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	cursor: pointer;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
	text-align: center;
	line-height: 1;
	position: relative;
	overflow: hidden;
}

/* 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%;
}

/* Header-painike: puhdas valkoinen, yksivärinen ja erottuva */
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: #ffffff;
	color: #0a1628;
	border: none;
	box-shadow: 0 4px 25px rgba(255, 255, 255, 0.25);
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: #f0f4f8;
	color: #0a1628;
	box-shadow: 0 8px 35px rgba(255, 255, 255, 0.35);
	transform: translateY(-3px);
}

.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--kf-text);
	border: 2px solid rgba(255, 255, 255, 0.4);
}

.is-style-outline .wp-block-button__link:hover {
	background: #ffffff;
	color: var(--kf-bg-dark);
	border-color: #ffffff;
}

/* =====================================================
   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: 'Calcite Pro', 'Playfair Display', Georgia, serif !important;
	font-size: 1.25rem;
	font-weight: 400 !important;
	font-style: italic !important;
	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: 'Calcite Pro', 'Playfair Display', Georgia, serif !important;
	font-size: 1.25rem !important;
	font-weight: 400 !important;
	font-style: italic !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;
}

/* Field hints */
.kf-field-hint {
	display: block !important;
	font-size: 0.75rem !important;
	color: #6a7a8a !important;
	margin-top: 0.4rem !important;
}

/* Checkbox Group - Esiintyjät valinta */
.kf-checkbox-group {
	margin-top: 0.5rem !important;
}

.kf-checkbox-label {
	display: block !important;
	color: #a8b8cc !important;
	font-size: 0.85rem !important;
	font-weight: 600 !important;
	margin-bottom: 0.25rem !important;
}

.kf-checkbox-hint {
	display: block !important;
	color: #6a7a8a !important;
	font-size: 0.75rem !important;
	margin-bottom: 1rem !important;
}

.kf-artist-checkboxes {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
	gap: 0.75rem !important;
	margin-top: 0.5rem !important;
}

.kf-checkbox-item {
	display: flex !important;
	align-items: center !important;
	gap: 0.75rem !important;
	padding: 0.875rem 1rem !important;
	background: rgba(10, 22, 40, 0.6) !important;
	border: 1px solid rgba(255, 255, 255, 0.1) !important;
	cursor: pointer !important;
	transition: all 0.3s ease !important;
}

.kf-checkbox-item:hover {
	background: rgba(20, 40, 70, 0.7) !important;
	border-color: rgba(100, 180, 255, 0.3) !important;
}

.kf-checkbox-item input[type="checkbox"] {
	display: none !important;
}

.kf-checkbox-custom {
	width: 20px !important;
	height: 20px !important;
	min-width: 20px !important;
	border: 2px solid rgba(255, 255, 255, 0.3) !important;
	background: transparent !important;
	transition: all 0.3s ease !important;
	position: relative !important;
}

.kf-checkbox-custom::after {
	content: "✓" !important;
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	transform: translate(-50%, -50%) scale(0) !important;
	font-size: 14px !important;
	color: #0a1628 !important;
	transition: transform 0.2s ease !important;
}

.kf-checkbox-item input[type="checkbox"]:checked ~ .kf-checkbox-custom {
	background: #fff !important;
	border-color: #fff !important;
}

.kf-checkbox-item input[type="checkbox"]:checked ~ .kf-checkbox-custom::after {
	transform: translate(-50%, -50%) scale(1) !important;
}

.kf-checkbox-item input[type="checkbox"]:checked ~ .kf-checkbox-text {
	color: #fff !important;
}

.kf-checkbox-text {
	color: #a8b8cc !important;
	font-size: 0.9rem !important;
	font-weight: 500 !important;
	transition: color 0.3s ease !important;
}

/* Submit button styling */
.kf-submit-btn {
	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: 1rem !important;
}

.kf-submit-btn: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;
	}
}

/* =====================================================
   PALVELUSIVUJEN TYYLIT - SERVICE PAGES
   ===================================================== */

/* Feature Grid - Ominaisuusruudukko */
.kf-feature-grid {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 24px !important;
	max-width: 900px !important;
	margin: 0 auto !important;
}

.kf-feature-grid.kf-feature-grid-4 {
	grid-template-columns: repeat(4, 1fr) !important;
}

.kf-feature-grid.kf-feature-grid-3 {
	grid-template-columns: repeat(3, 1fr) !important;
}

.kf-feature-item {
	background: linear-gradient(145deg, rgba(12, 25, 50, 0.8) 0%, rgba(18, 35, 70, 0.6) 100%) !important;
	border: 1px solid rgba(255, 255, 255, 0.08) !important;
	padding: 28px 20px !important;
	text-align: center !important;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
	position: relative !important;
}

.kf-feature-item::before {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	height: 2px !important;
	background: linear-gradient(90deg, transparent, rgba(100, 180, 255, 0.5), transparent) !important;
	opacity: 0 !important;
	transition: opacity 0.3s ease !important;
}

.kf-feature-item:hover {
	transform: translateY(-6px) !important;
	border-color: rgba(100, 180, 255, 0.3) !important;
	background: linear-gradient(145deg, rgba(18, 35, 70, 0.9) 0%, rgba(25, 45, 85, 0.8) 100%) !important;
	box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3) !important;
}

.kf-feature-item:hover::before {
	opacity: 1 !important;
}

.kf-feature-icon {
	font-size: 2rem !important;
	display: block !important;
	margin-bottom: 12px !important;
}

.kf-feature-item h4 {
	font-family: 'Raleway', sans-serif !important;
	font-size: 0.9rem !important;
	font-weight: 600 !important;
	color: #ffffff !important;
	margin: 0 0 8px 0 !important;
	line-height: 1.4 !important;
}

.kf-feature-item p {
	font-size: 0.8rem !important;
	color: #a8b8cc !important;
	margin: 0 !important;
	line-height: 1.5 !important;
}

/* Process List - Prosessilista */
.kf-process-list {
	max-width: 700px !important;
	margin: 0 auto !important;
}

.kf-process-item {
	display: flex !important;
	align-items: flex-start !important;
	gap: 24px !important;
	padding: 24px 0 !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
	transition: all 0.3s ease !important;
}

.kf-process-item:last-child {
	border-bottom: none !important;
}

.kf-process-item:hover {
	padding-left: 12px !important;
}

.kf-process-number {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 48px !important;
	height: 48px !important;
	min-width: 48px !important;
	background: linear-gradient(135deg, rgba(100, 180, 255, 0.2) 0%, rgba(100, 180, 255, 0.1) 100%) !important;
	border: 1px solid rgba(100, 180, 255, 0.3) !important;
	color: #64b4ff !important;
	font-family: 'Calcite Pro', 'Playfair Display', Georgia, serif !important;
	font-size: 1.3rem !important;
	font-weight: 600 !important;
	font-style: italic !important;
}

.kf-process-content h4 {
	font-family: 'Raleway', sans-serif !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	color: #ffffff !important;
	margin: 0 0 6px 0 !important;
}

.kf-process-content p {
	font-size: 0.9rem !important;
	color: #a8b8cc !important;
	margin: 0 !important;
	line-height: 1.5 !important;
}

/* Benefits Grid - Edut-ruudukko */
.kf-benefits-grid {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 24px !important;
	max-width: 1000px !important;
	margin: 0 auto !important;
}

.kf-benefit-card {
	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: 32px 24px !important;
	text-align: center !important;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
	position: relative !important;
	overflow: hidden !important;
}

.kf-benefit-card::before {
	content: "" !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	height: 3px !important;
	background: linear-gradient(90deg, transparent, rgba(100, 180, 255, 0.6), transparent) !important;
	opacity: 0 !important;
	transition: opacity 0.3s ease !important;
}

.kf-benefit-card:hover {
	transform: translateY(-8px) !important;
	border-color: rgba(100, 180, 255, 0.35) !important;
	background: linear-gradient(145deg, rgba(12, 25, 50, 0.98) 0%, rgba(18, 35, 70, 0.95) 100%) !important;
	box-shadow: 
		0 25px 50px rgba(0, 0, 0, 0.4),
		0 0 30px rgba(100, 180, 255, 0.1) !important;
}

.kf-benefit-card:hover::before {
	opacity: 1 !important;
}

.kf-benefit-icon {
	font-size: 2.5rem !important;
	margin-bottom: 16px !important;
	display: block !important;
}

.kf-benefit-card h4 {
	font-family: 'Calcite Pro', 'Playfair Display', Georgia, serif !important;
	font-size: 1.1rem !important;
	font-weight: 400 !important;
	font-style: italic !important;
	color: #ffffff !important;
	margin: 0 0 10px 0 !important;
}

.kf-benefit-card p {
	font-size: 0.85rem !important;
	color: #a8b8cc !important;
	margin: 0 !important;
	line-height: 1.5 !important;
}

/* Highlight Box - Korostuslaatikko */
.kf-highlight-box {
	background: linear-gradient(135deg, rgba(100, 180, 255, 0.1) 0%, rgba(100, 180, 255, 0.05) 100%) !important;
	border-left: 4px solid rgba(100, 180, 255, 0.6) !important;
	padding: 24px 28px !important;
	max-width: 760px !important;
	margin: 32px auto !important;
}

.kf-highlight-box p {
	font-size: 1rem !important;
	color: #c5d0de !important;
	margin: 0 !important;
	line-height: 1.7 !important;
	font-style: italic !important;
}

/* =====================================================
   ESIINTYJÄT ISOT KORTIT - PERFORMER CARDS
   ===================================================== */

.kf-performer-grid {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 32px !important;
	max-width: 1100px !important;
	margin: 0 auto !important;
}

.kf-performer-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.1) !important;
	overflow: hidden !important;
	transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
	display: flex !important;
	flex-direction: column !important;
}

.kf-performer-card:hover {
	transform: translateY(-8px) !important;
	border-color: rgba(100, 180, 255, 0.35) !important;
	box-shadow: 
		0 30px 60px rgba(0, 0, 0, 0.5),
		0 0 40px rgba(100, 180, 255, 0.12) !important;
}

.kf-performer-image {
	position: relative !important;
	width: 100% !important;
	height: 250px !important;
	overflow: hidden !important;
}

.kf-performer-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	transition: transform 0.6s ease !important;
}

.kf-performer-card:hover .kf-performer-image img {
	transform: scale(1.08) !important;
}

.kf-performer-content {
	padding: 28px !important;
	flex-grow: 1 !important;
	display: flex !important;
	flex-direction: column !important;
}

.kf-performer-content h3 {
	font-family: 'Calcite Pro', 'Playfair Display', Georgia, serif !important;
	font-size: 1.5rem !important;
	font-weight: 400 !important;
	font-style: italic !important;
	color: #ffffff !important;
	margin: 0 0 8px 0 !important;
}

.kf-performer-genre {
	display: inline-block !important;
	font-family: 'Raleway', sans-serif !important;
	font-size: 0.7rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	color: rgba(100, 180, 255, 0.9) !important;
	margin-bottom: 16px !important;
	padding: 4px 0 !important;
	border-bottom: 1px solid rgba(100, 180, 255, 0.2) !important;
}

.kf-performer-content p {
	font-size: 1rem !important;
	color: #a8b8cc !important;
	line-height: 1.7 !important;
	margin: 0 0 12px 0 !important;
}

.kf-performer-content p:last-of-type {
	margin-bottom: 0 !important;
}

.kf-performer-tagline {
	font-style: italic !important;
	color: #c5d0de !important;
	font-size: 0.95rem !important;
	margin-top: 12px !important;
	padding-top: 12px !important;
	border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.kf-performer-links {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 12px !important;
	margin-top: auto !important;
	padding-top: 20px !important;
}

.kf-performer-cta {
	display: inline-block !important;
	padding: 10px 18px !important;
	margin-top: 12px !important;
	background: transparent !important;
	border: 1px solid rgba(255, 255, 255, 0.45) !important;
	color: #ffffff !important;
	font-family: 'Raleway', sans-serif !important;
	font-size: 0.72rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	transition: all 0.3s ease !important;
	align-self: flex-start !important;
}

.kf-performer-cta:hover {
	background: #ffffff !important;
	color: #0a1628 !important;
	border-color: #ffffff !important;
}

.kf-performer-links a {
	display: inline-block !important;
	padding: 8px 16px !important;
	background: rgba(100, 180, 255, 0.1) !important;
	border: 1px solid rgba(100, 180, 255, 0.3) !important;
	color: #64b4ff !important;
	font-family: 'Raleway', sans-serif !important;
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.05em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	transition: all 0.3s ease !important;
}

.kf-performer-links a:hover {
	background: rgba(100, 180, 255, 0.25) !important;
	border-color: rgba(100, 180, 255, 0.5) !important;
	color: #fff !important;
}

/* =====================================================
   PALVELUSIVUJEN RESPONSIIVISUUS
   ===================================================== */

@media (max-width: 1100px) {
	.kf-benefits-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
	
	.kf-feature-grid.kf-feature-grid-4 {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 900px) {
	.kf-performer-grid {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
	}
	
	.kf-performer-image {
		height: 220px !important;
	}
}

@media (max-width: 768px) {
	.kf-feature-grid,
	.kf-feature-grid.kf-feature-grid-3,
	.kf-feature-grid.kf-feature-grid-4 {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 16px !important;
	}
	
	.kf-benefits-grid {
		grid-template-columns: 1fr !important;
		gap: 16px !important;
	}
	
	.kf-process-item {
		gap: 16px !important;
	}
	
	.kf-process-number {
		width: 40px !important;
		height: 40px !important;
		min-width: 40px !important;
		font-size: 1.1rem !important;
	}
	
	.kf-performer-content {
		padding: 20px !important;
	}
	
	.kf-performer-content h3 {
		font-size: 1.3rem !important;
	}
}

@media (max-width: 500px) {
	.kf-feature-grid,
	.kf-feature-grid.kf-feature-grid-3,
	.kf-feature-grid.kf-feature-grid-4 {
		grid-template-columns: 1fr !important;
	}
	
	.kf-feature-item {
		padding: 20px 16px !important;
	}
	
	.kf-performer-image {
		height: 180px !important;
	}
}
