/*
Theme Name: Kisállat Temető
Theme URI: https://example.com/kisallat-temeto-theme
Description: Grafikus 3D webdesign – éles használatra. Temetői hangulat, mélység, modern kinézet. WooCommerce kompatibilis.
Version: 2.10.5
Author: Kisállat Temető
Author URI: https://example.com
Requires at least: 6.0
Tested up to: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kisallat-temeto-theme
*/

/* ========== 3D GRAFIKUS VÁLTOZÓK + MÉRETARÁNYOS ELRENDEZÉS ========== */
:root {
	--3d-bg: #05070b;
	--3d-deep: #090d13;
	--3d-surface: #10171c;
	--3d-panel: #151e22;
	--3d-elevated: #1b252a;
	--3d-border: rgba(255,255,255,0.1);
	--3d-border-strong: rgba(255,255,255,0.14);
	--3d-fog: rgba(40,60,70,0.75);
	--3d-fog-soft: rgba(55,85,95,0.55);
	--cemetery-texture: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cpath fill='%230a0f0d' fill-opacity='0.4' d='M60 0v40l-20 20 20 20v40l20-20-20-20V0z'/%3E%3Cpath fill='%231a2520' fill-opacity='0.25' d='M0 60h40l20-20-20-20H0zm80 0H40L20 80l20 20h40z'/%3E%3C/svg%3E");
	--3d-accent: #2d5a38;
	--3d-accent-hover: #3a7045;
	--3d-glow: rgba(80,150,90,0.45);
	--3d-glow-strong: rgba(100,180,100,0.35);
	--3d-text: #c0c8c2;
	--3d-muted: #7a857c;
	--3d-pale: #e4ebe6;
	--3d-shadow: 0 16px 48px rgba(0,0,0,0.35);
	--3d-shadow-strong: 0 24px 56px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.06);
	--3d-radius: 16px;
	--3d-radius-sm: 10px;
	/* Méretarányos tartalom: max szélesség és padding (viewport-hoz igazodik) */
	--content-max: min(1180px, 92vw);
	--content-wide: min(1680px, 94vw);
	--3d-max-width: var(--content-max);
	--3d-content-padding-x: clamp(1rem, 3vw, 1.75rem);
	--3d-content-padding-x-mobile: clamp(1rem, 4vw, 1.35rem);
	--section-padding-y: clamp(1.5rem, 4vw, 2.5rem);
	--section-padding-x: clamp(1.25rem, 4vw, 2rem);
	--font-head: 'Cormorant Garamond', Georgia, serif;
	--font-body: 'Source Sans 3', system-ui, sans-serif;
	--perspective: 1200px;
	--ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
	--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
	--ease-soft: cubic-bezier(0.4, 0, 0.2, 1);
	--theme-hero-bg: linear-gradient(160deg, var(--3d-deep) 0%, var(--3d-surface) 100%);
	--theme-candle-icon: url('assets/images/candle-icon.png');
	--theme-decoration: url('assets/images/decoration-flower.png');
	--hero-glow: rgba(90, 160, 100, 0.45);
	--woo-product-min: 270px;
	--woo-max-width: var(--content-wide);
	--woo-section-padding: var(--section-padding-x);
	--woo-loop-image-min: 0;
	--woo-loop-image-min-mobile: 180px;
	--woo-card-radius: 20px;
	--woo-card-shadow: 0 4px 24px rgba(0,0,0,0.2), 0 0 0 1px rgba(255,255,255,0.04);
	--woo-card-shadow-hover: 0 20px 48px rgba(0,0,0,0.35), 0 0 0 1px rgba(255,255,255,0.06), 0 0 32px var(--3d-glow);
}

/* ========== NAPPALI TÉMA – világos, nyugodt ========== */
[data-theme="light"] {
	--3d-bg: #e8ebe6;
	--3d-deep: #d4dcd6;
	--3d-surface: #e0e6e2;
	--3d-panel: #eef2ef;
	--3d-elevated: #f2f6f3;
	--3d-border: rgba(0,0,0,0.08);
	--3d-border-strong: rgba(0,0,0,0.12);
	--3d-fog: rgba(120,150,125,0.35);
	--3d-fog-soft: rgba(140,170,145,0.25);
	--cemetery-texture: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cpath fill='%23d8e0dc' fill-opacity='0.5' d='M60 0v40l-20 20 20 20v40l20-20-20-20V0z'/%3E%3Cpath fill='%23e4eae6' fill-opacity='0.35' d='M0 60h40l20-20-20-20H0zm80 0H40L20 80l20 20h40z'/%3E%3C/svg%3E");
	--3d-accent: #2d6b3a;
	--3d-accent-hover: #247030;
	--3d-glow: rgba(60,130,75,0.25);
	--3d-glow-strong: rgba(70,150,85,0.2);
	--3d-text: #2d3529;
	--3d-muted: #5a6658;
	--3d-pale: #1a2118;
	--3d-shadow: 0 12px 40px rgba(0,0,0,0.12);
	--3d-shadow-strong: 0 20px 48px rgba(0,0,0,0.15), 0 0 0 1px rgba(0,0,0,0.05);
	--hero-glow: rgba(70, 140, 85, 0.3);
	--woo-card-shadow: 0 4px 20px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.04);
	--woo-card-shadow-hover: 0 16px 40px rgba(0,0,0,0.12), 0 0 0 1px rgba(0,0,0,0.06), 0 0 24px var(--3d-glow);
}

/* ========== ALAPOK – MÉRETARÁNYOS ALAP + 3D SCÉNA ========== */
*, *::before, *::after { box-sizing: border-box; }
html {
	scroll-behavior: smooth;
	font-size: clamp(15px, 1vw + 14px, 18px);
	overscroll-behavior-y: none;
}
body {
	margin: 0;
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.6;
	max-width: 100vw;
	overflow-x: hidden;
	background: 
		linear-gradient(180deg, #05070b 0%, #0b1013 28%, #0f1612 52%, #151c17 78%, #050806 100%),
		radial-gradient(ellipse 130% 90% at 50% 25%, rgba(20,40,30,0.7) 0%, transparent 58%),
		var(--3d-bg);
	color: var(--3d-text);
	min-height: 0;
	position: relative;
	transition: background 0.5s var(--ease-soft), color 0.4s var(--ease-soft);
}
[data-theme="light"] body {
	background: 
		linear-gradient(180deg, #e4ebe6 0%, #d6e0da 32%, #c9d4ce 64%, #c1cec8 100%),
		radial-gradient(ellipse 130% 90% at 50% 18%, rgba(110,145,125,0.55) 0%, transparent 65%),
		var(--3d-bg);
}
body.cemetery-theme { perspective: var(--perspective); transform-style: preserve-3d; }
body::before {
	content: '';
	position: fixed;
	inset: 0;
	background: var(--cemetery-texture);
	background-size: 120px 120px;
	pointer-events: none;
	z-index: 1;
	opacity: 0.95;
	transition: opacity 0.5s var(--ease-soft);
}
[data-theme="light"] body::before { opacity: 0.85; }
body::after {
	content: '';
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 3;
	background: radial-gradient(ellipse 100% 100% at 50% 50%, transparent 55%, rgba(0,0,0,0.12) 90%, rgba(0,0,0,0.22) 100%);
	transition: opacity 0.5s var(--ease-soft);
}
[data-theme="light"] body::after {
	background: radial-gradient(ellipse 100% 100% at 50% 50%, transparent 60%, rgba(0,0,0,0.04) 90%, rgba(0,0,0,0.08) 100%);
}
a { color: var(--3d-pale); text-decoration: none; transition: color 0.2s var(--ease); }
a:hover { color: var(--3d-pale); text-decoration: underline; }
a:focus-visible { outline: 2px solid var(--3d-accent); outline-offset: 2px; border-radius: 2px; }

/* ========== KÖD – NYUGODT MOZGÓ ATMOSZFÉRA ========== */
.cemetery-fog {
	position: fixed;
	inset: -30%;
	pointer-events: none;
	z-index: 2;
	overflow: hidden;
}
.cemetery-fog-layer {
	position: absolute;
	inset: 0;
	background: 
		radial-gradient(ellipse 100% 70% at 50% 85%, var(--3d-fog) 0%, transparent 45%),
		radial-gradient(ellipse 80% 60% at 25% 70%, var(--3d-fog-soft) 0%, transparent 50%),
		radial-gradient(ellipse 85% 55% at 75% 72%, var(--3d-fog) 0%, transparent 48%);
	animation: fog-drift 22s ease-in-out infinite;
}
.cemetery-fog-layer:nth-child(2) { animation-delay: -5s; opacity: 1; animation-duration: 26s; }
.cemetery-fog-layer:nth-child(3) { animation-delay: -12s; opacity: 0.9; animation-duration: 30s; }
@keyframes fog-drift {
	0%, 100% { transform: translate(0, 0) scale(1); opacity: 1; }
	33% { transform: translate(4%, -2%) scale(1.03); }
	66% { transform: translate(-3%, 2%) scale(0.98); }
}
[data-theme="light"] .cemetery-fog-layer {
	opacity: 0.75;
}
[data-theme="light"] .cemetery-fog-layer:nth-child(2) { opacity: 0.7; }
[data-theme="light"] .cemetery-fog-layer:nth-child(3) { opacity: 0.65; }

/* ========== TEMETŐI LEVELEK / POR – LASSÚ ESÉS ========== */
.cemetery-leaves {
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 2;
	overflow: hidden;
}
.leaf {
	position: absolute;
	width: 10px;
	height: 10px;
	background: radial-gradient(circle, rgba(200,175,130,0.7) 0%, rgba(160,140,100,0.5) 40%, transparent 70%);
	border-radius: 50%;
	animation: leaf-fall 18s linear infinite;
	box-shadow: 0 0 8px rgba(180,160,120,0.4);
}
.leaf-1 { left: 5%; animation-delay: 0s; animation-duration: 20s; }
.leaf-2 { left: 25%; animation-delay: -4s; animation-duration: 22s; width: 8px; height: 8px; }
.leaf-3 { left: 45%; animation-delay: -8s; animation-duration: 19s; opacity: 0.95; }
.leaf-4 { left: 65%; animation-delay: -2s; animation-duration: 24s; width: 9px; height: 9px; }
.leaf-5 { left: 85%; animation-delay: -6s; animation-duration: 21s; }
.leaf-6 { left: 92%; animation-delay: -11s; animation-duration: 23s; opacity: 0.9; }
@keyframes leaf-fall {
	0% { transform: translateY(-10%) translateX(0) rotate(0deg); opacity: 0; }
	5% { opacity: 0.85; }
	95% { opacity: 0.75; }
	100% { transform: translateY(110vh) translateX(30px) rotate(360deg); opacity: 0; }
}
[data-theme="light"] .leaf {
	background: radial-gradient(circle, rgba(100,85,60,0.65) 0%, rgba(75,65,45,0.5) 40%, transparent 70%);
	box-shadow: 0 0 8px rgba(70,60,40,0.4);
}

/* ========== HEADER – ÉLÉNK, KIFINOMULT ========== */
.site-header {
	position: relative;
	z-index: 10;
	background: 
		linear-gradient(135deg, rgba(28,42,32,0.98) 0%, var(--3d-surface) 50%, var(--3d-deep) 100%),
		radial-gradient(ellipse 100% 60% at 50% 0%, rgba(45,75,55,0.35) 0%, transparent 60%);
	border-bottom: 1px solid var(--3d-border);
	padding: 1rem 2rem;
	box-shadow: 0 12px 40px rgba(0,0,0,0.5), 0 0 60px var(--hero-glow), inset 0 1px 0 rgba(255,255,255,0.08);
	animation: header-shine 8s var(--ease-soft) infinite;
}
@keyframes header-shine {
	0%, 100% { box-shadow: 0 12px 40px rgba(0,0,0,0.5), 0 0 60px var(--hero-glow), inset 0 1px 0 rgba(255,255,255,0.08); }
	50% { box-shadow: 0 12px 48px rgba(0,0,0,0.45), 0 0 80px var(--3d-glow-strong), inset 0 1px 0 rgba(255,255,255,0.1); }
}
.site-header .wrap {
	width: 100%;
	max-width: var(--content-max);
	margin: 0 auto;
	padding-left: var(--3d-content-padding-x);
	padding-right: var(--3d-content-padding-x);
	box-sizing: border-box;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: clamp(0.75rem, 2vw, 1.25rem);
}
.site-title { order: 1; }
.site-header .theme-toggle { order: 3; }
.site-header nav { order: 2; }
.site-title {
	margin: 0;
	font-family: var(--font-head);
	font-size: 1.55rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	transition: transform 0.4s var(--ease-out-expo);
}
.site-title a { color: var(--3d-text); }
.site-title a:hover { color: var(--3d-pale); text-decoration: none; transform: scale(1.02); }
.nav-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 1.75rem;
	flex-wrap: wrap;
	justify-content: flex-end;
	min-width: 0;
}
.nav-menu li {
	min-width: 0;
}
.nav-menu a {
	color: var(--3d-muted);
	font-size: 0.95rem;
	font-weight: 500;
	transition: color 0.3s var(--ease-soft), transform 0.3s var(--ease-out-expo);
	position: relative;
}
.nav-menu a::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: -4px;
	width: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--3d-accent), transparent);
	transition: width 0.4s var(--ease-out-expo), left 0.4s var(--ease-out-expo);
	transform: translateX(-50%);
}
.nav-menu a:hover { color: var(--3d-pale); transform: translateY(-2px); }
.nav-menu a:hover::after { width: 100%; left: 50%; }

/* Téma váltó gomb – nappal/éjszaka */
.theme-toggle {
	position: relative;
	width: 44px;
	height: 44px;
	border: 1px solid var(--3d-border);
	background: var(--3d-panel);
	border-radius: 50%;
	cursor: pointer;
	transition: transform 0.35s var(--ease-out-expo), background 0.4s, border-color 0.4s, box-shadow 0.4s;
	display: flex;
	align-items: center;
	justify-content: center;
}
.theme-toggle:hover {
	transform: scale(1.08);
	background: var(--3d-elevated);
	box-shadow: 0 4px 20px var(--3d-shadow);
}
.theme-toggle:focus-visible {
	outline: 2px solid var(--3d-accent);
	outline-offset: 3px;
}
.theme-toggle-icon {
	position: absolute;
	width: 20px;
	height: 20px;
	transition: opacity 0.4s var(--ease-soft), transform 0.4s var(--ease-out-expo);
}
.theme-toggle-sun {
	background: radial-gradient(circle at 30% 30%, #f5e6a0, #e8c545);
	border-radius: 50%;
	box-shadow: 0 0 12px rgba(232,197,69,0.5);
}
.theme-toggle-moon {
	background: radial-gradient(circle at 65% 35%, #c0c8d0, #7a8590);
	border-radius: 50%;
	box-shadow: inset -4px -2px 0 0 rgba(255,255,255,0.15);
}
[data-theme="dark"] .theme-toggle-sun { opacity: 1; transform: scale(1) rotate(0deg); }
[data-theme="dark"] .theme-toggle-moon { opacity: 0; transform: scale(0.6) rotate(-90deg); pointer-events: none; }
[data-theme="light"] .theme-toggle-moon { opacity: 1; transform: scale(1) rotate(0deg); }
[data-theme="light"] .theme-toggle-sun { opacity: 0; transform: scale(0.6) rotate(90deg); pointer-events: none; }

/* Téma átmenet – fő blokkok */
.site-header, .hero-cemetery, .ktp-section, .site-footer,
.nav-menu a, .site-title a { transition: background 0.5s var(--ease-soft), color 0.4s var(--ease-soft), border-color 0.4s, box-shadow 0.5s var(--ease-soft); }

/* ========== MAIN – MÉRETARÁNYOS TARTALOM TÉR ========== */
.site-main {
	position: relative;
	z-index: 5;
	width: 100%;
	max-width: var(--content-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--3d-content-padding-x);
	min-height: 0;
	transform-style: preserve-3d;
	perspective: 1200px;
	box-sizing: border-box;
	min-width: 0;
}
.site-main > * {
	box-sizing: border-box;
	min-width: 0;
}

/* ========== HERO – ÉLÉNK FEJLÉCKÉP, KIFINOMULT ANIMÁCIÓK ========== */
.hero-cemetery {
	--hero-parallax-y: 0px;
	position: relative;
	z-index: 2;
	text-align: center;
	padding: clamp(2.5rem, 8vw, 4.5rem) var(--3d-content-padding-x);
	margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
	background: 
		linear-gradient(180deg, rgba(5,9,13,0.95) 0%, rgba(7,14,18,0.96) 32%, rgba(9,18,15,0.98) 70%, rgba(7,15,11,0.98) 100%),
		radial-gradient(ellipse 100% 65% at 50% 100%, rgba(20,40,26,0.9) 0%, transparent 60%),
		linear-gradient(180deg, var(--3d-panel) 0%, var(--3d-surface) 52%, var(--3d-deep) 100%);
	background-image: 
		linear-gradient(190deg, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.65) 24%, rgba(0,0,0,0.25) 55%, rgba(0,0,0,0.8) 100%),
		radial-gradient(ellipse 130% 90% at 50% 90%, rgba(40,80,50,0.5) 0%, transparent 60%),
		var(--theme-hero-bg);
	background-size: cover, cover, cover;
	background-position: center;
	background-repeat: no-repeat;
	border-radius: var(--3d-radius);
	border: 1px solid rgba(255,255,255,0.15);
	box-shadow: var(--3d-shadow-strong), 0 0 140px var(--3d-glow-strong), inset 0 1px 0 rgba(255,255,255,0.08);
	transform: translateZ(32px);
	animation: ktp-hero-in 1s var(--ease-out-expo) backwards;
	overflow: hidden;
	perspective: 1000px;
	filter: brightness(1.12) contrast(1.1) saturate(1.05);
}
[data-theme="light"] .hero-cemetery {
	background-image: 
		linear-gradient(180deg, rgba(255,255,255,0.55) 0%, rgba(242,249,243,0.5) 32%, rgba(232,242,235,0.6) 100%),
		radial-gradient(ellipse 130% 90% at 50% 105%, rgba(120,170,130,0.32) 0%, transparent 62%),
		var(--theme-hero-bg);
}
.hero-cemetery::after {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	box-shadow: inset 0 0 100px rgba(0,0,0,0.08);
	pointer-events: none;
	animation: hero-vignette 6s var(--ease-soft) infinite;
}
@keyframes hero-vignette {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.85; }
}
@keyframes ktp-hero-in {
	from { opacity: 0; transform: translateZ(24px) translateY(40px) scale(0.98); }
	to { opacity: 1; transform: translateZ(24px) translateY(0) scale(1); }
}
.hero-cemetery h1 {
	animation: ktp-fade-up 0.8s var(--ease-out-expo) 0.15s backwards;
	position: relative;
}
.hero-cemetery h1::after {
	content: '';
	position: absolute;
	bottom: -8px;
	left: 50%;
	width: 60px;
	height: 3px;
	background: linear-gradient(90deg, transparent, var(--3d-accent), transparent);
	border-radius: 2px;
	transform: translateX(-50%) scaleX(0);
	animation: title-underline 1s var(--ease-out-expo) 0.6s forwards;
	box-shadow: 0 0 20px var(--3d-glow);
}
@keyframes title-underline {
	to { transform: translateX(-50%) scaleX(1); }
}
.hero-cemetery .tagline { animation: ktp-fade-up 0.8s var(--ease-out-expo) 0.35s backwards; }
.hero-cemetery .hero-ctas { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; margin-top: 2rem; animation: ktp-fade-up 0.8s var(--ease-out-expo) 0.5s backwards; }
.hero-cemetery .cta { animation: none; margin-top: 0; }
@keyframes ktp-fade-up {
	from { opacity: 0; transform: translateY(20px); }
	to { opacity: 1; transform: translateY(0); }
}
.hero-cemetery::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: radial-gradient(ellipse 100% 50% at 50% 0%, var(--3d-fog-soft) 0%, transparent 60%);
	pointer-events: none;
	transform: translateY(calc(-1 * var(--hero-parallax-y, 0px)));
	transition: transform 0.1s linear;
}
[data-theme="light"] .hero-cemetery::before {
	opacity: 0.85;
}
/* Hero – élénk fénycsík, kifinomult mozgás */
.hero-sparkle {
	position: absolute;
	inset: 0;
	pointer-events: none;
	border-radius: inherit;
	overflow: hidden;
}
.hero-sparkle::after {
	content: '';
	position: absolute;
	top: -50%;
	left: -50%;
	width: 200%;
	height: 200%;
	background: linear-gradient(105deg, transparent 26%, rgba(255,255,255,0.12) 36%, rgba(160,220,170,0.22) 50%, rgba(255,255,255,0.12) 64%, transparent 74%);
	animation: ktp-sparkle 12s var(--ease-soft) infinite;
}
@keyframes ktp-sparkle {
	0%, 100% { transform: translateX(0) translateY(0) scale(1); opacity: 0.9; }
	50% { transform: translateX(5%) translateY(3%) scale(1.08); opacity: 1; }
}
/* Dekoratív elemek – kifinomult lebegés */
.theme-deco {
	position: absolute;
	pointer-events: none;
	opacity: 0.85;
}
.theme-deco-candle {
	width: 52px;
	height: 52px;
	left: 10%;
	top: 50%;
	transform: translateY(-50%);
	background: var(--theme-candle-icon) center/contain no-repeat;
	animation: ktp-float-creep 5.5s var(--ease-soft) infinite;
	filter: drop-shadow(0 0 24px rgba(90,160,80,0.65)) brightness(1.1);
}
.theme-deco-flower {
	width: 64px;
	height: 64px;
	right: 8%;
	top: 45%;
	background: var(--theme-decoration) center/contain no-repeat;
	animation: ktp-float-creep 6.5s var(--ease-soft) 0.8s infinite;
	filter: drop-shadow(0 0 20px rgba(80,140,70,0.6)) brightness(1.08);
}
@keyframes ktp-float {
	0%, 100% { transform: translateY(0) rotate(0deg); }
	50% { transform: translateY(-16px) rotate(3deg); }
}
@keyframes ktp-float-creep {
	0%, 100% { transform: translateY(0) rotate(0deg) scale(1); }
	33% { transform: translateY(-10px) rotate(2deg) scale(1.03); }
	66% { transform: translateY(-6px) rotate(-1deg) scale(0.98); }
}
.hero-cemetery .theme-deco-candle { animation: ktp-float-creep 5.5s var(--ease-soft) infinite; }
.hero-cemetery .theme-deco-flower { animation: ktp-float-creep 6.5s var(--ease-soft) 0.8s infinite; }
/* Lágy fénygömbök a hero háttérben – nappal is jól láthatóak */
.hero-glow-orb {
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
	filter: blur(45px);
	opacity: 0.7;
	animation: orb-float 10s var(--ease-soft) infinite;
}
.hero-glow-orb--1 {
	width: 200px;
	height: 200px;
	background: radial-gradient(circle, var(--3d-glow-strong) 0%, rgba(100,180,110,0.4) 40%, transparent 70%);
	top: 20%;
	left: 15%;
	animation-delay: 0s;
}
.hero-glow-orb--2 {
	width: 160px;
	height: 160px;
	background: radial-gradient(circle, rgba(100,180,110,0.5) 0%, rgba(80,150,90,0.3) 50%, transparent 70%);
	bottom: 25%;
	right: 12%;
	animation-delay: -3s;
}
.hero-glow-orb--3 {
	width: 120px;
	height: 120px;
	background: radial-gradient(circle, rgba(90,170,100,0.4) 0%, transparent 65%);
	top: 55%;
	left: 50%;
	transform: translateX(-50%);
	animation-delay: -6s;
	animation-duration: 14s;
}
@keyframes orb-float {
	0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.7; }
	50% { transform: translate(15px, -10px) scale(1.1); opacity: 0.9; }
}
[data-theme="light"] .hero-glow-orb {
	opacity: 0.5;
	filter: blur(50px);
	animation: orb-float-light 10s var(--ease-soft) infinite;
}
[data-theme="light"] .hero-glow-orb--2 { animation-delay: -3s; }
[data-theme="light"] .hero-glow-orb--3 {
	background: radial-gradient(circle, rgba(80,150,90,0.25) 0%, transparent 65%);
	opacity: 0.4;
}
@keyframes orb-float-light {
	0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.45; }
	50% { transform: translate(15px, -10px) scale(1.1); opacity: 0.6; }
}
[data-theme="light"] .hero-glow-orb--1 {
	background: radial-gradient(circle, var(--3d-glow-strong) 0%, rgba(90,160,100,0.25) 40%, transparent 70%);
}
[data-theme="light"] .hero-glow-orb--2 {
	background: radial-gradient(circle, rgba(80,150,90,0.35) 0%, rgba(70,140,80,0.2) 50%, transparent 70%);
}
/* Glow pulse – szekciók alatt, nappal is jól látható */
.ktp-section::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 70%;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--3d-accent), transparent);
	opacity: 0.65;
	transform: translateX(-50%);
	animation: ktp-glow-pulse 2.5s ease-in-out infinite;
	box-shadow: 0 0 16px var(--3d-glow);
}
@keyframes ktp-glow-pulse {
	0%, 100% { opacity: 0.5; }
	50% { opacity: 0.9; }
}
.hero-cemetery h1 {
	margin: 0 0 0.5rem 0;
	font-family: var(--font-head);
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 700;
	color: var(--3d-pale);
	text-shadow: 0 2px 20px rgba(0,0,0,0.35), 0 0 40px var(--3d-glow-strong);
	letter-spacing: 0.04em;
}
.hero-cemetery .tagline {
	margin: 0;
	color: var(--3d-text);
	font-size: 1.15rem;
	text-shadow: 0 1px 14px rgba(0,0,0,0.35);
	letter-spacing: 0.02em;
}
.hero-cemetery .hero-value {
	margin: 0.75rem auto 0;
	font-size: 1rem;
	color: var(--3d-muted);
	max-width: 36em;
	animation: ktp-fade-up 0.8s var(--ease-out-expo) 0.4s backwards;
}
.hero-cemetery .cta {
	display: inline-block;
	margin-top: 2rem;
	padding: 1rem 2.25rem;
	background: var(--3d-accent);
	color: #fff;
	border-radius: var(--3d-radius-sm);
	font-weight: 600;
	font-size: 1.05rem;
	border: 1px solid rgba(255,255,255,0.15);
	box-shadow: 0 8px 28px var(--3d-glow), 0 0 0 1px rgba(255,255,255,0.08);
	transition: transform 0.35s var(--ease-out-expo), box-shadow 0.35s var(--ease-soft), background 0.3s;
	animation: ktp-cta-glow 4s var(--ease-soft) infinite;
}
.hero-cemetery .cta:hover {
	background: var(--3d-accent-hover);
	color: #fff;
	text-decoration: none;
	transform: translateY(-5px) scale(1.03);
	box-shadow: 0 16px 44px var(--3d-glow), 0 0 36px var(--3d-glow-strong);
	animation: none;
}
.hero-cemetery .cta-secondary {
	background: transparent;
	border: 2px solid var(--3d-accent);
	color: var(--3d-pale);
	box-shadow: none;
}
.hero-cemetery .cta-secondary:hover {
	background: rgba(45,90,56,0.25);
	color: var(--3d-pale);
	border-color: var(--3d-accent-hover);
}
[data-theme="light"] .hero-cemetery .cta-secondary { color: var(--3d-text); border-color: var(--3d-accent); }
[data-theme="light"] .hero-cemetery .cta-secondary:hover { background: var(--3d-glow-strong); color: var(--3d-text); }
@keyframes ktp-cta-glow {
	0%, 100% { box-shadow: 0 8px 28px var(--3d-glow), 0 0 0 1px rgba(255,255,255,0.08); }
	50% { box-shadow: 0 12px 36px var(--3d-glow), 0 0 24px var(--3d-glow-strong); }
}

/* ========== SZEKCIÓK – MÉRETARÁNYOS PADDING, 3D RÉTEGEK ========== */
.ktp-section {
	position: relative;
	margin-bottom: clamp(0.75rem, 2vw, 1.25rem);
	padding: var(--section-padding-y) var(--3d-content-padding-x);
	background: 
		linear-gradient(180deg, var(--3d-panel), var(--3d-surface)),
		radial-gradient(ellipse 100% 100% at 50% 0%, rgba(40,60,45,0.12) 0%, transparent 70%);
	border-radius: var(--3d-radius);
	border: 1px solid var(--3d-border);
	box-shadow: var(--3d-shadow);
	transform: translateZ(0);
	transition: transform 0.45s var(--ease-out-expo), box-shadow 0.45s var(--ease-soft), border-color 0.35s;
	opacity: 1;
	width: 100%;
	box-sizing: border-box;
	min-width: 0;
}
.ktp-section:last-of-type {
	margin-bottom: 0.25rem;
}
.ktp-section.ktp-inview,
.ktp-section:nth-of-type(1),
.ktp-section:nth-of-type(2),
.ktp-section:nth-of-type(3),
.ktp-section:nth-of-type(n+4) {
	animation: ktp-section-in 0.7s var(--ease) forwards;
}
.ktp-section:nth-of-type(1){ animation-delay: 0.1s; }
.ktp-section:nth-of-type(2){ animation-delay: 0.2s; }
.ktp-section:nth-of-type(3){ animation-delay: 0.3s; }
.ktp-section:nth-of-type(n+4){ animation-delay: 0.4s; }
.ktp-section.ktp-inview { animation-delay: 0s; }
/* Ha az animáció nem fut (pl. reduced motion), a tartalom mindig látható marad */
@keyframes ktp-section-in {
	from { opacity: 0.6; transform: translateZ(0) translateY(20px) scale(0.998); }
	to { opacity: 1; transform: translateZ(0) translateY(0) scale(1); }
}
/* Single memorial: egy szekció, ne legyen késleltetett belépés */
.single-memorial.ktp-section { animation: none; }
.ktp-section:hover {
	transform: translateZ(14px) scale(1.005);
	box-shadow: 0 36px 80px rgba(0,0,0,0.5), 0 0 32px var(--3d-glow);
	border-color: rgba(255,255,255,0.1);
}
.ktp-section h2 {
	margin: 0 0 1.125rem 0;
	font-family: var(--font-head);
	font-size: 1.55rem;
	font-weight: 600;
	color: var(--3d-pale);
	text-shadow: 0 1px 16px rgba(0,0,0,0.35), 0 0 24px var(--3d-glow-strong);
	position: relative;
	display: inline-block;
}
[data-theme="light"] .ktp-section h2 {
	color: var(--3d-text);
	text-shadow: 0 1px 2px rgba(0,0,0,0.06);
}
.ktp-section h2::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -6px;
	width: 65%;
	height: 3px;
	background: linear-gradient(90deg, var(--3d-accent), transparent);
	border-radius: 2px;
	animation: ktp-glow-pulse 2.5s ease-in-out infinite;
	box-shadow: 0 0 14px var(--3d-glow);
	opacity: 0.9;
}
.ktp-section p { color: var(--3d-muted); margin: 0 0 1rem 0; }
.ktp-section .entry-content { color: var(--3d-muted); line-height: 1.75; }
.ktp-section .entry-content p { margin-bottom: 1rem; }
.ktp-section .entry-content ul, .ktp-section .entry-content ol { margin: 0 0 1rem 1.5rem; color: var(--3d-muted); }
.ktp-section .entry-content a { color: var(--3d-pale); }

/* ========== 3D KÁRTYÁK – TEMETŐI MÉLYSÉG, MOZGÁS ========== */
.ktp-grid {
	perspective: 1200px;
	transform-style: preserve-3d;
	display: grid;
	gap: 1.75rem;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.ktp-card {
	position: relative;
	transform-style: preserve-3d;
	transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease);
}
.ktp-card::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(105deg, transparent 0%, rgba(255,255,255,0.03) 45%, transparent 55%);
	opacity: 0;
	transition: opacity 0.4s var(--ease);
	pointer-events: none;
}
.ktp-card:hover::before { opacity: 1; animation: ktp-shimmer 1.2s var(--ease) forwards; }
@keyframes ktp-shimmer {
	0% { transform: translateX(-100%) skewX(-12deg); }
	100% { transform: translateX(200%) skewX(-12deg); }
}
.ktp-card {
	animation: ktp-card-float 16s var(--ease-soft) infinite;
	transition: transform 0.5s var(--ease-out-expo), box-shadow 0.5s var(--ease-soft);
}
.ktp-card:nth-child(odd) { animation-delay: 0s; }
.ktp-card:nth-child(even) { animation-delay: -4s; }
.ktp-card:nth-child(3n) { animation-delay: -8s; }
@keyframes ktp-card-float {
	0%, 100% { transform: translateY(0) rotateY(0deg); }
	50% { transform: translateY(-8px) rotateY(0.5deg); }
}
.ktp-card:hover {
	transform: rotateY(6deg) rotateX(2deg) translateZ(18px) scale(1.03) !important;
	box-shadow: 0 28px 60px rgba(0,0,0,0.4), 0 0 28px var(--3d-glow) !important;
	animation: none;
}
.ktp-card a {
	background: var(--3d-panel) !important;
	border: 1px solid var(--3d-border) !important;
	box-shadow: var(--3d-shadow) !important;
}
.ktp-card-img-placeholder {
	background: linear-gradient(145deg, var(--3d-accent) 0%, var(--3d-deep) 100%) !important;
}
.ktp-wall {
	background: linear-gradient(180deg, var(--3d-panel), var(--3d-surface)) !important;
	border: 1px solid var(--3d-border) !important;
	border-radius: var(--3d-radius-sm) !important;
}
.ktp-wall-list li {
	background: var(--3d-accent) !important;
	color: var(--3d-text) !important;
}

/* ========== SÍRKERT, GYERTYA, GOMBOK ========== */
.ktp-sirkert {
	box-shadow: var(--3d-shadow-strong), inset 0 0 100px rgba(0,0,0,0.25) !important;
	border-radius: var(--3d-radius) !important;
	border: 1px solid var(--3d-border) !important;
}
/* Kisméretű sírkert előnézet a kártyákban – ugyanaz a 3D sírkő */
.ktp-card-img--sirkert {
	position: relative;
	overflow: visible;
	padding: 0.5rem 0.5rem 0;
	perspective: 550px;
}
.ktp-card-img--sirkert .ktp-sirkert {
	transform: scale(0.72);
	transform-origin: top center;
	margin: -10px 0 -28px;
	box-shadow: none !important;
	border-radius: var(--3d-radius-sm) !important;
}
.ktp-card-img--sirkert .ktp-sirkert-inner {
	transform-style: preserve-3d;
}
.ktp-candle { filter: drop-shadow(0 6px 16px rgba(0,0,0,0.5)); }
.ktp-print-btn, .ktp-ambient-toggle {
	background: var(--3d-panel) !important;
	border: 1px solid var(--3d-border) !important;
	color: var(--3d-text) !important;
	padding: 0.5rem 1rem !important;
	border-radius: var(--3d-radius-sm) !important;
	transition: background 0.2s, color 0.2s !important;
}
.ktp-print-btn:hover, .ktp-ambient-toggle:hover {
	background: var(--3d-accent) !important;
	color: var(--3d-pale) !important;
}

/* ========== JELZŐÚT (BREADCRUMB) – EGYSÉGES SZÉLESSÉG ========== */
.ktp-breadcrumb {
	font-size: 0.9rem;
	color: var(--3d-muted);
	margin: 0 auto clamp(0.75rem, 2vw, 1.25rem);
	padding: 0 var(--3d-content-padding-x);
	max-width: var(--content-max);
	box-sizing: border-box;
}
.ktp-breadcrumb a { color: var(--3d-muted); text-decoration: none; }
.ktp-breadcrumb a:hover { color: var(--3d-text); }
.ktp-breadcrumb-sep { margin: 0 0.35rem; opacity: 0.7; }
.ktp-breadcrumb-current { color: var(--3d-text); }

/* ========== SINGLE EMÉLKOLDAL – MÉRETARÁNYOS ========== */
.single-memorial {
	position: relative;
	max-width: var(--content-max);
	margin: 0 auto;
	padding: var(--section-padding-y) var(--3d-content-padding-x);
	box-sizing: border-box;
}
.single-memorial .memorial-header { margin-bottom: clamp(1rem, 3vw, 1.5rem); }
.single-memorial .memorial-meta {
	padding: var(--section-padding-y) var(--section-padding-x);
	background: linear-gradient(165deg, var(--3d-panel) 0%, var(--3d-surface) 50%, var(--3d-elevated) 100%);
	border-radius: var(--3d-radius);
	border: 1px solid var(--3d-border);
	box-shadow: var(--3d-shadow), inset 0 1px 0 rgba(255,255,255,0.04);
	position: relative;
	overflow: hidden;
}
.single-memorial .memorial-meta::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, transparent, var(--3d-accent), transparent);
	opacity: 0.8;
}
.single-memorial .memorial-title {
	font-family: var(--font-head);
	font-size: clamp(1.65rem, 4vw, 2.25rem);
	color: var(--3d-pale);
	margin: 0 0 0.5rem 0;
	text-shadow: 0 1px 20px rgba(0,0,0,0.4);
	letter-spacing: 0.02em;
}
.single-memorial .memorial-owner,
.single-memorial .memorial-dates {
	margin: 0.35rem 0;
	color: var(--3d-muted);
	font-size: 1rem;
}
.single-memorial .memorial-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--3d-border);
}
.single-memorial .memorial-stats .ktp-memorial-years,
.single-memorial .memorial-stats .ktp-memorial-views {
	font-size: 0.95rem;
	color: var(--3d-muted);
}
.single-memorial .memorial-sirkert { margin: clamp(1.25rem, 4vw, 2rem) 0; min-height: 180px; }
.single-memorial .memorial-sir-heading {
	margin: 0 0 1rem 0;
	font-size: 1.2rem;
	font-weight: 600;
	color: var(--3d-pale);
	text-align: center;
}
[data-theme="light"] .single-memorial .memorial-sir-heading { color: var(--3d-text); }
.single-memorial .ktp-sirkert { border-radius: var(--3d-radius); overflow: hidden; }
.single-memorial .ktp-sir .ktp-sir-label { color: rgba(255,255,255,0.85); }
.single-memorial .ktp-sir .ktp-sir-dates { color: rgba(255,255,255,0.9); }
.single-memorial .memorial-gallery-wrap { margin: clamp(1.25rem, 4vw, 2rem) 0; }
.single-memorial .ktp-memorial-gallery--empty { padding: var(--section-padding-y); text-align: center; background: var(--3d-panel); border-radius: var(--3d-radius-sm); border: 1px dashed var(--3d-border); }
.single-memorial .ktp-memorial-gallery-empty { margin: 0; color: var(--3d-muted); font-size: 1rem; }
.single-memorial .memorial-story-heading {
	margin: 0 0 1rem 0;
	font-size: 1.2rem;
	font-weight: 600;
	color: var(--3d-pale);
}
[data-theme="light"] .single-memorial .memorial-story-heading { color: var(--3d-text); }
.single-memorial .memorial-story {
	margin: clamp(1.25rem, 4vw, 2rem) 0;
	padding: var(--section-padding-x);
	background:
		linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.02) 24%, rgba(0,0,0,0.05) 100%),
		var(--3d-panel);
	border-radius: var(--3d-radius-sm);
	border: 1px solid var(--3d-border);
	position: relative;
	overflow: hidden;
}
.single-memorial .memorial-story::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(255,255,255,0.08) 0%, transparent 22%, transparent 78%, rgba(255,255,255,0.06) 100%),
		repeating-linear-gradient(180deg, rgba(255,255,255,0.02) 0, rgba(255,255,255,0.02) 24px, transparent 24px, transparent 26px);
	opacity: 0.65;
	pointer-events: none;
	mix-blend-mode: soft-light;
}
.single-memorial .memorial-actions {
	margin-top: clamp(1.25rem, 4vw, 2rem);
	padding: var(--section-padding-x) 0;
	display: flex;
	flex-wrap: wrap;
	gap: clamp(0.75rem, 2vw, 1.25rem);
	align-items: center;
	border-top: 1px solid var(--3d-border);
}
.single-memorial .memorial-actions-primary,
.single-memorial .memorial-actions-secondary {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: center;
}
.single-memorial .memorial-actions-revenue {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: center;
	margin-left: auto;
}
.single-memorial .entry-content { color: var(--3d-muted); line-height: 1.8; }
@media (max-width: 640px) {
	.single-memorial .memorial-actions-revenue { margin-left: 0; width: 100%; }
}

/* ========== CÍMEK, OLDALAK, ARCHÍVUM – MINDENHOL EGY TÉMA ========== */
.page-title-cemetery,
.archive .site-main > h1,
.site-main > h1.page-title-cemetery {
	font-family: var(--font-head);
	font-size: clamp(1.5rem, 3.5vw, 2rem);
	color: var(--3d-pale);
	margin: 0 0 1.5rem 0;
	text-shadow: 0 1px 18px rgba(0,0,0,0.4);
}
[data-theme="light"] .page-title-cemetery { color: var(--3d-text); text-shadow: 0 1px 2px rgba(0,0,0,0.06); }
.ktp-page-header { padding: var(--section-padding-y) var(--section-padding-x); margin-bottom: 0.5rem; }
.ktp-page-header .archive-description { margin: 0.5rem 0 0; color: var(--3d-muted); font-size: 1rem; }
article .entry-title { font-family: var(--font-head); font-size: 1.35rem; margin: 0 0 0.5rem 0; }
article .entry-title a { color: var(--3d-pale); text-decoration: none; }
article .entry-title a:hover { color: var(--3d-text); text-decoration: underline; }
[data-theme="light"] article .entry-title a { color: var(--3d-text); }
article .entry-content { color: var(--3d-muted); line-height: 1.75; max-width: 72ch; }
article .entry-content a { color: var(--3d-pale); }
.ktp-section .entry-content { max-width: none; }

/* Lapozás – minden listás oldalon egységes */
.ktp-pagination-wrap { margin-top: clamp(1.25rem, 4vw, 2rem); padding: var(--section-padding-y) 0; }
.ktp-pagination-wrap .nav-links { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; align-items: center; }
.ktp-pagination-wrap .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.5rem;
	background: var(--3d-panel);
	border: 1px solid var(--3d-border);
	border-radius: var(--3d-radius-sm);
	color: var(--3d-text);
	font-weight: 500;
	text-decoration: none;
	transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.ktp-pagination-wrap .page-numbers:hover,
.ktp-pagination-wrap .page-numbers:focus {
	background: var(--3d-elevated);
	border-color: var(--3d-accent);
	color: var(--3d-pale);
}
.ktp-pagination-wrap .page-numbers.current { background: var(--3d-accent); border-color: var(--3d-accent); color: #fff; }
.ktp-pagination-wrap .page-numbers.dots { background: transparent; border-color: transparent; cursor: default; }
.ktp-pagination-wrap .page-numbers.prev,
.ktp-pagination-wrap .page-numbers.next { font-size: 1.25rem; }

/* ========== PLUGIN BLOKKOK – EGYSÉGES TÉMA SZÍNEK ÉS OLVASHATÓSÁG ========== */
.site-main .ktp-grid,
.site-main .ktp-wall,
.site-main .ktp-condolences,
.site-main .ktp-contact-wrap,
.site-main .ktp-dashboard,
.site-main .ktp-edit-memorial-wrap,
.site-main .ktp-memorial-form,
.site-main .ktp-form-message,
.site-main .ktp-no-results { color: var(--3d-text); }
.site-main .ktp-card-title,
.site-main .ktp-wall-title,
.site-main .ktp-condolences-title,
.site-main .ktp-contact-title,
.site-main .ktp-dashboard-title,
.site-main .ktp-edit-memorial-title { color: var(--3d-pale); }
[data-theme="light"] .site-main .ktp-card-title,
[data-theme="light"] .site-main .ktp-wall-title,
[data-theme="light"] .site-main .ktp-condolences-title,
[data-theme="light"] .site-main .ktp-contact-title,
[data-theme="light"] .site-main .ktp-dashboard-title,
[data-theme="light"] .site-main .ktp-edit-memorial-title { color: var(--3d-text); }
.site-main .ktp-muted,
.site-main .ktp-no-results-text,
.site-main .ktp-condolences-date,
.site-main .ktp-condolences-empty,
.site-main .ktp-dashboard-empty,
.site-main .ktp-contact-intro { color: var(--3d-muted); }
.site-main .ktp-card-body {
	padding: 0.9rem 1.1rem 1.1rem;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}
.site-main .ktp-card-dates {
	font-size: 0.9rem;
	color: var(--3d-muted);
}
.site-main .ktp-card-owner {
	font-size: 0.9rem;
	color: var(--3d-muted);
}
.site-main .ktp-card-candles {
	margin-top: 0.15rem;
	font-size: 0.9rem;
	color: var(--3d-pale);
}
.site-main .ktp-btn { background: var(--3d-accent); color: var(--3d-pale); border: 1px solid var(--3d-accent); }
.site-main .ktp-btn:hover { background: var(--3d-accent-hover); color: #fff; border-color: var(--3d-accent-hover); }
.site-main .ktp-btn--secondary { background: transparent; color: var(--3d-text); border-color: var(--3d-accent); }
.site-main .ktp-btn--secondary:hover { background: var(--3d-glow); color: var(--3d-text); }
.site-main .ktp-card a { background: var(--3d-panel); border-color: var(--3d-border); color: var(--3d-text); }
.site-main .ktp-wall-list li,
.site-main .ktp-condolences-item { background: var(--3d-glow); border-color: var(--3d-border); color: var(--3d-text); }
.site-main .ktp-contact-form input,
.site-main .ktp-contact-form textarea,
.site-main .ktp-condolences-form .ktp-condolence-author,
.site-main .ktp-condolences-form .ktp-condolence-message,
.site-main .ktp-memorial-form input,
.site-main .ktp-memorial-form select,
.site-main .ktp-memorial-form textarea { background: var(--3d-deep); border-color: var(--3d-border); color: var(--3d-text); }
.site-main .ktp-contact-form input:focus-visible,
.site-main .ktp-contact-form textarea:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--3d-accent); }
.site-main .ktp-contact-hint { display: block; margin-top: 0.35rem; font-size: 0.85rem; color: var(--3d-muted); }
.site-main .ktp-contact-message--success { background: var(--3d-glow); border-color: var(--3d-accent); color: var(--3d-text); }
.site-main .ktp-contact-message--error { background: rgba(120,40,40,0.15); border: 1px solid rgba(180,80,80,0.45); color: var(--3d-text); }
.site-main .ktp-contact-wrap { padding: 0.5rem 0 var(--section-padding-y); }
.site-main .ktp-btn:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--3d-bg), 0 0 0 5px var(--3d-accent); }
.site-main .ktp-dashboard,
.site-main .ktp-condolences,
.site-main .ktp-contact-form,
.site-main .ktp-edit-memorial-wrap,
.site-main .ktp-memorial-form { background: var(--3d-panel); border-color: var(--3d-border); }
.site-main .ktp-grid-search input[type=search] { background: var(--3d-deep); border-color: var(--3d-border); color: var(--3d-text); }
.site-main .ktp-grid-search input:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--3d-accent); }
.site-main .ktp-grid-search-clear { color: var(--3d-muted); }
.site-main .ktp-grid-search-clear:hover { color: var(--3d-text); }
.site-main .ktp-remember-block { background: var(--3d-panel); border-color: var(--3d-border); }
.site-main .ktp-remember-title { color: var(--3d-pale); }
.site-main .ktp-remember-list a { color: var(--3d-text); }
.site-main .ktp-remember-list a:hover { color: var(--3d-accent); }
.site-main .ktp-remember-empty { color: var(--3d-muted); }

/* ========== 404 – HIBA OLDAL ========== */
.error-404 {
	text-align: center;
	padding: clamp(2.5rem, 8vw, 4rem) var(--3d-content-padding-x);
}
.error-404 .page-title-cemetery { font-size: clamp(2rem, 6vw, 3.5rem); margin-bottom: 0.5rem; }
.error-404 p { color: var(--3d-muted); font-size: 1.1rem; margin-bottom: 1.5rem; }
.error-404 .back-link {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	background: var(--3d-accent);
	color: var(--3d-pale);
	border-radius: var(--3d-radius-sm);
	font-weight: 600;
	transition: background 0.2s, transform 0.2s;
}
.error-404 .back-link:hover { background: var(--3d-accent-hover); color: #fff; text-decoration: none; transform: translateY(-2px); }
.error-404 .back-link:focus-visible { outline: 2px solid var(--3d-accent); outline-offset: 2px; }

/* ========== FOOTER – MÉRETARÁNYOS ========== */
.site-footer {
	position: relative;
	z-index: 5;
	background: 
		linear-gradient(0deg, var(--3d-deep) 0%, var(--3d-bg) 100%),
		radial-gradient(ellipse 100% 60% at 50% 100%, rgba(25,40,30,0.3) 0%, transparent 60%);
	border-top: 1px solid var(--3d-border);
	padding: 1rem var(--3d-content-padding-x) 0;
	margin-top: 0;
	text-align: center;
	color: var(--3d-muted);
	font-size: 0.9rem;
	box-shadow: 0 -24px 60px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.03);
}
.site-footer::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	width: 50%;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--3d-accent), transparent);
	opacity: 0.4;
	transform: translateX(-50%);
	animation: ktp-glow-pulse 3s ease-in-out infinite;
}
.site-footer .wrap {
	width: 100%;
	max-width: var(--content-max);
	margin: 0 auto;
	padding: 0.5rem var(--3d-content-padding-x) 0;
	box-sizing: border-box;
	min-width: 0;
}
.site-footer-links { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; margin-bottom: 1rem; }
.site-footer-links a { color: var(--3d-muted); text-decoration: none; font-size: 0.95rem; }
.site-footer-links a:hover { color: var(--3d-text); }
.site-footer-credit { margin: 0; font-size: 0.9rem; color: var(--3d-muted); }
.site-footer-back { margin: 0.4rem 0 0; font-size: 0.9rem; }
.site-footer-back .ktp-back-to-top { color: var(--3d-muted); text-decoration: none; transition: color 0.2s; }
.site-footer-back .ktp-back-to-top:hover { color: var(--3d-text); }
.site-footer-back .ktp-back-to-top:focus-visible { outline: none; text-decoration: underline; box-shadow: 0 0 0 2px var(--3d-accent); border-radius: 4px; }
.site-footer-grief { margin: 0.75rem 0 0; font-size: 0.9rem; color: var(--3d-muted); }
.site-footer-grief a { color: var(--3d-accent); }
.site-footer-grief a:hover { color: var(--3d-accent-hover); }
.site-footer p { margin: 0; }
.site-footer a { color: var(--3d-muted); }
.site-footer a:hover { color: var(--3d-text); }

/* ========== WOOCOMMERCE ÜZLET – UGYANAZ A DESIGN MINDENHOL ========== */
body.woocommerce .site-header,
body.woocommerce-page .site-header { display: block !important; visibility: visible !important; position: relative; z-index: 20; }
/* Webshop üzlet és termékoldal: szélesebb tartalom (termékmodulok) */
body.ktp-woo-archive .site-main,
body.ktp-woo-single .site-main {
	max-width: var(--woo-max-width);
	margin-left: auto;
	margin-right: auto;
	padding: var(--section-padding-y) var(--3d-content-padding-x);
	width: 100%;
	box-sizing: border-box;
}
/* Kosár és pénztár: normál tartalomszélesség */
.ktp-woo-cart .site-main,
.ktp-woo-checkout .site-main {
	max-width: var(--content-max);
	margin-left: auto;
	margin-right: auto;
	padding: var(--section-padding-y) var(--3d-content-padding-x);
}
.ktp-woo-cart .ktp-section,
.ktp-woo-checkout .ktp-section {
	max-width: 100%;
	background: linear-gradient(180deg, var(--3d-panel), var(--3d-surface));
	border-radius: var(--3d-radius);
	border: 1px solid var(--3d-border);
	box-shadow: var(--3d-shadow);
	padding: var(--section-padding-y) var(--3d-content-padding-x);
	margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
}
.ktp-woo-cart .ktp-section:hover,
.ktp-woo-checkout .ktp-section:hover,
.ktp-woo-single .ktp-section:hover { transform: none; }
.ktp-woo-cart .ktp-page-header,
.ktp-woo-checkout .ktp-page-header { margin-bottom: 0.5rem; }
.ktp-back-to-home-wrap { margin: 0.75rem 0 0; }
.ktp-back-to-home-wrap .ktp-back-to-home { font-size: 1rem; font-weight: 500; color: var(--3d-muted); text-decoration: none; transition: color 0.2s; }
.ktp-back-to-home-wrap .ktp-back-to-home:hover { color: var(--3d-accent); }
.ktp-woo-cart .ktp-woo-cart-content,
.ktp-woo-checkout .ktp-woo-checkout-content { margin-top: 0; }
.ktp-woo-cart .woocommerce-ktp-content,
.ktp-woo-checkout .woocommerce-ktp-content {
	background: transparent;
	color: var(--3d-text);
	max-width: 100%;
}
.ktp-woo-cart .woocommerce-ktp-content .woocommerce,
.ktp-woo-checkout .woocommerce-ktp-content .woocommerce { background: transparent; }
/* Üzlet szekció: széles panel, terméklista kitölti a helyet */
.ktp-section.ktp-woo-archive {
	background: linear-gradient(180deg, var(--3d-panel), var(--3d-surface));
	border: 1px solid var(--3d-border);
	box-shadow: var(--3d-shadow);
	max-width: 100%;
	overflow: visible;
}
.ktp-section .woocommerce-ktp-content {
	width: 100%;
	min-width: 0;
	overflow-x: hidden;
}
.ktp-section.ktp-woo-single {
	background: linear-gradient(180deg, var(--3d-panel), var(--3d-surface));
	border: 1px solid var(--3d-border);
	box-shadow: var(--3d-shadow);
	max-width: 100%;
}
@media (min-width: 1024px) {
	.ktp-section.ktp-woo-archive,
	.ktp-section.ktp-woo-single { padding-left: var(--woo-section-padding, 2rem); padding-right: var(--woo-section-padding, 2rem); }
}
/* Breadcrumb webshop oldalakon is szélesebb sávban */
body.ktp-woo-archive .ktp-breadcrumb,
body.ktp-woo-single .ktp-breadcrumb {
	max-width: var(--woo-max-width, 1680px);
	margin-left: auto;
	margin-right: auto;
}
.ktp-woo-archive .woocommerce-products-header {
	margin-bottom: 1.5rem;
	padding-bottom: 0.5rem;
}
.ktp-woo-archive .woocommerce-products-header__title { margin: 0; }
/* ========== TERMÉKLISTA – EREDETI WEBSHOP ELRENDEZÉS: KÉP 1:1, EGYENLETES KÁRTYÁK ========== */
body.ktp-woo-archive .woocommerce ul.products,
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 1.5rem;
	max-width: 100%;
	margin: 0;
	width: 100%;
	align-items: stretch;
	list-style: none;
	padding: 0;
}
@media (min-width: 576px) {
	body.ktp-woo-archive .woocommerce ul.products,
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 1.5rem;
	}
}
@media (min-width: 768px) {
	body.ktp-woo-archive .woocommerce ul.products,
	.woocommerce ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: clamp(1.25rem, 3vw, 2.5rem);
	}
}
@media (min-width: 1024px) {
	.woocommerce ul.products { gap: clamp(1.5rem, 3.5vw, 2.5rem); }
}
@media (min-width: 1200px) {
	.woocommerce ul.products { gap: clamp(1.75rem, 4vw, 2.5rem); }
}
body.ktp-woo-archive .woocommerce ul.products li.product,
.woocommerce ul.products li.product {
	background: var(--3d-panel) !important;
	border: 1px solid var(--3d-border);
	border-radius: var(--woo-card-radius, 20px);
	box-shadow: var(--woo-card-shadow);
	transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.25s;
	overflow: hidden;
	display: flex !important;
	flex-direction: column !important;
	min-width: 0;
	height: auto;
}
/* Eredeti webshop: csak termékkép + cím + ár (ikon elrejtve a listában) */
.woocommerce ul.products li.product .ktp-product-icon {
	display: none !important;
}
body.ktp-woo-archive .woocommerce ul.products li.product > a,
.woocommerce ul.products li.product > a {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 1 auto;
	min-width: 0;
	min-height: 0;
	overflow: hidden;
	border-radius: var(--woo-card-radius, 20px);
	text-decoration: none;
	color: inherit;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
}
body.ktp-woo-archive .woocommerce ul.products li.product > a .woocommerce-loop-product__title,
body.ktp-woo-archive .woocommerce ul.products li.product > a .price,
.woocommerce ul.products li.product > a .woocommerce-loop-product__title,
.woocommerce ul.products li.product > a .price {
	padding: 0 1rem;
	margin: 0;
}
/* Képkeret – eredeti webshop: 1:1 négyzet, kép kitölti (cover), középre vágás */
.ktp-product-loop-image {
	position: relative;
	width: 100%;
	flex-shrink: 0;
	overflow: hidden;
	background: var(--3d-deep);
}
.ktp-product-loop-image::before {
	content: '';
	display: block;
	padding-top: 100%;
}
.ktp-product-loop-image > img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	image-rendering: auto;
	transition: transform 0.5s var(--ease);
}
.woocommerce ul.products li.product:hover .ktp-product-loop-image > img {
	transform: scale(1.04);
}
/* SVG/placeholder kép (nincs feltöltött fotó) – contain, középen */
.ktp-product-loop-image > img.ktp-product-svg-img,
.ktp-product-loop-image .ktp-product-svg-img {
	object-fit: contain;
	object-position: center;
	padding: 0.75rem;
	box-sizing: border-box;
}
.ktp-product-loop-image .ktp-loop-product-media {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.ktp-product-loop-image .ktp-loop-product-media .ktp-product-media,
.ktp-product-loop-image .ktp-loop-product-media .ktp-product-video,
.ktp-product-loop-image .ktp-loop-product-media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: transform 0.5s var(--ease);
}
.woocommerce ul.products li.product:hover .ktp-product-loop-image .ktp-loop-product-media img,
.woocommerce ul.products li.product:hover .ktp-product-loop-image .ktp-loop-product-media .ktp-product-video {
	transform: scale(1.04);
}
/* Régi struktúra fallback (ha nincs .ktp-product-loop-image): kép vagy media első gyerek */
.woocommerce ul.products li.product > a > img:first-of-type {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	object-position: center;
	flex-shrink: 0;
}

/* Termék badge-ek – vizuális jelzések a fontosabb termékekhez */
.ktp-product-loop-image {
	position: relative;
}
.ktp-product-badge {
	position: absolute;
	top: 0.5rem;
	left: 0.5rem;
	z-index: 2;
	padding: 0.15rem 0.65rem;
	border-radius: 999px;
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: #fff;
	background: linear-gradient(135deg, rgba(255,255,255,0.15), rgba(0,0,0,0.3));
	box-shadow: 0 4px 12px rgba(0,0,0,0.35);
	backdrop-filter: blur(6px);
}
.ktp-product-badge-label {
	display: block;
	max-width: 9.5rem;
	white-space: normal;
	line-height: 1.2;
}
.ktp-product-badge--base {
	background: linear-gradient(135deg, #2d6b3a, #3b8047);
}
.ktp-product-badge--tombstone {
	background: linear-gradient(135deg, #4e5c6a, #313a45);
}
.ktp-product-badge--candle {
	background: linear-gradient(135deg, #f39c12, #d35400);
}
.ktp-product-badge--flower {
	background: linear-gradient(135deg, #c0392b, #e74c3c);
}
.ktp-product-badge--featured {
	background: linear-gradient(135deg, #8e44ad, #9b59b6);
}
.woocommerce ul.products li.product > a > img.ktp-product-svg-img:first-of-type {
	object-fit: contain;
	padding: 0.75rem;
	box-sizing: border-box;
}
.woocommerce ul.products li.product > a > .ktp-loop-product-media:first-child {
	width: 100%;
	flex-shrink: 0;
	overflow: hidden;
	position: relative;
	background: var(--3d-deep);
}
.woocommerce ul.products li.product > a > .ktp-loop-product-media:first-child::before {
	content: '';
	display: block;
	padding-top: 100%;
}
.woocommerce ul.products li.product > a > .ktp-loop-product-media:first-child .ktp-product-media,
.woocommerce ul.products li.product > a > .ktp-loop-product-media:first-child .ktp-product-video,
.woocommerce ul.products li.product > a > .ktp-loop-product-media:first-child img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.woocommerce ul.products li.product > a:focus-visible {
	outline: none;
	box-shadow: inset 0 0 0 2px var(--3d-accent);
}
/* Terméknév és ár – eredeti webshop: egyértelmű, olvasható, egyenletes térköz */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	display: block;
	margin: 1rem 0 0;
	padding: 0 1rem;
	font-size: clamp(1rem, 1.6vw, 1.2rem);
	line-height: 1.35;
	min-height: 0;
	min-width: 0;
	max-width: 100%;
	color: var(--3d-text);
	font-weight: 600;
	flex-shrink: 0;
	overflow: visible;
	visibility: visible;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title a { color: inherit; text-decoration: none; }
.woocommerce ul.products li.product .price {
	margin: 0.5rem 0 0;
	padding: 0 1rem 1rem;
	flex-shrink: 0;
	max-width: 100%;
	font-size: 1.1rem;
	line-height: 1.4;
	color: var(--3d-accent);
	font-weight: 600;
	visibility: visible;
}
.woocommerce ul.products li.product:hover {
	transform: translateY(-6px);
	box-shadow: var(--woo-card-shadow-hover);
	border-color: var(--3d-accent);
}
.woocommerce ul.products li.product a { text-decoration: none !important; }
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title { color: var(--3d-pale); }
.woocommerce ul.products li.product a:hover { text-decoration: none !important; }
.woocommerce-pagination ul.page-numbers { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; list-style: none; margin: 2rem 0 0; padding: 0; }
.woocommerce-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; height: 2.5rem; padding: 0 0.5rem; background: var(--3d-panel); border: 1px solid var(--3d-border); border-radius: var(--3d-radius-sm); color: var(--3d-text); font-weight: 500; text-decoration: none; transition: background 0.2s, border-color 0.2s; }
.woocommerce-pagination .page-numbers:hover { background: var(--3d-elevated); border-color: var(--3d-accent); color: var(--3d-pale); }
.woocommerce-pagination .page-numbers.current { background: var(--3d-accent); border-color: var(--3d-accent); color: #fff; }

/* 3D animált termékkép – videó / GIF (listában a .ktp-product-loop-image tartalmazza) */
.ktp-loop-product-media .ktp-product-media,
.ktp-loop-product-media .ktp-product-video { display: block; }
.ktp-single-product-video { margin-bottom: 1.25rem; border-radius: var(--3d-radius); overflow: hidden; background: var(--3d-deep); border: 1px solid var(--3d-border); }
.ktp-single-product-video .ktp-product-media { aspect-ratio: 1; max-height: 55vh; display: block; }
.ktp-single-product-video .ktp-product-video { width: 100%; height: 100%; object-fit: cover; display: block; }
body.ktp-has-product-video .woocommerce-product-gallery .woocommerce-product-gallery__image:first-child { display: none !important; }

/* ========== EGY TERMÉK OLDAL – RENDEZETT, TISZTA MEGJELENÉS ========== */
.ktp-woo-single .ktp-section {
	padding: var(--section-padding-y) var(--3d-content-padding-x);
	max-width: var(--woo-max-width);
	margin-left: auto;
	margin-right: auto;
}
.woocommerce div.product {
	max-width: 100%;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 3.5rem);
	align-items: start;
}
.woocommerce div.product .images {
	width: 100%;
	min-width: 0;
	position: sticky;
	top: 1.25rem;
}
.woocommerce div.product .summary {
	width: 100%;
	min-width: 0;
	padding: 0;
}
.woocommerce div.product .summary > * {
	margin-top: 0;
	margin-bottom: 1rem;
}
.woocommerce div.product .summary > *:last-child {
	margin-bottom: 0;
}
/* Galéria – egy termék oldal (single 600 px szabvány, arányos megjelenés) */
.woocommerce div.product .woocommerce-product-gallery {
	border-radius: var(--woo-card-radius, 20px);
	overflow: hidden;
	background: var(--3d-deep);
	border: 1px solid var(--3d-border);
	box-shadow: var(--woo-card-shadow);
}
.woocommerce div.product .woocommerce-product-gallery__wrapper {
	margin: 0;
	padding: 0;
}
.woocommerce div.product .woocommerce-product-gallery__image {
	margin: 0;
}
.woocommerce div.product .woocommerce-product-gallery__image {
	position: relative;
	display: block;
	aspect-ratio: 1;
	min-height: 240px;
	max-width: 100%;
	background: var(--3d-deep);
}
@media (min-width: 768px) {
	.woocommerce div.product .woocommerce-product-gallery__image { min-height: 320px; }
}
@media (min-width: 1024px) {
	.woocommerce div.product .woocommerce-product-gallery__image { min-height: 380px; max-width: 520px; }
}
.woocommerce div.product .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	image-rendering: auto;
}
/* Bélyegképek – nagyobb, kattintható */
.woocommerce div.product .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0.75rem 0 0;
	padding: 0;
	list-style: none;
}
.woocommerce div.product .flex-control-thumbs li {
	list-style: none;
	margin: 0;
	flex: 0 0 auto;
}
.woocommerce div.product .flex-control-thumbs img {
	width: 100px;
	height: 100px;
	object-fit: cover;
	object-position: center;
	border-radius: var(--3d-radius-sm);
	border: 2px solid var(--3d-border);
	cursor: pointer;
	transition: border-color 0.2s, box-shadow 0.2s;
	image-rendering: auto;
}
.woocommerce div.product .flex-control-thumbs img:hover,
.woocommerce div.product .flex-control-thumbs li.flex-active img {
	border-color: var(--3d-accent);
	box-shadow: 0 0 0 2px var(--3d-accent);
}
/* Összefoglaló – cím, ár, leírás jól olvasható */
.woocommerce div.product .summary .product_title {
	font-family: var(--font-head);
	font-size: clamp(1.5rem, 3vw, 2.1rem);
	margin: 0 0 0.75rem 0;
	color: var(--3d-pale);
	line-height: 1.25;
	letter-spacing: 0.02em;
}
.woocommerce div.product .summary .price {
	display: block;
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--3d-accent);
	margin-bottom: 1.25rem;
}
.woocommerce div.product .summary .woocommerce-product-rating {
	margin-bottom: 0.75rem;
	font-size: 0.95rem;
}
.woocommerce div.product .summary .woocommerce-product-rating .star-rating { color: var(--3d-accent); }
.woocommerce div.product .summary .woocommerce-product-rating a { color: var(--3d-muted); text-decoration: none; }
.woocommerce div.product .summary .woocommerce-product-rating a:hover { color: var(--3d-pale); text-decoration: underline; }
.woocommerce div.product .summary .woocommerce-product-details__short-description,
.woocommerce div.product .summary .woocommerce-Tabs-panel {
	font-size: 1.05rem;
	line-height: 1.65;
	color: var(--3d-text);
}
.woocommerce div.product .summary .woocommerce-product-details__short-description p,
.woocommerce div.product .summary .woocommerce-Tabs-panel p {
	margin-top: 0;
	margin-bottom: 0.9rem;
}
.woocommerce div.product .summary .woocommerce-product-details__short-description p:last-child,
.woocommerce div.product .summary .woocommerce-Tabs-panel p:last-child { margin-bottom: 0; }
.woocommerce div.product .summary .stock { font-size: 0.95rem; color: var(--3d-muted); margin: 0.5rem 0 0; }
.woocommerce div.product .summary .stock.in-stock { color: var(--3d-accent); }
.woocommerce div.product .summary .stock.out-of-stock { color: var(--3d-muted); }
.woocommerce div.product .summary .single_add_to_cart_button {
	padding: 0.8rem 1.6rem;
	font-size: 1.05rem;
	font-weight: 600;
	border-radius: var(--3d-radius-sm);
	background: var(--3d-accent);
	color: #fff;
	border: none;
	cursor: pointer;
	transition: background 0.2s, transform 0.2s;
}
.woocommerce div.product .summary .single_add_to_cart_button:hover {
	background: var(--3d-accent-hover);
	transform: translateY(-1px);
}
.woocommerce div.product .summary .single_add_to_cart_button:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--3d-bg), 0 0 0 5px var(--3d-accent);
}
/* Kosár űrlap – mennyiség + gomb egy sorban, rendezett */
.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin: 1.25rem 0 0;
	padding: 0;
	border: none;
}
.woocommerce div.product form.cart .quantity {
	margin: 0;
	float: none;
}
.woocommerce div.product form.cart .quantity input.qty {
	width: 4rem;
	min-height: 2.75rem;
	padding: 0.5rem 0.5rem;
	text-align: center;
	font-size: 1.05rem;
	font-weight: 600;
	background: var(--3d-deep);
	border: 1px solid var(--3d-border);
	border-radius: var(--3d-radius-sm);
	color: var(--3d-text);
	-moz-appearance: textfield;
}
.woocommerce div.product form.cart .quantity input.qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart .quantity input.qty::-webkit-inner-spin-button { appearance: none; margin: 0; }
.woocommerce div.product form.cart .quantity input.qty:focus {
	outline: none;
	border-color: var(--3d-accent);
	box-shadow: 0 0 0 2px rgba(45, 90, 56, 0.3);
}
.woocommerce div.product form.cart .single_add_to_cart_button {
	margin: 0;
	flex-shrink: 0;
}
/* Változatok tábla – tisztán, téma színekkel */
.woocommerce div.product form.variations_form .variations {
	width: 100%;
	margin: 1rem 0 0;
	border: none;
}
.woocommerce div.product form.variations_form .variations tr {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
	border: none;
}
.woocommerce div.product form.variations_form .variations td {
	padding: 0;
	border: none;
	vertical-align: middle;
}
.woocommerce div.product form.variations_form .variations td.label {
	width: auto;
	min-width: 6rem;
	font-weight: 600;
	color: var(--3d-text);
}
.woocommerce div.product form.variations_form .variations td.value select {
	width: 100%;
	min-width: 180px;
	padding: 0.5rem 2rem 0.5rem 0.75rem;
	background: var(--3d-deep);
	border: 1px solid var(--3d-border);
	border-radius: var(--3d-radius-sm);
	color: var(--3d-text);
	font-size: 1rem;
	cursor: pointer;
}
.woocommerce div.product form.variations_form .variations td.value select:focus {
	outline: none;
	border-color: var(--3d-accent);
}
.woocommerce div.product form.variations_form .single_variation_wrap {
	margin-top: 1rem;
	clear: both;
}
.woocommerce div.product .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin-top: 0.5rem;
}
/* Termék meta (SKU, kategória) – kisebb, nem dominál */
.woocommerce div.product .summary .product_meta {
	padding-top: 1rem;
	margin-top: 1rem;
	border-top: 1px solid var(--3d-border);
	font-size: 0.95rem;
	color: var(--3d-muted);
}
.woocommerce div.product .summary .product_meta a { color: var(--3d-pale); text-decoration: none; }
.woocommerce div.product .summary .product_meta a:hover { text-decoration: underline; }
.woocommerce div.product .summary .product_meta > span { display: block; margin-bottom: 0.35rem; }
.woocommerce div.product .summary .product_meta > span:last-child { margin-bottom: 0; }
/* Lapok (Leírás, Vélemények stb.) – rendezett */
.woocommerce div.product .woocommerce-tabs {
	margin: 2.5rem 0 0;
	padding-top: 2rem;
	border-top: 1px solid var(--3d-border);
	width: 100%;
	grid-column: 1 / -1;
}
.woocommerce div.product .woocommerce-tabs ul.wc-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
	border: none;
	border-bottom: 2px solid var(--3d-border);
}
.woocommerce div.product .woocommerce-tabs ul.wc-tabs li {
	margin: 0;
	padding: 0;
	border: none;
	background: none;
}
.woocommerce div.product .woocommerce-tabs ul.wc-tabs li a {
	display: block;
	padding: 0.65rem 1.25rem;
	font-weight: 600;
	color: var(--3d-muted);
	text-decoration: none;
	border-radius: var(--3d-radius-sm) var(--3d-radius-sm) 0 0;
	transition: color 0.2s, background 0.2s;
}
.woocommerce div.product .woocommerce-tabs ul.wc-tabs li a:hover { color: var(--3d-text); background: var(--3d-elevated); }
.woocommerce div.product .woocommerce-tabs ul.wc-tabs li.active a {
	color: var(--3d-pale);
	background: var(--3d-panel);
	border: 1px solid var(--3d-border);
	border-bottom-color: transparent;
	margin-bottom: -2px;
	padding-bottom: calc(0.65rem + 2px);
}
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel {
	margin: 0;
	padding: 1.25rem 0 0;
}
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel h2 {
	font-size: 1.15rem;
	margin: 0 0 0.75rem;
	color: var(--3d-pale);
}
.woocommerce div.product #reviews .commentlist { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.woocommerce div.product #reviews .commentlist li { margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--3d-border); }
.woocommerce div.product #reviews .commentlist li:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }
.woocommerce div.product #reviews .comment-text .meta { font-size: 0.9rem; color: var(--3d-muted); margin-bottom: 0.35rem; }
.woocommerce div.product #reviews .comment-text .description { color: var(--3d-text); }
.woocommerce div.product #reviews .comment-form input[type="text"],
.woocommerce div.product #reviews .comment-form input[type="email"],
.woocommerce div.product #reviews .comment-form textarea {
	width: 100%;
	max-width: 400px;
	padding: 0.5rem 0.75rem;
	background: var(--3d-deep);
	border: 1px solid var(--3d-border);
	border-radius: var(--3d-radius-sm);
	color: var(--3d-text);
	font-size: 1rem;
}
.woocommerce div.product #reviews .comment-form textarea { min-height: 100px; }
.woocommerce div.product #reviews .comment-form .form-submit { margin-top: 1rem; }
.woocommerce div.product #reviews .comment-form input[type="submit"] {
	padding: 0.6rem 1.25rem;
	background: var(--3d-accent);
	color: #fff;
	border: none;
	border-radius: var(--3d-radius-sm);
	font-weight: 600;
	cursor: pointer;
}
.woocommerce div.product #reviews .comment-form input[type="submit"]:hover { background: var(--3d-accent-hover); }
/* Kapcsolódó / hasonló termékek – egységes a listával */
.woocommerce div.product .related.products,
.woocommerce div.product .upsells.products {
	margin: 2.5rem 0 0;
	padding-top: 2rem;
	border-top: 1px solid var(--3d-border);
	width: 100%;
	grid-column: 1 / -1;
}
.woocommerce div.product .related.products h2,
.woocommerce div.product .upsells.products h2 {
	font-size: 1.35rem;
	margin: 0 0 1.25rem;
	color: var(--3d-pale);
}
.woocommerce div.product .related.products ul.products,
.woocommerce div.product .upsells.products ul.products {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	list-style: none;
	padding: 0;
	margin: 0;
}
@media (min-width: 576px) {
	.woocommerce div.product .related.products ul.products,
	.woocommerce div.product .upsells.products ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (min-width: 768px) {
	.woocommerce div.product .related.products ul.products,
	.woocommerce div.product .upsells.products ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 2rem;
	}
}
@media (min-width: 1024px) {
	.woocommerce div.product .images,
	.woocommerce div.product .summary { min-width: 280px; }
}

/* ========== KOSÁR ÉS PÉNZTÁR – 3D TÉMA ========== */
/* Duplikált címek elrejtése csak archívumon és kosárnál – egy termék oldalon a cím maradjon */
.ktp-woo-archive .woocommerce-ktp-content .woocommerce > h1,
.ktp-woo-cart .woocommerce-ktp-content .woocommerce > h1,
.ktp-woo-checkout .woocommerce-ktp-content .woocommerce > h1 { display: none !important; }
.ktp-woo-archive .woocommerce-products-header { display: none !important; }
/* Egy termék oldal – cím, összefoglaló és termékkép mindig látható */
.ktp-woo-single .woocommerce div.product .summary,
.ktp-woo-single .woocommerce div.product .summary .product_title { display: block !important; visibility: visible !important; }
.ktp-woo-single .woocommerce div.product .images,
.ktp-woo-single .woocommerce div.product .woocommerce-product-gallery { display: block !important; visibility: visible !important; }
.ktp-woo-single .woocommerce div.product .woocommerce-product-gallery__image img { display: block !important; }

/* Kosár: két oszlop (tábla + összesítő) – méretarányos max szélesség */
.ktp-woo-cart .woocommerce {
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: clamp(1.25rem, 3vw, 2rem);
	align-items: start;
	max-width: var(--content-max);
	margin: 0 auto;
	width: 100%;
}
.ktp-woo-cart .woocommerce > h1 { grid-column: 1 / -1; }
.ktp-woo-cart .woocommerce-cart-form { grid-column: 1; min-width: 0; }
.ktp-woo-cart .cart_totals { grid-column: 2; grid-row: 2; position: sticky; top: 1.5rem; }
.ktp-woo-cart .woocommerce-cart-form,
.ktp-woo-cart .cart_totals { margin-bottom: 0; }
@media (max-width: 991px) {
	.ktp-woo-cart .woocommerce { grid-template-columns: 1fr; }
	.ktp-woo-cart .cart_totals { grid-column: 1; grid-row: auto; position: static; }
}

/* Kupon + Frissítés sor */
.ktp-woo-cart .woocommerce-cart-form .actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.25rem;
	background: var(--3d-elevated);
	border-top: 1px solid var(--3d-border);
}
.ktp-woo-cart .woocommerce-cart-form .coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	flex: 1;
	min-width: 200px;
}
.ktp-woo-cart .woocommerce-cart-form .coupon label { display: none; }
.ktp-woo-cart .woocommerce-cart-form .coupon .input-text {
	width: 100%;
	max-width: 220px;
	padding: 0.5rem 0.75rem;
	background: var(--3d-deep);
	border: 1px solid var(--3d-border);
	border-radius: var(--3d-radius-sm);
	color: var(--3d-text);
	font-size: 1rem;
}
.ktp-woo-cart .woocommerce-cart-form .coupon .button {
	padding: 0.5rem 1rem;
	background: var(--3d-panel) !important;
	color: var(--3d-text) !important;
	border: 1px solid var(--3d-border) !important;
	border-radius: var(--3d-radius-sm);
	font-weight: 600;
	cursor: pointer;
}
.ktp-woo-cart .woocommerce-cart-form .coupon .button:hover {
	background: var(--3d-accent) !important;
	color: var(--3d-pale) !important;
	border-color: var(--3d-accent) !important;
}

/* Kosár tábla – téma színek, állandó kinézet */
.ktp-woo-cart .woocommerce-cart-form { overflow-x: auto; background: transparent; }
.ktp-woo-cart table.cart {
	width: 100%;
	min-width: 480px;
	max-width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	background: var(--3d-panel) !important;
	border: 1px solid var(--3d-border);
	border-radius: var(--3d-radius);
	overflow: hidden;
}
.ktp-woo-cart table.cart th,
.ktp-woo-cart table.cart td {
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--3d-border);
	color: var(--3d-text);
	vertical-align: middle;
}
.ktp-woo-cart table.cart thead th {
	background: var(--3d-elevated);
	color: var(--3d-muted);
	font-weight: 600;
	font-size: 0.9rem;
	text-transform: none;
}
.ktp-woo-cart table.cart tbody tr:last-child td { border-bottom: 0; }
.ktp-woo-cart table.cart .product-name a { color: var(--3d-text); text-decoration: none; }
.ktp-woo-cart table.cart .product-name a:hover { color: var(--3d-accent); }
.ktp-woo-cart table.cart .product-price .amount,
.ktp-woo-cart table.cart .product-subtotal .amount { color: var(--3d-accent); font-weight: 600; }
.ktp-woo-cart table.cart .product-thumbnail { width: 80px; }
.ktp-woo-cart table.cart .product-thumbnail img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: var(--3d-radius-sm);
	border: 1px solid var(--3d-border);
}
.ktp-woo-cart table.cart .quantity input.qty {
	width: 4rem;
	padding: 0.5rem 0.5rem;
	text-align: center;
	background: var(--3d-deep);
	border: 1px solid var(--3d-border);
	border-radius: var(--3d-radius-sm);
	color: var(--3d-text);
	font-weight: 500;
}
.ktp-woo-cart table.cart .product-remove a {
	color: var(--3d-muted) !important;
	transition: color 0.2s;
}
.ktp-woo-cart table.cart .product-remove a:hover { color: var(--3d-accent) !important; }

/* Kosár gombok */
.ktp-woo-cart .cart_totals .button,
.ktp-woo-cart .wc-proceed-to-checkout .checkout-button,
.ktp-woo-cart .button[name="update_cart"],
.ktp-woo-checkout .woocommerce-checkout-place-order .button {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	background: var(--3d-accent) !important;
	color: var(--3d-pale) !important;
	border: 1px solid var(--3d-accent) !important;
	border-radius: var(--3d-radius-sm);
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s, border-color 0.2s, transform 0.2s;
}
.ktp-woo-cart .cart_totals .button:hover,
.ktp-woo-cart .wc-proceed-to-checkout .checkout-button:hover,
.ktp-woo-cart .button[name="update_cart"]:hover,
.ktp-woo-checkout .woocommerce-checkout-place-order .button:hover {
	background: var(--3d-accent-hover) !important;
	border-color: var(--3d-accent-hover) !important;
	transform: translateY(-1px);
}
.ktp-woo-cart .button[name="update_cart"] {
	background: var(--3d-elevated) !important;
	color: var(--3d-text) !important;
	border-color: var(--3d-border) !important;
}
.ktp-woo-cart .button[name="update_cart"]:hover {
	background: var(--3d-panel) !important;
	border-color: var(--3d-accent) !important;
	color: var(--3d-accent) !important;
}

/* Összesítő (cart_totals) – téma panel */
.ktp-woo-cart .cart_totals,
.ktp-woo-checkout .woocommerce-order-review {
	background: var(--3d-panel) !important;
	border: 1px solid var(--3d-border);
	border-radius: var(--3d-radius);
	padding: 1.5rem;
}
.ktp-woo-cart .cart_totals h2,
.ktp-woo-checkout .woocommerce-billing-fields h3,
.ktp-woo-checkout .woocommerce-shipping-fields h3,
.ktp-woo-checkout #order_review_heading {
	color: var(--3d-text);
	font-size: 1.25rem;
	margin-bottom: 1rem;
	border: none;
	padding: 0;
}
.ktp-woo-cart .cart_totals table {
	width: 100%;
	border: none;
}
.ktp-woo-cart .cart_totals th,
.ktp-woo-cart .cart_totals td {
	padding: 0.6rem 0;
	border: none;
	border-bottom: 1px solid var(--3d-border);
	color: var(--3d-text);
	background: transparent !important;
}
.ktp-woo-cart .cart_totals tr:last-child th,
.ktp-woo-cart .cart_totals tr:last-child td { border-bottom: 0; }
.ktp-woo-cart .cart_totals .order-total .amount { color: var(--3d-accent); font-size: 1.25rem; font-weight: 700; }
.ktp-woo-cart .wc-proceed-to-checkout { padding-top: 1rem; }

/* Pénztár – egységes megrendelés design, rendezett blokkok */
.ktp-woo-checkout #customer_details {
	background: var(--3d-panel);
	border: 1px solid var(--3d-border);
	border-radius: var(--3d-radius);
	padding: 1.5rem 1.75rem;
	margin-bottom: 1.5rem;
}
.ktp-woo-checkout .woocommerce-billing-fields h3,
.ktp-woo-checkout .woocommerce-shipping-fields h3 {
	margin: 0 0 1rem 0;
	padding: 0 0 0.5rem 0;
	border-bottom: 1px solid var(--3d-border);
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--3d-pale);
	background: transparent;
}
.ktp-woo-checkout .woocommerce-shipping-fields h3 { margin-top: 1.25rem; }
.ktp-woo-checkout #customer_details .col2-set {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	margin-bottom: 0;
}
@media (max-width: 768px) {
	.ktp-woo-checkout #customer_details .col2-set { grid-template-columns: 1fr; }
}
.ktp-woo-checkout .form-row { margin-bottom: 1rem; }
.ktp-woo-checkout .form-row label { display: block; color: var(--3d-text); margin-bottom: 0.35rem; font-weight: 500; }
.ktp-woo-checkout .form-row input.input-text,
.ktp-woo-checkout .form-row textarea {
	padding: 0.65rem 0.85rem;
	background: var(--3d-deep);
	border: 1px solid var(--3d-border);
	border-radius: var(--3d-radius-sm);
	color: var(--3d-text);
	width: 100%;
	box-sizing: border-box;
	font-size: 1rem;
}
.ktp-woo-checkout .form-row input.input-text:focus,
.ktp-woo-checkout .form-row textarea:focus {
	border-color: var(--3d-accent);
	outline: none;
	box-shadow: 0 0 0 2px var(--3d-glow);
}
.ktp-woo-checkout .woocommerce-billing-fields__field-wrapper,
.ktp-woo-checkout .woocommerce-shipping-fields__field-wrapper { margin-bottom: 0; }

/* Pénztár: két oszlop – méretarányos max szélesség */
.ktp-woo-checkout form.woocommerce-checkout {
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: clamp(1.25rem, 3vw, 2rem);
	align-items: start;
	max-width: var(--content-max);
	margin: 0 auto;
	width: 100%;
}
.ktp-woo-checkout form.woocommerce-checkout > #customer_details,
.ktp-woo-checkout form.woocommerce-checkout > .woocommerce-additional-fields,
.ktp-woo-checkout form.woocommerce-checkout > #payment { grid-column: 1; min-width: 0; }
.ktp-woo-checkout form.woocommerce-checkout > #order_review_heading { grid-column: 2; grid-row: 1; margin-top: 0; }
.ktp-woo-checkout form.woocommerce-checkout > #order_review { grid-column: 2; grid-row: 2; position: sticky; top: 1.5rem; }
@media (max-width: 991px) {
	.ktp-woo-checkout form.woocommerce-checkout { grid-template-columns: 1fr; }
	.ktp-woo-checkout form.woocommerce-checkout > #order_review_heading,
	.ktp-woo-checkout form.woocommerce-checkout > #order_review { grid-column: 1; grid-row: auto; position: static; }
}
/* Pénztár: rendelés összefoglaló jobb oldalon – világos blokk */
.ktp-woo-checkout #order_review_heading {
	margin: 0 0 0.5rem 0;
	padding: 0 0 0.75rem 0;
	border-bottom: 1px solid var(--3d-border);
	font-size: 1.2rem;
	font-weight: 600;
	color: var(--3d-pale);
}
.ktp-woo-checkout #order_review {
	background: var(--3d-panel) !important;
	border: 1px solid var(--3d-border);
	border-radius: var(--3d-radius);
	padding: 1.5rem 1.75rem;
	margin-top: 0;
}
.ktp-woo-checkout #order_review .shop_table { border: none; width: 100%; }
.ktp-woo-checkout #order_review .shop_table th,
.ktp-woo-checkout #order_review .shop_table td {
	padding: 0.65rem 0;
	border: none;
	border-bottom: 1px solid var(--3d-border);
	color: var(--3d-text);
	background: transparent !important;
	font-size: 0.95rem;
}
.ktp-woo-checkout #order_review .shop_table .order-total th,
.ktp-woo-checkout #order_review .shop_table .order-total td { padding-top: 1rem; border-bottom: none; font-size: 1.05rem; }
.ktp-woo-checkout #order_review .order-total .amount { color: var(--3d-accent); font-weight: 700; }

/* Pénztár: fizetési módok + Megrendelés gomb – egyértelmű blokk */
.ktp-woo-checkout #payment {
	background: var(--3d-elevated) !important;
	border: 1px solid var(--3d-border);
	border-radius: var(--3d-radius);
	padding: 1.5rem 1.75rem;
	margin-top: 1.5rem;
}
.ktp-woo-checkout #payment ul.payment_methods {
	list-style: none;
	margin: 0 0 1.25rem 0;
	padding: 0;
	border: none;
}
.ktp-woo-checkout #payment ul.payment_methods li {
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--3d-border);
	color: var(--3d-text);
}
.ktp-woo-checkout #payment ul.payment_methods li:last-child { border-bottom: 0; }
.ktp-woo-checkout #payment .payment_method_paypal .about_paypal { color: var(--3d-muted); font-size: 0.9rem; }
.ktp-woo-checkout #payment .place-order {
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 2px solid var(--3d-border);
}
.ktp-woo-checkout #payment .place-order .button {
	width: 100%;
	padding: 1rem 1.5rem;
	font-size: 1.1rem;
	font-weight: 700;
	border-radius: var(--3d-radius-sm);
}
.ktp-woo-checkout .form-row select {
	padding: 0.6rem 0.75rem;
	background: var(--3d-deep);
	border: 1px solid var(--3d-border);
	border-radius: var(--3d-radius-sm);
	color: var(--3d-text);
	width: 100%;
	max-width: 100%;
}
.ktp-woo-checkout .form-row select:focus {
	border-color: var(--3d-accent);
	outline: none;
	box-shadow: 0 0 0 2px var(--3d-glow);
}
.ktp-woo-checkout .form-row select:focus-visible,
.ktp-woo-checkout .form-row input:focus-visible { outline: none; }
.ktp-checkout-trust {
	margin: 1rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--3d-border);
	font-size: 0.9rem;
	color: var(--3d-muted);
}
.ktp-woo-cart .button:focus-visible,
.ktp-woo-checkout .button:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--3d-bg), 0 0 0 5px var(--3d-accent);
}

/* WooCommerce üzenetek (kosár, pénztár, üzlet) */
.ktp-woo-cart .woocommerce-message,
.ktp-woo-cart .woocommerce-info,
.ktp-woo-checkout .woocommerce-message,
.ktp-woo-checkout .woocommerce-info {
	background: var(--3d-glow) !important;
	border: 1px solid var(--3d-accent) !important;
	border-radius: var(--3d-radius-sm);
	color: var(--3d-text) !important;
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
	list-style: none;
}
.ktp-woo-cart .woocommerce-error,
.ktp-woo-checkout .woocommerce-error {
	background: rgba(120,40,40,0.15) !important;
	border: 1px solid rgba(180,80,80,0.45) !important;
	border-radius: var(--3d-radius-sm);
	color: var(--3d-text) !important;
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
	list-style: none;
}

/* Üres kosár – barátságos üzenet + ikon */
.ktp-woo-cart .cart-empty {
	color: var(--3d-muted);
	margin: 1.5rem 0;
	font-size: 1.05rem;
	text-align: center;
	padding: 2rem 1rem;
}
.ktp-woo-cart .cart-empty::before {
	content: '';
	display: block;
	width: 64px;
	height: 64px;
	margin: 0 auto 1rem;
	background: var(--3d-border);
	border-radius: 50%;
	opacity: 0.6;
}
.ktp-woo-cart .cart-empty a { color: var(--3d-accent); text-decoration: underline; text-underline-offset: 2px; }
.ktp-woo-cart .cart-empty a:hover { color: var(--3d-accent-hover); }
.ktp-woo-cart .return-to-shop { text-align: center; margin: 1.5rem 0; }
.ktp-woo-cart .return-to-shop .button {
	background: var(--3d-accent) !important;
	color: var(--3d-pale) !important;
	border: none;
	border-radius: var(--3d-radius-sm);
	padding: 0.75rem 1.5rem;
	font-weight: 600;
}
.ktp-woo-cart .return-to-shop .button:hover { background: var(--3d-accent-hover) !important; }

/* Reszponzív kosár */
@media (max-width: 768px) {
	.ktp-woo-cart table.cart thead { display: none; }
	.ktp-woo-cart table.cart tbody tr { display: grid; grid-template-columns: 80px 1fr; gap: 0.5rem; padding: 1rem; border-bottom: 1px solid var(--3d-border); }
	.ktp-woo-cart table.cart tbody tr td { border: none; padding: 0; }
	.ktp-woo-cart table.cart tbody tr td.product-thumbnail { grid-column: 1; grid-row: 1 / 4; }
	.ktp-woo-cart table.cart tbody tr td.product-name { grid-column: 2; grid-row: 1; }
	.ktp-woo-cart table.cart tbody tr td.product-price::before { content: attr(data-title); font-weight: 600; margin-right: 0.5rem; color: var(--3d-muted); }
	.ktp-woo-cart table.cart tbody tr td.product-quantity::before { content: attr(data-title); font-weight: 600; margin-right: 0.5rem; color: var(--3d-muted); }
	.ktp-woo-cart table.cart tbody tr td.product-subtotal::before { content: attr(data-title); font-weight: 600; margin-right: 0.5rem; color: var(--3d-muted); }
	.ktp-woo-cart table.cart tbody tr td.product-remove { grid-column: 1 / -1; text-align: right; }
}

/* ========== KERESÉS ŰRLAP ========== */
.ktp-search-no-results .ktp-search-no-results-text { margin-bottom: 1.25rem; font-size: 1.05rem; color: var(--3d-muted); }
.search-form {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
	margin: 1rem 0;
}
.search-form .search-field {
	padding: 0.5rem 0.75rem;
	background: var(--3d-panel);
	border: 1px solid var(--3d-border);
	border-radius: var(--3d-radius-sm);
	color: var(--3d-text);
	min-width: 200px;
}
.search-form .search-field:focus-visible {
	outline: none;
	border-color: var(--3d-accent);
	box-shadow: 0 0 0 2px var(--3d-glow);
}
.search-form .search-submit {
	padding: 0.5rem 1rem;
	background: var(--3d-accent);
	color: var(--3d-pale);
	border: none;
	border-radius: var(--3d-radius-sm);
	font-weight: 600;
	cursor: pointer;
}
.search-form .search-submit:hover { background: var(--3d-accent-hover); }
.search-form .search-submit:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--3d-bg), 0 0 0 5px var(--3d-accent);
}
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: -9999px; z-index: 100; padding: 0.75rem 1.25rem; background: var(--3d-accent); color: var(--3d-pale); font-weight: 600; border-radius: var(--3d-radius-sm); transition: left 0.2s; }
.skip-link:focus { left: 1rem; top: 1rem; clip: auto; width: auto; height: auto; margin: 0; outline: 2px solid var(--3d-pale); outline-offset: 2px; }

/* ========== RESZPONZÍV – ÉLES ========== */
@media (max-width: 640px) {
	.site-header .wrap {
		display: grid;
		grid-template-columns: 1fr auto;
		grid-template-areas: "title toggle" "nav nav";
		gap: 1rem;
		align-items: center;
		text-align: left;
	}
	.site-header .site-title { grid-area: title; order: unset; }
	.site-header .theme-toggle { grid-area: toggle; order: unset; }
	.site-header nav { grid-area: nav; order: unset; justify-self: center; }
	.site-header .nav-menu { justify-content: center; }
	.hero-cemetery { padding: 3rem var(--3d-content-padding-x-mobile, 1.25rem); }
	.ktp-section { padding: 1.5rem var(--3d-content-padding-x-mobile, 1.25rem); }
	.ktp-woo-cart .ktp-section,
	.ktp-woo-checkout .ktp-section { padding: 1.5rem var(--3d-content-padding-x-mobile, 1.25rem); }
	.ktp-woo-cart .site-main,
	.ktp-woo-checkout .site-main,
	.site-main { padding: 2rem var(--3d-content-padding-x-mobile, 1.25rem); }
	.ktp-breadcrumb { padding-left: var(--3d-content-padding-x-mobile, 1.25rem); padding-right: var(--3d-content-padding-x-mobile, 1.25rem); }
	.single-memorial { padding-left: var(--3d-content-padding-x-mobile, 1.25rem); padding-right: var(--3d-content-padding-x-mobile, 1.25rem); }
	.site-header .wrap { padding-left: var(--3d-content-padding-x-mobile, 1.25rem); padding-right: var(--3d-content-padding-x-mobile, 1.25rem); }
	.site-footer .wrap { padding-left: var(--3d-content-padding-x-mobile, 1.25rem); padding-right: var(--3d-content-padding-x-mobile, 1.25rem); }
	.woocommerce div.product { grid-template-columns: 1fr; gap: 1.5rem; }
	.woocommerce div.product .images { position: static; }
	.woocommerce div.product .images,
	.woocommerce div.product .summary { width: 100%; min-width: 0; }
	.woocommerce div.product .flex-control-thumbs img { width: 72px; height: 72px; }
	.woocommerce div.product .woocommerce-product-gallery__image { min-height: min(80vw, 400px); }
	.woocommerce ul.products { grid-template-columns: 1fr !important; gap: 1.5rem; }
}
/* Nyomtatás – egyszerű, olvasható */
@media print {
	body, .site-main, .ktp-section { background: #fff !important; color: #111 !important; }
	body::before, body::after, .cemetery-fog, .cemetery-leaves, .hero-sparkle, .hero-glow-orb, .theme-deco { display: none !important; }
	.site-header, .site-footer { background: #f5f5f5 !important; color: #333 !important; border-color: #ddd !important; }
	a[href]::after { content: none; }
	.skip-link { display: none !important; }
}
/* Emlékoldal nyomtatás – Emlékkönyv stílus: csak emlék tartalom */
@media print {
	.single-memorial .memorial-actions,
	.single-memorial .memorial-actions-primary,
	.single-memorial .memorial-actions-secondary,
	.single-memorial .memorial-actions-revenue,
	.single-memorial .ktp-condolences,
	.single-memorial .ktp-edit-memorial-wrap,
	.single-memorial .ktp-print-button-wrap,
	.single-memorial .ktp-share-wrap,
	.single-memorial .ktp-qr-wrap,
	.ktp-breadcrumb { display: none !important; }
	.single-memorial .memorial-meta,
	.single-memorial .memorial-story { border: 1px solid #ddd !important; box-shadow: none !important; }
	.single-memorial .memorial-title { color: #111 !important; }
	.single-memorial .memorial-dates,
	.single-memorial .memorial-stats { color: #333 !important; }
}

/* ========== LÁTVÁNY + ANIMÁCIÓ FINOMÍTÁSOK ========== */
/* Oldal betöltés – lágy belépés */
body.ktp-page-loaded .site-main { animation: ktp-page-fade-in 0.6s var(--ease-out-expo) forwards; }
@keyframes ktp-page-fade-in {
	from { opacity: 0; }
	to { opacity: 1; }
}
/* Emlékoldal galéria – fotó kártyák hover, kerek sarkok, árnyék */
.ktp-memorial-gallery {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}
.ktp-memorial-gallery-item {
	position: relative;
	border-radius: var(--3d-radius-sm);
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(0,0,0,0.25);
	transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
}
.ktp-memorial-gallery-item:hover {
	transform: scale(1.03);
	box-shadow: 0 16px 40px rgba(0,0,0,0.35), 0 0 20px var(--3d-glow);
}
.ktp-memorial-gallery-item img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform 0.5s var(--ease);
}
.ktp-memorial-gallery-item:hover img {
	transform: scale(1.06);
}
/* Szerkesztő űrlap + Emlékoldalaim – mezők és gombok szebben */
.ktp-edit-memorial-wrap,
.ktp-memorial-form,
.ktp-dashboard {
	border-radius: var(--3d-radius);
	box-shadow: var(--3d-shadow), inset 0 1px 0 rgba(255,255,255,0.04);
	padding: clamp(1.25rem, 4vw, 2rem) !important;
}
.ktp-edit-memorial-wrap input[type="text"],
.ktp-edit-memorial-wrap input[type="password"],
.ktp-edit-memorial-wrap select,
.ktp-edit-memorial-wrap textarea,
.ktp-memorial-form input[type="text"],
.ktp-memorial-form select,
.ktp-memorial-form textarea {
	border-radius: var(--3d-radius-sm);
	transition: border-color 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.ktp-edit-memorial-wrap input:focus-visible,
.ktp-edit-memorial-wrap select:focus-visible,
.ktp-edit-memorial-wrap textarea:focus-visible,
.ktp-memorial-form input:focus-visible,
.ktp-memorial-form select:focus-visible,
.ktp-memorial-form textarea:focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px var(--3d-accent);
}
.ktp-edit-memorial-wrap .ktp-btn,
.ktp-memorial-form .ktp-btn {
	transition: transform 0.2s var(--ease-out-expo), box-shadow 0.2s var(--ease);
}
.ktp-edit-memorial-wrap .ktp-btn:hover,
.ktp-memorial-form .ktp-btn:hover {
	transform: translateY(-2px);
}
/* Dashboard lista – elemek hover */
.ktp-dashboard-list .ktp-dashboard-item {
	transition: opacity 0.25s var(--ease), transform 0.25s var(--ease);
}
.ktp-dashboard-list .ktp-dashboard-item:hover {
	opacity: 1;
}
.ktp-dashboard-list .ktp-dashboard-item-link {
	transition: color 0.2s, transform 0.2s;
}
.ktp-dashboard-list .ktp-dashboard-item-link:hover {
	transform: translateX(2px);
}
/* Footer linkek – finom aláhúzás animáció */
.site-footer-links a {
	position: relative;
	transition: color 0.25s var(--ease);
}
.site-footer-links a::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 0;
	height: 1px;
	background: var(--3d-accent);
	transition: width 0.3s var(--ease-out-expo);
}
.site-footer-links a:hover::after { width: 100%; }
/* Hero CTA – nyomás hatás */
.hero-cemetery .cta:active {
	transform: translateY(-2px) scale(0.98);
}
/* Hogyan működik – számozott lépések vizuálisan */
.ktp-how-steps {
	counter-reset: ktp-step;
}
.ktp-how-steps .ktp-section {
	counter-increment: ktp-step;
	position: relative;
	padding-left: clamp(2.5rem, 6vw, 3.5rem);
}
.ktp-how-steps .ktp-section::before {
	content: counter(ktp-step);
	position: absolute;
	left: 0;
	top: var(--section-padding-y);
	width: 2rem;
	height: 2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-head);
	font-weight: 700;
	font-size: 1.25rem;
	color: var(--3d-accent);
	background: rgba(45,90,56,0.2);
	border-radius: 50%;
	border: 1px solid var(--3d-border);
	animation: ktp-step-pulse 3s var(--ease-soft) infinite;
}
@keyframes ktp-step-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(45,90,56,0.3); }
	50% { box-shadow: 0 0 0 8px rgba(45,90,56,0); }
}
/* Kártya belépés – stagger finomítás (több elem) */
.ktp-grid .ktp-card:nth-child(1) { animation-delay: 0.05s; }
.ktp-grid .ktp-card:nth-child(2) { animation-delay: 0.1s; }
.ktp-grid .ktp-card:nth-child(3) { animation-delay: 0.15s; }
.ktp-grid .ktp-card:nth-child(4) { animation-delay: 0.2s; }
.ktp-grid .ktp-card:nth-child(5) { animation-delay: 0.25s; }
.ktp-grid .ktp-card:nth-child(6) { animation-delay: 0.3s; }
.ktp-grid .ktp-card:nth-child(n+7) { animation-delay: 0.35s; }

/* Csökkentett mozgás */
@media (prefers-reduced-motion: reduce) {
	.cemetery-fog-layer { animation: none; }
	.cemetery-leaves .leaf { animation: none; opacity: 0; }
	.ktp-section:hover { transform: none; }
	.ktp-section::after, .ktp-section h2::after { animation: none; }
	.site-footer::before { animation: none; }
	.site-header { animation: none; }
	.hero-cemetery::after { animation: none; }
	.hero-cemetery h1::after { animation: none; opacity: 1; transform: translateX(-50%) scaleX(1); }
	.hero-cemetery::before { transform: none; }
	.hero-glow-orb { animation: none; }
	.ktp-card { animation: none; }
	.ktp-card:hover { transform: scale(1.02); }
	.ktp-card::before { animation: none; }
	.hero-cemetery .cta { animation: none; }
	.hero-sparkle { display: none; }
	.hero-cemetery, .hero-cemetery h1, .hero-cemetery .tagline,
	.ktp-section { animation: none; }
	.ktp-section { opacity: 1; transform: translateZ(0) translateY(0) scale(1); }
	.theme-deco, .theme-deco-candle, .theme-deco-flower { animation: none; }
	.ktp-how-steps .ktp-section::before { animation: none; }
	body.ktp-page-loaded .site-main { animation: none; }
}
