/* Kisállat Temető – front stílusok (téma betöltésekor a .site-main felülírja a színeket) */
:root{
	--ktp-green: var(--3d-accent, #2d5016);
	--ktp-green-light: var(--3d-accent-hover, #4a7c23);
	--ktp-green-soft: rgba(45,80,22,0.2);
	--ktp-bg: var(--3d-bg, #0f1410);
	--ktp-card-bg: var(--3d-panel, #1a2118);
	--ktp-card-border: var(--3d-border, rgba(255,255,255,0.06));
	--ktp-text: var(--3d-text, #e8ebe6);
	--ktp-muted: var(--3d-muted, #8a9a7e);
	--ktp-shadow: 0 16px 48px rgba(0,0,0,0.45);
	--ktp-radius: var(--3d-radius-sm, 14px);
	--ktp-ease: cubic-bezier(0.25,0.46,0.45,0.94);
}
/* Grid + kártyák – animált belépés + shimmer */
.ktp-grid{
	perspective:1400px;
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
	gap:1.75rem;
	padding:2rem 0;
}
.ktp-card{
	position:relative;
	min-height:280px;
	height:auto;
	transform-style:preserve-3d;
	transition:transform 0.4s var(--ktp-ease), box-shadow 0.4s var(--ktp-ease);
	animation:ktp-card-in 0.6s var(--ktp-ease) backwards;
}
.ktp-card::before{
	content:"";
	position:absolute;
	inset:0;
	border-radius:var(--ktp-radius);
	background:linear-gradient(105deg, transparent 0%, rgba(255,255,255,0.04) 45%, transparent 55%);
	opacity:0;
	transition:opacity 0.3s var(--ktp-ease);
	pointer-events:none;
}
.ktp-card:hover::before{opacity:1;animation:ktp-shimmer 1s var(--ktp-ease) forwards;}
@keyframes ktp-shimmer{
	0%{transform:translateX(-100%) skewX(-10deg);}
	100%{transform:translateX(200%) skewX(-10deg);}
}
.ktp-card:nth-child(1){animation-delay:0.05s;}
.ktp-card:nth-child(2){animation-delay:0.1s;}
.ktp-card:nth-child(3){animation-delay:0.15s;}
.ktp-card:nth-child(4){animation-delay:0.2s;}
.ktp-card:nth-child(5){animation-delay:0.25s;}
.ktp-card:nth-child(6){animation-delay:0.3s;}
.ktp-card:nth-child(n+7){animation-delay:0.35s;}
@keyframes ktp-card-in{
	from{opacity:0;transform:translateY(20px) scale(0.98);}
	to{opacity:1;transform:translateY(0) scale(1);}
}
.ktp-card:hover{transform:rotateY(8deg) rotateX(4deg) scale(1.03);box-shadow:0 24px 56px rgba(0,0,0,0.5);}
.ktp-card a{display:block;height:100%;text-decoration:none;color:inherit;border-radius:var(--ktp-radius);overflow:hidden;box-shadow:var(--ktp-shadow);background:var(--ktp-card-bg);border:1px solid var(--ktp-card-border);position:relative;}
.ktp-card a::after{content:attr(data-ktp-view);position:absolute;bottom:1rem;left:50%;transform:translateX(-50%) translateY(6px);padding:0.35rem 0.75rem;background:var(--ktp-green);color:#fff;font-size:0.85rem;font-weight:600;border-radius:6px;opacity:0;transition:opacity 0.25s var(--ktp-ease),transform 0.25s var(--ktp-ease);}
.ktp-card:hover a::after{opacity:1;transform:translateX(-50%) translateY(0);}
.ktp-card-inner{height:100%;display:flex;flex-direction:column;}
.ktp-card-img{height:190px;background-size:cover;background-position:center;transition:transform 0.4s var(--ktp-ease);}
.ktp-card:hover .ktp-card-img{transform:scale(1.05);}
.ktp-card-img-placeholder{background:linear-gradient(135deg,var(--ktp-green-soft),var(--ktp-card-bg));}
.ktp-card-body{padding:1rem 1.1rem;flex:1;display:flex;flex-direction:column;justify-content:center;}
.ktp-card-title{margin:0 0 .35rem 0;font-size:1.15rem;font-weight:600;color:var(--ktp-text);}
.ktp-card-candles{font-size:.9rem;color:var(--ktp-muted);}
.ktp-card--featured{
	position:relative;
}
.ktp-card--featured a{
	box-shadow:
		0 0 0 2px rgba(255,215,140,0.75),
		0 0 24px rgba(255,215,140,0.55),
		0 18px 40px rgba(0,0,0,0.65);
	transform:translateY(-2px);
}
.ktp-card--featured .ktp-card-img::after{
	content:"";
	position:absolute;
	inset:0;
	pointer-events:none;
	background:radial-gradient(circle at 50% 0%, rgba(255,230,180,0.35), transparent 55%);
	opacity:0.9;
}
.ktp-card-badge{
	position:absolute;
	top:8px;
	right:8px;
	z-index:3;
	padding:4px 10px;
	border-radius:999px;
	font-size:11px;
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.08em;
	background:linear-gradient(135deg,#f7d37a,#f0a23a);
	color:#23160b;
	box-shadow:0 3px 10px rgba(0,0,0,.5);
}
.ktp-grid-search{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.5rem;}
.ktp-grid-search input[type=search]{flex:1;min-width:200px;padding:.5rem .85rem;background:var(--ktp-bg);border:1px solid var(--ktp-card-border);border-radius:8px;color:var(--ktp-text);font-size:1rem;}
.ktp-grid-search input:focus{outline:none;border-color:var(--ktp-green-light);box-shadow:0 0 0 2px var(--ktp-green-soft);}
.ktp-grid-search-clear{font-size:.9rem;color:var(--ktp-muted);text-decoration:none;}
.ktp-grid-search-clear:hover{color:var(--ktp-text);}
.ktp-no-results{text-align:center;color:var(--ktp-muted);padding:3rem 1.5rem;grid-column:1/-1;}
.ktp-no-results-icon{display:block;font-size:3rem;margin-bottom:0.75rem;opacity:0.8;}
.ktp-no-results-text{margin:0 0 1rem;font-size:1.05rem;}
.ktp-no-results .ktp-btn{margin-top:0.5rem;}
.ktp-memorial-gallery--empty{padding:2rem;text-align:center;background:var(--ktp-card-bg);border:1px dashed var(--ktp-card-border);border-radius:var(--ktp-radius);}
.ktp-memorial-gallery-empty{margin:0;color:var(--ktp-muted);font-size:1rem;}
/* Galéria grid + kártyák (láthatóság, animáció) */
.ktp-memorial-gallery:not(.ktp-memorial-gallery--empty){display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));}
.ktp-memorial-gallery-item{display:block;border-radius:var(--ktp-radius);overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,0.25);transition:transform 0.4s var(--ktp-ease),box-shadow 0.4s var(--ktp-ease);}
.ktp-memorial-gallery-item:hover{transform:scale(1.03);box-shadow:0 16px 40px rgba(0,0,0,0.35);}
.ktp-memorial-gallery-item img{display:block;width:100%;height:auto;transition:transform 0.5s var(--ktp-ease);}
.ktp-memorial-gallery-item:hover img{transform:scale(1.06);}
.ktp-memorial-views{font-size:.9rem;color:var(--ktp-muted);}
/* Ebben az évben emlékezünk – versenyképes blokk */
.ktp-remember-block{padding:1.5rem;background:var(--ktp-card-bg);border:1px solid var(--ktp-card-border);border-radius:var(--ktp-radius);margin:2rem 0;}
.ktp-remember-title{margin:0 0 1rem 0;font-size:1.2rem;color:var(--ktp-text);}
.ktp-remember-list{list-style:none;margin:0 0 1rem 0;padding:0;}
.ktp-remember-list li{margin:0.35rem 0;}
.ktp-remember-list a{color:var(--ktp-text);text-decoration:none;}
.ktp-remember-list a:hover{color:var(--ktp-green-light);}
.ktp-remember-empty{margin:0 0 1rem;color:var(--ktp-muted);font-size:0.95rem;}
.ktp-remember-cta{margin:0;}
.ktp-buy-candle-wrap,.ktp-buy-featured-wrap{margin:1rem 0;}
.ktp-buy-candle-btn,.ktp-buy-featured-btn{margin-right:.5rem;}
.ktp-buy-candle-price,.ktp-buy-featured-price{font-size:.9rem;color:var(--ktp-muted);}
/* Emlékfal – animált elemek + glow alul */
.ktp-wall{background:linear-gradient(180deg,var(--ktp-bg),var(--ktp-card-bg));padding:2.5rem;border-radius:var(--ktp-radius);border:1px solid var(--ktp-card-border);position:relative;}
.ktp-wall::after{content:"";position:absolute;bottom:0;left:50%;width:50%;height:1px;background:linear-gradient(90deg,transparent,var(--ktp-green-light),transparent);opacity:0.35;transform:translateX(-50%);animation:ktp-glow-pulse 2.5s ease-in-out infinite;}
@keyframes ktp-glow-pulse{0%,100%{opacity:0.2;}50%{opacity:0.5;}}
.ktp-wall-title{margin:0 0 1.25rem 0;text-align:center;color:var(--ktp-text);font-size:1.3rem;}
.ktp-wall-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;}
.ktp-wall-list li{background:var(--ktp-green-soft);padding:.5rem 1rem;border-radius:8px;color:var(--ktp-text);font-size:.95rem;animation:ktp-fade-in 0.4s var(--ktp-ease) backwards;}
.ktp-wall-list li:nth-child(odd){animation-delay:0.05s;}
.ktp-wall-list li:nth-child(even){animation-delay:0.1s;}
@keyframes ktp-fade-in{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
/* Gyertya – nagyobb, 3D-s, erősebb fényglow */
.ktp-candle{
	text-align:center;
	padding:1.75rem 1.5rem 1.5rem;
	position:relative;
}
.ktp-candle::before{
	content:"";
	position:absolute;
	left:50%;
	bottom:1.1rem;
	width:72px;
	height:20px;
	margin-left:-36px;
	background:radial-gradient(ellipse 80% 100% at 50% 50%,rgba(0,0,0,0.55) 0%,transparent 65%);
	opacity:.9;
	pointer-events:none;
}
.ktp-candle-btn{
	display:inline-flex;
	flex-direction:column;
	align-items:center;
	background:none;
	border:none;
	cursor:pointer;
	padding:0;
	transition:transform 0.3s var(--ktp-ease), filter 0.3s var(--ktp-ease);
	animation:ktp-float 5.5s ease-in-out infinite;
	filter:drop-shadow(0 10px 26px rgba(0,0,0,0.6));
}
.ktp-candle-btn:hover{
	transform:scale(1.12) translateY(-2px);
	filter:drop-shadow(0 14px 36px rgba(0,0,0,0.7));
}
.ktp-candle-btn.lit .ktp-candle-flame{
	animation:ktp-flicker 1.15s ease-in-out infinite;
}
.ktp-candle-flame{
	width:28px;
	height:40px;
	background:
		radial-gradient(ellipse 65% 100% at 50% 100%,#fff8c2 0%,#ffdd44 35%,transparent 75%),
		radial-gradient(ellipse 80% 120% at 50% 105%,rgba(255,190,90,0.8) 0%,transparent 70%);
	border-radius:50%;
	animation:ktp-flicker 2.4s ease-in-out infinite;
	margin-bottom:-4px;
	box-shadow:
		0 0 26px rgba(255,220,120,0.9),
		0 0 60px rgba(255,210,120,0.6);
}
.ktp-candle-body{
	width:30px;
	height:64px;
	background:
		linear-gradient(180deg,rgba(255,255,255,0.65) 0%,transparent 18%),
		linear-gradient(90deg,#f1e4cf,#dcc8a5,#c9b190);
	border-radius:4px;
	box-shadow:
		inset 0 0 0 1px rgba(255,255,255,0.35),
		0 6px 18px rgba(0,0,0,0.55);
	position:relative;
}
.ktp-candle-body::after{
	content:"";
	position:absolute;
	left:50%;
	bottom:-10px;
	width:52px;
	height:8px;
	margin-left:-26px;
	background:radial-gradient(ellipse 100% 100% at 50% 50%,rgba(0,0,0,0.7) 0%,transparent 70%);
	opacity:.85;
}
.ktp-candle-label{
	display:block;
	margin-top:.8rem;
	font-size:.95rem;
	color:var(--ktp-muted);
	transition:color 0.3s, text-shadow 0.3s;
}
.ktp-candle-btn.lit ~ .ktp-candle-label{
	color:var(--ktp-text);
	text-shadow:0 0 18px rgba(255,215,140,0.9);
}
@keyframes ktp-flicker{
	0%,100%{transform:scale(1) translateY(0);opacity:1;}
	40%{transform:scale(1.07) translateY(-1px);opacity:.96;}
	55%{transform:scale(0.97) translateY(1px);opacity:.94;}
}
@keyframes ktp-float{
	0%,100%{transform:translateY(0);}
	50%{transform:translateY(-8px);}
}
.ktp-ambient-toggle{display:inline-flex;align-items:center;padding:.5rem 1rem;background:var(--ktp-green-soft);border:1px solid var(--ktp-card-border);border-radius:8px;color:var(--ktp-text);cursor:pointer;font-size:.9rem;margin-top:1rem;transition:transform 0.2s, background 0.2s;}
.ktp-ambient-toggle:hover{transform:scale(1.03);}
.ktp-ambient-toggle.playing{box-shadow:0 0 16px rgba(45,80,22,0.35);}
.ktp-pet-icon{display:inline-block;width:1em;height:1em;margin-right:.35rem;vertical-align:-.15em;}
.ktp-pet-icon--dog,.ktp-pet-icon--cat,.ktp-pet-icon--bird,.ktp-pet-icon--other,.ktp-pet-icon--kutya,.ktp-pet-icon--macska,.ktp-pet-icon--madar,.ktp-pet-icon--nyul,.ktp-pet-icon--egyeb{background:var(--ktp-green-soft);border-radius:50%;}
/* Sírkert – valódi, 3D sírkő (téglalap, lekerekített tetejű), főoldalon is ugyanígy */
.ktp-sirkert{min-height:260px;padding:2rem;border-radius:var(--ktp-radius);display:flex;align-items:center;justify-content:center;perspective:1000px;position:relative;overflow:visible;}
.ktp-sirkert-inner{transform-style:preserve-3d;perspective:1000px;text-align:center;position:relative;z-index:1;}
.ktp-sirkert--meadow{background:linear-gradient(180deg,#09110f,#15251c 38%,#0f1a12 100%);}
.ktp-sirkert--garden{background:linear-gradient(180deg,#070c10,#132018 40%,#0f1912 100%);}
.ktp-sirkert--forest{background:linear-gradient(180deg,#05080c,#101a16 60%,#090f0c 100%);}
.ktp-tombstone-wrap{display:inline-block;position:relative;transform-style:preserve-3d;}
/* Valódi sírkő: téglalap, lekerekített tetejű, 3D vastagság + árnyék */
.ktp-tombstone-stone{
	position:relative;
	display:inline-block;
	min-width:200px;
	max-width:280px;
	min-height:240px;
	padding:0 1.35rem 1.5rem;
	border-radius:20px 20px 6px 6px;
	box-shadow:
		2px 2px 0 0 rgba(0,0,0,.15),
		4px 6px 0 0 rgba(0,0,0,.1),
		0 10px 32px rgba(0,0,0,.5),
		0 6px 0 0 rgba(0,0,0,.35),
		inset 1px 1px 0 rgba(255,255,255,.18),
		inset -1px -1px 0 rgba(0,0,0,.15);
	animation:ktp-tombstone-in 0.7s var(--ktp-ease) backwards;
	transform:translateZ(16px) rotateX(4deg) rotateY(-1deg);
	transition:transform 0.4s var(--ktp-ease), box-shadow 0.4s var(--ktp-ease);
}
.ktp-tombstone-stone::before{
	content:"";
	position:absolute;
	top:2px;
	bottom:2px;
	left:-6px;
	width:6px;
	border-radius:3px 0 0 3px;
	background:linear-gradient(90deg,rgba(0,0,0,.4),rgba(0,0,0,.18));
	transform:translateZ(-2px);
	pointer-events:none;
	box-shadow:inset 0 0 4px rgba(0,0,0,.2);
}
.ktp-sirkert-inner:hover .ktp-tombstone-stone{transform:translateZ(22px) scale(1.02) rotateX(3deg) rotateY(1deg);box-shadow:2px 2px 0 rgba(0,0,0,.2),4px 8px 0 rgba(0,0,0,.12),0 16px 44px rgba(0,0,0,.55),0 6px 0 0 rgba(0,0,0,.4),inset 1px 1px 0 rgba(255,255,255,.2);}
.ktp-tombstone-face{position:relative;z-index:1;padding-top:1.6rem;padding-bottom:0.6rem;text-shadow:0 1px 2px rgba(0,0,0,.5);}
.ktp-tombstone--klasszikus{background:linear-gradient(160deg,#858585 0%,#6a6a6a 25%,#525252 60%,#404040 100%);color:#f0f0f0;}
.ktp-tombstone--modern{background:linear-gradient(160deg,#727272 0%,#525252 35%,#3a3a3a 100%);color:#eee;}
.ktp-tombstone--fa{background:linear-gradient(160deg,#b09028 0%,#8a6a18 40%,#5c4610 100%);color:#f8ecd8;}
/* Kő szív – valódi szív alak háttér, a szöveg teljesen olvasható marad felette */
.ktp-tombstone--ko_sziv{
	position:relative;
	min-width:190px;
	min-height:210px;
	padding:1.8rem 1.4rem 1.6rem;
	background:transparent;
	color:#eee;
}
.ktp-tombstone--ko_sziv.ktp-tombstone-stone{
	/* A szív alakot a ::before rajzolja, a téglalap ne látszódjon külön keretként */
	box-shadow:none;
}
.ktp-tombstone--ko_sziv.ktp-tombstone-stone::before{
	display:none;
}
.ktp-tombstone--ko_sziv::before{
	content:"";
	position:absolute;
	inset:0;
	margin:auto;
	background:
		radial-gradient(circle at 30% 30%, rgba(255,255,255,0.2), transparent 55%),
		radial-gradient(circle at 70% 30%, rgba(255,255,255,0.15), transparent 55%),
		radial-gradient(circle at 30% 30%, #8a7a7a, #5a5050 60%, #403838 100%);
	clip-path:polygon(50% 10%, 80% 0%, 100% 20%, 100% 45%, 75% 75%, 50% 95%, 25% 75%, 0% 45%, 0% 20%, 20% 0%);
	box-shadow:2px 2px 0 rgba(0,0,0,.12),0 10px 32px rgba(0,0,0,.55),0 6px 0 0 rgba(0,0,0,.32),inset 1px 1px 0 rgba(255,255,255,.18);
	z-index:0;
}
.ktp-tombstone--ko_sziv .ktp-tombstone-face{
	position:relative;
	z-index:1;
}
/* Egyéb speciális típusok: kerek/ovális kő */
.ktp-tombstone--oval,
.ktp-tombstone--duo{
	border-radius:50%;
}
.ktp-tombstone-name{display:block;font-size:1.15rem;font-weight:700;line-height:1.3;}
.ktp-tombstone-msg{display:block;font-size:.88rem;opacity:.92;margin-top:.35rem;font-style:italic;}
.ktp-sir-label{display:block;font-size:0.7rem;text-transform:uppercase;letter-spacing:0.12em;opacity:0.88;margin-bottom:0.35rem;}
.ktp-sir-dates{display:block;font-size:0.9rem;opacity:0.95;margin-top:0.25rem;}
.ktp-sir-block{margin:1.5rem 0;text-align:center;}
.ktp-sir-block .ktp-sir{display:inline-block;}
@keyframes ktp-tombstone-in{from{opacity:0;transform:translateY(24px) scale(0.92) translateZ(0);}to{opacity:1;transform:translateY(0) scale(1) translateZ(12px) rotateX(2deg);}}
/* Díszek a sírkőn – abszolút pozíció */
.ktp-tombstone-decor{position:absolute;inset:0;pointer-events:none;z-index:2;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:center;padding:0 0.5rem 0.75rem;}
.ktp-decor-wreath{
	position:absolute;
	top:-20px;
	left:50%;
	transform:translateX(-50%);
	width:60px;
	height:60px;
	border-radius:50%;
	/* Külső levelek gyűrűje */
	background:
		radial-gradient(circle at 30% 30%, rgba(255,255,255,0.18) 0, transparent 45%),
		conic-gradient(from 0deg, #355c2b 0 40%, #446f34 40% 70%, #2b4a23 70% 100%);
	box-shadow:
		0 4px 12px rgba(0,0,0,.45),
		inset 0 0 8px rgba(0,0,0,.35);
	/* Lyuk a közepén – átlátszó belső kör */
	mask:
		radial-gradient(circle closest-side at 50% 50%, transparent 0 40%, #000 42%);
	-webkit-mask:
		radial-gradient(circle closest-side at 50% 50%, transparent 0 40%, #000 42%);
	opacity:.95;
	animation:ktp-float 5s ease-in-out 0.5s infinite;
}
.ktp-decor-flower{display:inline-block;width:22px;height:22px;margin:0 3px;border-radius:50%;animation:ktp-flower-sway 4s ease-in-out infinite;transform-style:preserve-3d;box-shadow:0 2px 8px rgba(0,0,0,.25);flex-shrink:0;}
.ktp-decor-flower:nth-child(2){animation-delay:0.2s;}
.ktp-decor-flower:nth-child(3){animation-delay:0.4s;}
.ktp-decor-flower:nth-child(4){animation-delay:0.1s;}
.ktp-decor-flower:nth-child(5){animation-delay:0.3s;}
.ktp-decor-flower:nth-child(6){animation-delay:0.5s;}
.ktp-sirkert-flower--rose{background:radial-gradient(circle at 30% 30%,#c44,#822);}
.ktp-sirkert-flower--tulip{background:linear-gradient(180deg,#e66,#c22);}
.ktp-sirkert-flower--myrtle{background:radial-gradient(circle at 30% 30%,#6a6,#3a5);}
@keyframes ktp-flower-sway{0%,100%{transform:rotate(-4deg) scale(1) translateZ(0);}50%{transform:rotate(4deg) scale(1.08) translateZ(4px);}}
.ktp-decor-candle,.ktp-decor-lantern{position:absolute;bottom:0.6rem;margin:0;}
.ktp-decor-candle{left:0.75rem;}
.ktp-decor-lantern{right:0.75rem;}
.ktp-tombstone-decor .ktp-decor-candle,.ktp-tombstone-decor .ktp-decor-lantern{position:absolute;}
.ktp-sirkert-candle:not(.ktp-decor-candle),.ktp-decor-candle{
	position:relative;
	width:16px;
	height:28px;
	background:linear-gradient(90deg,#e8d8c0,#d0c0a0);
	margin:0 auto;
	border-radius:4px;
	animation:ktp-float 4.4s ease-in-out infinite;
	transform-style:preserve-3d;
	box-shadow:0 4px 12px rgba(0,0,0,.4);
}
.ktp-sirkert-candle::before,.ktp-decor-candle::before{
	content:"";
	position:absolute;
	left:50%;
	top:-12px;
	width:14px;
	height:18px;
	margin-left:-7px;
	background:radial-gradient(ellipse 65% 100% at 50% 100%,#fff8c8 0%,#ffdd55 40%, transparent 70%);
	border-radius:50%;
	animation:ktp-flicker 1.6s ease-in-out infinite;
	box-shadow:0 0 24px rgba(255,210,130,.9);
}
.ktp-sirkert-lantern,.ktp-decor-lantern{width:22px;height:30px;background:linear-gradient(90deg,#d4b030,#9a7420);border-radius:3px;box-shadow:0 0 18px rgba(255,200,100,.5), 0 2px 0 rgba(255,255,255,.12) inset;animation:ktp-glow-pulse 2.5s ease-in-out infinite;}
.ktp-print-btn{padding:.5rem 1rem;background:var(--ktp-green-soft);border:1px solid var(--ktp-card-border);border-radius:8px;color:var(--ktp-text);cursor:pointer;transition:transform 0.2s, background 0.2s;}
.ktp-print-btn:hover{transform:scale(1.03);}
.ktp-qr-wrap{margin:1rem 0;}
.ktp-qr-img{display:block;max-width:120px;height:auto;}
.ktp-memorial-years{font-size:.9rem;color:var(--ktp-muted);}
@media print{
	.ktp-candle-btn,.ktp-ambient-toggle,.ktp-print-btn,.ktp-share-buttons,.ktp-qr-wrap,.ktp-condolences-form,.ktp-edit-memorial-wrap,.site-header,.site-footer,.cemetery-fog,.cemetery-leaves,.ktp-walk-hint,.nav-menu,.theme-toggle{display:none!important}
	body{background:#fff;color:#111}
	.single-memorial .memorial-meta h1{font-size:1.5rem;margin-bottom:0.5rem}
	.single-memorial .ktp-sirkert,.single-memorial .entry-content{max-width:100%}
	.ktp-condolences-list{break-inside:avoid}
	.ktp-condolences-item{margin:0.5rem 0;padding:0.5rem;border:1px solid #ddd;border-radius:4px}
	a[href]::after{content:none}
	.ktp-print-only{display:block!important}
}
@media(max-width:640px){.ktp-grid{grid-template-columns:1fr}.ktp-card{height:280px}}
@media(prefers-reduced-motion:reduce){.ktp-card,.ktp-wall-list li,.woocommerce ul.products li.product{animation:none;}.ktp-candle-flame{animation:ktp-flicker 3s ease-in-out infinite;}.ktp-candle-btn{animation:none;}.ktp-wall::after{animation:none;}.ktp-card:hover::before{animation:none;}.ktp-card a::after{transition:none;}.ktp-tombstone,.ktp-sirkert-flower,.ktp-sirkert-candle,.ktp-sirkert-wreath,.ktp-sirkert-lantern{animation:none;}.ktp-sirkert-inner{animation:none;}.ktp-product-type-candle a::before,.ktp-product-type-flower_rose a::before,.ktp-product-type-flower_tulip a::before,.ktp-product-type-flower_myrtle a::before,.ktp-product-type-wreath a::before,.ktp-product-type-lantern a::before{animation:none;}}

/* ========== Shop: vissza főoldalra (emléktárgyak oldal) ========== */
.ktp-shop-nav{margin-bottom:1.5rem;padding:0.75rem 0;border-bottom:1px solid var(--ktp-card-border);display:block !important;visibility:visible !important;}
.ktp-shop-nav a{display:inline-flex;align-items:center;gap:.4rem;font-size:1rem;font-weight:500;color:var(--ktp-green-light);text-decoration:none;transition:color .2s, transform .2s;padding:0.4rem 0;}
.ktp-shop-nav a:hover{color:var(--ktp-text);transform:translateX(-4px);}
body.ktp-woo-page .ktp-shop-nav{margin-top:0.5rem;}

/* ========== WOOD SHOP – Sírkert termékek: ikonok + animáció ========== */
.woocommerce ul.products li.product{animation:ktp-card-in 0.5s var(--ktp-ease) backwards;}
.woocommerce ul.products li.product:nth-child(1){animation-delay:0.05s;}
.woocommerce ul.products li.product:nth-child(2){animation-delay:0.1s;}
.woocommerce ul.products li.product:nth-child(3){animation-delay:0.15s;}
.woocommerce ul.products li.product:nth-child(4){animation-delay:0.2s;}
.woocommerce ul.products li.product:nth-child(5){animation-delay:0.25s;}
.woocommerce ul.products li.product:nth-child(6){animation-delay:0.3s;}
.woocommerce ul.products li.product:nth-child(n+7){animation-delay:0.35s;}
.woocommerce ul.products li.product:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,0.4);}
/* Webshop jelleg mérsöklése – emléktárgyak stílusa */
body.ktp-woo-page .woocommerce ul.products li.product a{background:var(--ktp-card-bg);}
body.ktp-woo-page .woocommerce .price{font-weight:600;color:var(--ktp-green-light);}
.woocommerce ul.products li.product a{display:block;padding:1rem;border-radius:var(--ktp-radius);background:var(--ktp-card-bg);border:1px solid var(--ktp-card-border);transition:transform 0.3s var(--ktp-ease),box-shadow 0.3s var(--ktp-ease);}
.woocommerce ul.products li.product a:hover{border-color:var(--ktp-green-light);box-shadow:0 0 20px var(--ktp-green-soft);}
.woocommerce ul.products li.product a{position:relative;}
/* Ikon: valós elem (woocommerce_before_shop_loop_item_title) – kisebb méret */
.ktp-product-icon{
	display:block;
	width:46px;
	height:46px;
	margin:0 auto 0.6rem;
	background-size:contain;
	background-position:center;
	background-repeat:no-repeat;
	transition:transform 0.4s var(--ktp-ease), box-shadow 0.4s var(--ktp-ease), filter 0.4s var(--ktp-ease);
	filter:drop-shadow(0 4px 10px rgba(0,0,0,0.45));
}
.woocommerce ul.products li.product:hover .ktp-product-icon{
	transform:scale(1.1) translateY(-2px);
	box-shadow:0 0 18px rgba(0,0,0,0.55);
	filter:drop-shadow(0 8px 20px rgba(0,0,0,0.65));
}
.ktp-product-icon--tombstone_klasszikus{
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3ClinearGradient id='g1' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23959595'/%3E%3Cstop offset='1' stop-color='%23454545'/%3E%3C/linearGradient%3E%3ClinearGradient id='g2' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23e0e0e0' stop-opacity='0.8'/%3E%3Cstop offset='1' stop-color='%23252525' stop-opacity='0.1'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='14' y='20' width='36' height='36' rx='5' fill='url(%23g1)'/%3E%3Crect x='19' y='26' width='26' height='22' rx='3' fill='%23373737'/%3E%3Crect x='19' y='26' width='26' height='10' rx='3' fill='url(%23g2)' opacity='0.35'/%3E%3Cellipse cx='32' cy='46' rx='10' ry='2.6' fill='black' opacity='0.55'/%3E%3C/svg%3E");
}
.ktp-product-icon--tombstone_modern{
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3ClinearGradient id='m1' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23868686'/%3E%3Cstop offset='1' stop-color='%23313131'/%3E%3C/linearGradient%3E%3ClinearGradient id='m2' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23ffffff' stop-opacity='0.7'/%3E%3Cstop offset='1' stop-color='%23000000' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='18' y='18' width='28' height='38' rx='3' fill='url(%23m1)'/%3E%3Crect x='22' y='24' width='20' height='18' rx='2' fill='%23262626'/%3E%3Crect x='22' y='24' width='20' height='9' rx='2' fill='url(%23m2)' opacity='0.4'/%3E%3Cellipse cx='32' cy='50' rx='9' ry='2.4' fill='black' opacity='0.55'/%3E%3C/svg%3E");
}
.ktp-product-icon--tombstone_fa{
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3ClinearGradient id='w1' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23b8861b'/%3E%3Cstop offset='1' stop-color='%235c3b12'/%3E%3C/linearGradient%3E%3ClinearGradient id='w2' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23f5deb3' stop-opacity='0.7'/%3E%3Cstop offset='1' stop-color='%23221100' stop-opacity='0.2'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='16' y='22' width='32' height='34' rx='5' fill='url(%23w1)'/%3E%3Crect x='20' y='26' width='24' height='20' rx='3' fill='%2352360f'/%3E%3Cpath d='M20 28c4 2 8 3 12 3s8-1 12-3' stroke='url(%23w2)' stroke-width='2' fill='none' opacity='0.7'/%3E%3Cellipse cx='32' cy='50' rx='10' ry='2.4' fill='black' opacity='0.55'/%3E%3C/svg%3E");
}
.ktp-product-icon--tombstone_ko_sziv{
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3CradialGradient id='h1' cx='0.3' cy='0.3' r='0.9'%3E%3Cstop offset='0' stop-color='%23f0f0f0'/%3E%3Cstop offset='0.5' stop-color='%23828282'/%3E%3Cstop offset='1' stop-color='%23363636'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cpath d='M32 17c-6-7.5-16-4-16 7.5S32 49 32 49s16-11.5 16-24.5S38 9.5 32 17z' fill='url(%23h1)'/%3E%3Cpath d='M32 21c-4.2-5-12-2.5-12 5.5S32 43 32 43s12-8.5 12-16.5S36.2 16 32 21z' fill='%23353535' opacity='0.45'/%3E%3Cellipse cx='32' cy='47' rx='9.5' ry='2.6' fill='black' opacity='0.55'/%3E%3C/svg%3E");
}
.ktp-product-icon--candle{
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3CradialGradient id='cflame' cx='0.5' cy='1' r='0.9'%3E%3Cstop offset='0' stop-color='%23fff9c4'/%3E%3Cstop offset='0.45' stop-color='%23ffdd55'/%3E%3Cstop offset='1' stop-color='transparent'/%3E%3C/radialGradient%3E%3ClinearGradient id='cbody' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%23f5e8d2'/%3E%3Cstop offset='0.5' stop-color='%23e0cfb0'/%3E%3Cstop offset='1' stop-color='%23c9b190'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cellipse cx='32' cy='21' rx='7' ry='9' fill='url(%23cflame)'/%3E%3Crect x='27' y='26' width='10' height='24' rx='3' fill='url(%23cbody)'/%3E%3Cellipse cx='32' cy='51' rx='9' ry='2.8' fill='black' opacity='0.55'/%3E%3C/svg%3E");
	animation:ktp-float 4s ease-in-out infinite;
}
.ktp-product-icon--flower_rose{
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3CradialGradient id='r1' cx='0.3' cy='0.3' r='0.9'%3E%3Cstop offset='0' stop-color='%23ffb3b3'/%3E%3Cstop offset='0.5' stop-color='%23c04444'/%3E%3Cstop offset='1' stop-color='%23822222'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='32' cy='26' r='14' fill='url(%23r1)'/%3E%3Ccircle cx='32' cy='26' r='8' fill='%23822222' opacity='0.7'/%3E%3Crect x='30' y='36' width='4' height='16' rx='1' fill='%23285318'/%3E%3C/svg%3E");
	animation:ktp-sway 5s ease-in-out infinite;
}
.ktp-product-icon--flower_tulip{
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3ClinearGradient id='t1' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23ff9a9e'/%3E%3Cstop offset='1' stop-color='%23e53935'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M32 14c-7 11-13 11-13 27h26C45 25 39 25 32 14z' fill='url(%23t1)'/%3E%3Crect x='30' y='40' width='4' height='18' rx='1' fill='%23285318'/%3E%3C/svg%3E");
	animation:ktp-sway 5.2s ease-in-out infinite;
}
.ktp-product-icon--flower_myrtle{
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3CradialGradient id='mrt' cx='0.3' cy='0.3' r='0.9'%3E%3Cstop offset='0' stop-color='%23d0f0d0'/%3E%3Cstop offset='0.5' stop-color='%2362a862'/%3E%3Cstop offset='1' stop-color='%233a5f3a'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='32' cy='24' r='12' fill='url(%23mrt)'/%3E%3Ccircle cx='32' cy='24' r='7' fill='%233a5f3a' opacity='0.7'/%3E%3Crect x='30' y='34' width='4' height='20' rx='1' fill='%23285318'/%3E%3C/svg%3E");
	animation:ktp-sway 4.8s ease-in-out infinite;
}
.ktp-product-icon--wreath{
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3ClinearGradient id='wr1' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%232d5016'/%3E%3Cstop offset='1' stop-color='%234a7c23'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='32' cy='32' r='22' fill='none' stroke='url(%23wr1)' stroke-width='6'/%3E%3Ccircle cx='32' cy='32' r='17' fill='none' stroke='%23a8d5a0' stroke-width='2' opacity='.7' stroke-dasharray='4 4'/%3E%3C/svg%3E");
	animation:ktp-float 5s ease-in-out infinite;
}
.ktp-product-icon--lantern{
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3ClinearGradient id='ln1' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23ffd95b'/%3E%3Cstop offset='1' stop-color='%23c9a227'/%3E%3C/linearGradient%3E%3CradialGradient id='ln2' cx='0.5' cy='0.5' r='0.6'%3E%3Cstop offset='0' stop-color='%23fff9c4'/%3E%3Cstop offset='1' stop-color='%23ffdd55' stop-opacity='0.1'/%3E%3C/radialGradient%3E%3C/defs%3E%3Crect x='22' y='12' width='20' height='30' rx='3' fill='url(%23ln1)'/%3E%3Crect x='26' y='18' width='12' height='16' rx='2' fill='url(%23ln2)'/%3E%3Crect x='30' y='44' width='4' height='8' rx='1' fill='%238b6914'/%3E%3Cellipse cx='32' cy='52' rx='9' ry='2.6' fill='black' opacity='0.55'/%3E%3C/svg%3E");
	animation:ktp-glow-pulse 2.5s ease-in-out infinite;
}
.ktp-product-icon--base{
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3ClinearGradient id='b1' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%234a7c23'/%3E%3Cstop offset='1' stop-color='%232d5016'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M32 8L16 24v24h32V24z' fill='url(%23b1)'/%3E%3Ccircle cx='32' cy='34' r='7' fill='%232d5016'/%3E%3Cellipse cx='32' cy='48' rx='12' ry='3' fill='black' opacity='0.5'/%3E%3C/svg%3E");
}
/* Fallback: link ::before (ha a téma nem jeleníti meg a hookot) */
.woocommerce ul.products li.product a::before{content:"";display:block;width:40px;height:40px;margin:0 auto 0.5rem;background-size:contain;background-position:center;background-repeat:no-repeat;transition:transform 0.35s var(--ktp-ease);}
.woocommerce ul.products li.product:has(.ktp-product-icon) a::before{display:none;}
/* SVG termékkép (ha nincs feltöltött kép) – mindig látszódjon */
.ktp-product-svg-img{display:block !important;max-width:100%;height:auto;min-height:88px;object-fit:contain;margin:0 auto;}
.woocommerce ul.products li.product .ktp-product-svg-img{min-height:80px;}
@keyframes ktp-sway{0%,100%{transform:rotate(-2deg);}50%{transform:rotate(2deg);}}

/* ========== Sétálható 3D sírkert ========== */
.ktp-walk-wrap{position:relative;margin:2rem 0;border-radius:var(--ktp-radius);overflow:hidden;box-shadow:var(--ktp-shadow);}
.ktp-walk-scene{
	position:relative;
	width:100%;
	height:72vh;
	min-height:320px;
	perspective:1200px;
	perspective-origin:50% 30%;
	overflow:hidden;
	background:linear-gradient(180deg,#05070a 0%,#0f1810 35%,#1a2915 70%,#1e3320 100%);
}
.ktp-walk-scene::after{
	content:"";
	position:absolute;
	inset:-25%;
	background:
		radial-gradient(ellipse 40% 30% at 20% 80%,rgba(255,210,140,0.28) 0%,transparent 70%),
		radial-gradient(ellipse 36% 28% at 75% 75%,rgba(200,220,255,0.18) 0%,transparent 70%);
	mix-blend-mode:screen;
	opacity:.18;
	pointer-events:none;
	animation:ktp-sirkert-glow 12s ease-in-out infinite;
}
.ktp-walk-sky{
	position:absolute;
	inset:0;
	background:
		radial-gradient(circle at 20% 12%, rgba(120,140,200,.24), transparent 55%),
		radial-gradient(circle at 78% 8%, rgba(220,220,255,.28), transparent 55%),
		linear-gradient(180deg,#05070a 0%,#0b1016 45%,transparent 80%);
	pointer-events:none;
	z-index:0;
}
.ktp-walk-moon{
	position:absolute;
	top:8%;
	right:12%;
	width:76px;
	height:76px;
	border-radius:50%;
	background:radial-gradient(circle at 30% 30%, #ffffff, #e0e6ff 40%, rgba(200,210,240,.2) 100%);
	box-shadow:0 0 24px rgba(210,220,255,.75);
	opacity:.9;
}
.ktp-walk-stars{
	position:absolute;
	inset:0;
	background-repeat:repeat;
	mix-blend-mode:screen;
	opacity:.7;
	animation:ktp-stars-drift 48s linear infinite;
}
.ktp-walk-stars--near{
	background-image:
		radial-gradient(1px 1px at 10% 20%, rgba(255,255,255,.9) 0, transparent 50%),
		radial-gradient(1px 1px at 30% 80%, rgba(255,255,255,.7) 0, transparent 50%),
		radial-gradient(1px 1px at 70% 30%, rgba(255,255,255,.8) 0, transparent 50%),
		radial-gradient(1px 1px at 90% 60%, rgba(255,255,255,.7) 0, transparent 50%);
	background-size:220px 220px;
}
.ktp-walk-stars--far{
	background-image:
		radial-gradient(1px 1px at 15% 10%, rgba(255,255,255,.45) 0, transparent 50%),
		radial-gradient(1px 1px at 40% 70%, rgba(255,255,255,.35) 0, transparent 50%),
		radial-gradient(1px 1px at 80% 25%, rgba(255,255,255,.4) 0, transparent 50%),
		radial-gradient(1px 1px at 64% 88%, rgba(255,255,255,.3) 0, transparent 50%);
	background-size:280px 280px;
	animation-duration:72s;
	opacity:.5;
}
@keyframes ktp-stars-drift{
	0%{transform:translate3d(0,0,0);}
	100%{transform:translate3d(-120px,-40px,0);}
}
.ktp-walk-world{
	position:absolute;
	top:50%;
	left:50%;
	width:3200px;
	height:2400px;
	margin-left:-1600px;
	margin-top:-1200px;
	transform-style:preserve-3d;
	will-change:transform;
	transition:transform 0.12s ease-out;
}
.ktp-walk-ground{
	position:absolute;
	inset:0;
	background:
		repeating-linear-gradient(90deg, transparent 0, transparent 80px, rgba(0,0,0,.03) 80px, rgba(0,0,0,.03) 81px),
		repeating-linear-gradient(0deg, transparent 0, transparent 80px, rgba(0,0,0,.03) 80px, rgba(0,0,0,.03) 81px),
		linear-gradient(165deg,#1e3320 0%,#2d5016 25%,#243d18 50%,#2d5016 75%,#1e3320 100%);
	transform:translateZ(-2px);
}
.ktp-walk-fog{
	position:absolute;
	inset:0;
	background:linear-gradient(180deg, transparent 0%, rgba(15,24,16,.4) 60%, rgba(10,18,12,.7) 100%);
	pointer-events:none;
	transform:translateZ(2px);
}
.ktp-walk-path{
	position:absolute;
	top:45%;
	left:10%;
	width:35%;
	height:8px;
	border-radius:4px;
	background:linear-gradient(90deg, transparent, rgba(180,160,120,.25), rgba(180,160,120,.35) 50%, rgba(180,160,120,.25), transparent);
	transform:translateZ(1px) rotate(-8deg);
	animation:ktp-path-dust 6s ease-in-out infinite;
}
.ktp-walk-path-2{top:70%;left:55%;width:30%;height:6px;transform:translateZ(1px) rotate(12deg);animation-delay:1s;}
@keyframes ktp-path-dust{0%,100%{opacity:.9;}50%{opacity:1;}}
.ktp-walk-grass{position:absolute;width:4px;height:8px;background:linear-gradient(180deg, transparent 30%, #2d5016);border-radius:1px;transform:translateZ(0);opacity:.6;}
.ktp-walk-grass--1{left:15%;bottom:25%;animation:ktp-grass-sway 3s ease-in-out infinite;}
.ktp-walk-grass--2{left:72%;bottom:60%;animation:ktp-grass-sway 2.8s ease-in-out 0.3s infinite;}
.ktp-walk-grass--3{left:35%;bottom:80%;animation:ktp-grass-sway 3.2s ease-in-out 0.6s infinite;}
.ktp-walk-grass--4{left:88%;bottom:35%;animation:ktp-grass-sway 2.9s ease-in-out 0.2s infinite;}
@keyframes ktp-grass-sway{0%,100%{transform:translateZ(0) skewX(-3deg);}50%{transform:translateZ(0) skewX(3deg);}}
.ktp-walk-tree{
	position:absolute;
	width:48px;
	height:64px;
	margin-left:-24px;
	margin-bottom:-8px;
	transform-style:preserve-3d;
	transform:translateZ(0);
	animation:ktp-tree-sway 5s ease-in-out infinite;
}
.ktp-walk-tree::before{
	content:"";
	position:absolute;
	bottom:0;
	left:50%;
	width:10px;
	height:24px;
	margin-left:-5px;
	background:linear-gradient(90deg,#3d2812,#5c3d1a);
	border-radius:2px;
	transform:translateZ(2px);
}
.ktp-walk-tree::after{
	content:"";
	position:absolute;
	bottom:18px;
	left:50%;
	width:36px;
	height:36px;
	margin-left:-18px;
	background:radial-gradient(circle at 30% 30%,#2d5016,#1a3010);
	border-radius:50%;
	box-shadow:0 4px 12px rgba(0,0,0,.4);
	transform:translateZ(4px);
}
.ktp-walk-tree--2{animation-delay:0.7s;}.ktp-walk-tree--2::after{width:42px;height:42px;margin-left:-21px;bottom:16px;}
.ktp-walk-tree--3{animation-delay:1.2s;}.ktp-walk-tree--3::after{width:32px;height:32px;margin-left:-16px;bottom:20px;}
@keyframes ktp-tree-sway{0%,100%{transform:translateZ(0) rotate(-1deg);}50%{transform:translateZ(0) rotate(1deg);}}
.ktp-walk-tombstone{
	position:absolute;
	width:64px;
	min-height:50px;
	margin-left:-32px;
	margin-bottom:-4px;
	padding:7px 9px;
	border-radius:7px;
	box-shadow:0 8px 18px rgba(0,0,0,.45);
	border:1px solid rgba(255,255,255,.18);
	transform:translateZ(6px);
	animation:ktp-tombstone-float 4s ease-in-out infinite;
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
}
.ktp-walk-tombstone:nth-child(odd){animation-delay:0.2s;}
.ktp-walk-tombstone:nth-child(3n){animation-delay:0.5s;}
.ktp-walk-tombstone-name{
	display:block;
	font-size:12px;
	font-weight:600;
	color:#f5f5f5;
	line-height:1.3;
	text-shadow:0 1px 3px rgba(0,0,0,.6);
}
.ktp-walk-tombstone.ktp-tombstone--klasszikus{background:linear-gradient(145deg,#6b6b6b,#4a4a4a);}
.ktp-walk-tombstone.ktp-tombstone--modern{background:linear-gradient(145deg,#5a5a5a,#3a3a3a);min-width:52px;}
.ktp-walk-tombstone.ktp-tombstone--fa{background:linear-gradient(145deg,#8b6914,#5c4610);}
.ktp-walk-tombstone.ktp-tombstone--ko_sziv{border-radius:50%;padding:8px;}
@keyframes ktp-tombstone-float{0%,100%{transform:translateZ(6px) translateY(0);}50%{transform:translateZ(6px) translateY(-2px);}}
.ktp-walk-hint{
	position:absolute;
	bottom:12px;
	left:50%;
	transform:translateX(-50%);
	font-size:12px;
	color:rgba(232,235,230,.75);
	text-align:center;
	pointer-events:none;
}
.ktp-walk-hint-kbd{
	display:inline-block;
	padding:2px 6px;
	background:rgba(0,0,0,.4);
	border-radius:4px;
	margin:0 2px;
}
.ktp-walk-firefly{
	position:absolute;
	width:6px;
	height:6px;
	border-radius:50%;
	background:radial-gradient(circle at 30% 30%, #fffac0, #ffd45a 55%, transparent 70%);
	box-shadow:0 0 16px rgba(255,212,90,.9);
	opacity:.85;
	transform:translateZ(4px);
	animation:ktp-firefly-float 9s ease-in-out infinite;
}
.ktp-walk-firefly--1{left:22%;bottom:32%;animation-delay:0s;}
.ktp-walk-firefly--2{left:68%;bottom:54%;animation-delay:2.2s;}
.ktp-walk-firefly--3{left:40%;bottom:76%;animation-delay:4.1s;}
.ktp-walk-firefly--4{left:82%;bottom:28%;animation-delay:5.6s;}
@keyframes ktp-firefly-float{
	0%,100%{transform:translate3d(0,0,6px) scale(1);opacity:.2;}
	20%{opacity:1;}
	50%{transform:translate3d(12px,-14px,10px) scale(1.15);opacity:.05;}
	70%{opacity:.9;}
}
@media(prefers-reduced-motion:reduce){
	.ktp-walk-world{transition:transform 0.05s ease-out;}
	.ktp-walk-tree,.ktp-walk-tombstone,.ktp-walk-path,.ktp-walk-grass,.ktp-walk-firefly{animation:none;}
	.ktp-sirkert::before,.ktp-walk-stars{animation:none;}
	.ktp-terkep-marker{animation:none;}
}

/* ========== Sírkert térkép ========== */
.ktp-terkep{margin:2rem 0;border-radius:var(--ktp-radius);overflow:hidden;box-shadow:var(--ktp-shadow);}
.ktp-terkep-canvas{
	background:linear-gradient(165deg,#1e3320 0%,#2d5016 30%,#243d18 60%,#2d5016 100%);
	padding:1.5rem;
	position:relative;
}
.ktp-terkep-grid{
	display:grid;
	grid-template-columns:repeat(var(--cols, 6), 1fr);
	grid-template-rows:repeat(var(--rows, 4), auto);
	gap:0.75rem;
	min-height:200px;
}
.ktp-terkep-marker{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:flex-start;
	padding:.75rem .6rem .6rem;
	min-height:72px;
	border-radius:10px;
	text-decoration:none;
	color:#eee;
	font-size:12px;
	font-weight:600;
	text-align:center;
	transition:transform 0.25s var(--ktp-ease), box-shadow 0.25s var(--ktp-ease);
	box-shadow:0 2px 8px rgba(0,0,0,.3);
	animation:ktp-terkep-marker-in 0.4s var(--ktp-ease) backwards;
}
.ktp-terkep-marker:nth-child(odd){animation-delay:0.03s;}
.ktp-terkep-marker:nth-child(4n){animation-delay:0.06s;}
@keyframes ktp-terkep-marker-in{from{opacity:0;transform:scale(0.9);}to{opacity:1;transform:scale(1);}}
.ktp-terkep-marker:hover{transform:scale(1.05);box-shadow:0 6px 16px rgba(0,0,0,.4);color:#fff;}
.ktp-terkep-marker-icon{
	width:22px;
	height:22px;
	margin-bottom:6px;
	border-radius:4px;
	background:rgba(255,255,255,.25);
}
.ktp-terkep-marker.ktp-tombstone--klasszikus{background:linear-gradient(145deg,#6b6b6b,#4a4a4a);}
.ktp-terkep-marker.ktp-tombstone--klasszikus .ktp-terkep-marker-icon{background:rgba(255,255,255,.35);}
.ktp-terkep-marker.ktp-tombstone--modern{background:linear-gradient(145deg,#5a5a5a,#3a3a3a);}
.ktp-terkep-marker.ktp-tombstone--fa{background:linear-gradient(145deg,#8b6914,#5c4610);}
.ktp-terkep-marker.ktp-tombstone--ko_sziv{border-radius:50%;}
.ktp-terkep-marker-name{
	margin-top:2px;
	font-size:0.85rem;
	line-height:1.25;
	text-align:center;
	white-space:normal;
	max-width:100%;
}
.ktp-terkep-legend{margin-top:0.75rem;font-size:13px;color:var(--ktp-muted);text-align:center;}
.ktp-grid-pagination{margin-top:1.5rem;padding:0.75rem 0;text-align:center;font-size:0.95rem;}
.ktp-grid-pagination .ktp-grid-pagination-info{color:var(--ktp-muted);margin-right:0.5rem;}
.ktp-grid-pagination a{margin:0 0.5rem;}
.ktp-condolence-count{font-size:0.85rem;color:var(--ktp-muted);}
.ktp-dashboard-item-candles,.ktp-dashboard-item-date{font-size:0.9rem;color:var(--ktp-muted);margin-left:0.35rem;}

/* ========== Felhasználói pult – Emlékoldalaim ========== */
.ktp-dashboard{margin:2rem 0;padding:1.5rem;border-radius:var(--ktp-radius);background:var(--ktp-card-bg);border:1px solid var(--ktp-card-border);}
.ktp-dashboard-title{margin:0 0 1rem;font-size:1.35rem;}
.ktp-dashboard--guest{text-align:center;}
.ktp-dashboard-list{list-style:none;margin:0;padding:0;}
.ktp-dashboard-item{margin:0.75rem 0;padding:0.5rem 0;border-bottom:1px solid var(--ktp-card-border);}
.ktp-dashboard-item:last-child{border-bottom:none;}
.ktp-dashboard-item-pet{font-weight:600;}
.ktp-dashboard-item-status{font-size:0.85rem;color:var(--ktp-muted);margin-left:0.5rem;}
.ktp-dashboard-item-status--draft{color:#c9a227;}
.ktp-dashboard-item-link{margin-left:0.75rem;text-decoration:none;}
.ktp-dashboard-item-link:hover{text-decoration:underline;}
.ktp-dashboard-empty{color:var(--ktp-muted);}
.ktp-dashboard-actions{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--ktp-card-border);}
.ktp-dashboard-actions .ktp-btn--secondary{margin-right:0.5rem;margin-bottom:0.5rem;}
.ktp-btn{display:inline-block;padding:0.5rem 1rem;background:var(--ktp-green);color:#fff;border-radius:8px;text-decoration:none;font-weight:500;transition:background 0.2s, transform 0.15s;}
.ktp-btn:hover{background:var(--ktp-green-light);color:#fff;transform:translateY(-1px);}
.ktp-btn--secondary{background:transparent;border:1px solid var(--ktp-green);color:var(--ktp-text);}
.ktp-btn--secondary:hover{background:var(--ktp-green-soft);border-color:var(--ktp-green-light);}

/* ========== Kondolenciák ========== */
.ktp-condolences{margin-top:2rem;padding:1.5rem;border-radius:var(--ktp-radius);background:var(--ktp-card-bg);border:1px solid var(--ktp-card-border);}
.ktp-condolences-title{margin:0 0 1rem;font-size:1.2rem;color:var(--ktp-text);}
.ktp-condolences-list{list-style:none;margin:0 0 1.5rem;padding:0;}
.ktp-condolences-item{margin:0.75rem 0;padding:0.75rem;background:var(--ktp-soft, rgba(255,255,255,0.03));border-radius:8px;border-left:3px solid var(--ktp-green);}
.ktp-condolences-author{font-weight:600;color:var(--ktp-text);}
.ktp-condolences-author::before{content:"";display:inline-block;width:14px;height:14px;margin-right:6px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#ffdd99,#ff9e4a 55%,transparent 100%);box-shadow:0 0 10px rgba(255,190,120,0.55);vertical-align:middle;}
.ktp-condolences-date{font-size:0.85rem;color:var(--ktp-muted);margin-left:0.5rem;}
.ktp-condolences-text{margin-top:0.35rem;color:var(--ktp-text);line-height:1.5;}
.ktp-condolences-empty{color:var(--ktp-muted);font-style:italic;}
.ktp-condolences-form{padding-top:1rem;border-top:1px solid var(--ktp-card-border);}
.ktp-condolences-form p{margin:0.75rem 0;}
.ktp-condolences-form .ktp-condolence-author,.ktp-condolences-form .ktp-condolence-message{width:100%;max-width:400px;padding:0.5rem 0.75rem;background:var(--ktp-bg);border:1px solid var(--ktp-card-border);border-radius:8px;color:var(--ktp-text);}
.ktp-condolences-form .ktp-condolence-message{min-height:80px;resize:vertical;}
.ktp-condolences-form .ktp-btn{margin-top:0.5rem;}
.ktp-condolence-submit:disabled{opacity:0.7;cursor:not-allowed;}

/* ========== Emlékoldal szerkesztés ========== */
.ktp-edit-memorial-wrap{margin-top:2rem;padding:1.5rem;border-radius:var(--ktp-radius);background:var(--ktp-card-bg);border:1px solid var(--ktp-card-border);}
.ktp-edit-memorial-title{margin:0 0 1rem;font-size:1.2rem;}
.ktp-edit-memorial-form .regular-text,.ktp-edit-memorial-form .large-text{width:100%;max-width:480px;}
.ktp-edit-memorial-form .ktp-btn{margin-right:0.5rem;}
.ktp-edit-memorial-denied{color:var(--ktp-muted);}

/* ========== Emlékoldal kitöltési űrlap (vásárlás után) ========== */
.ktp-form-message{margin:1.5rem 0;padding:1rem;background:var(--ktp-card-bg);border:1px solid var(--ktp-card-border);border-radius:var(--ktp-radius);color:var(--ktp-text);}
.ktp-memorial-form{max-width:520px;margin:2rem 0;padding:1.5rem;background:var(--ktp-card-bg);border:1px solid var(--ktp-card-border);border-radius:var(--ktp-radius);}
.ktp-memorial-form p{margin:0.75rem 0;}
.ktp-memorial-form label{display:block;margin-bottom:0.25rem;color:var(--ktp-text);}
.ktp-memorial-form input[type=text],.ktp-memorial-form input[type=number],.ktp-memorial-form select,.ktp-memorial-form textarea{width:100%;max-width:100%;padding:0.5rem 0.75rem;background:var(--ktp-bg);border:1px solid var(--ktp-card-border);border-radius:8px;color:var(--ktp-text);}
.ktp-memorial-form .ktp-submit-btn,.ktp-memorial-form .button{margin-top:0.5rem;cursor:pointer;}
.ktp-memorial-form .ktp-cta{font-weight:600;}

/* ========== Fotógaléria ========== */
.ktp-memorial-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:0.75rem;margin:1.5rem 0;}
.ktp-memorial-gallery-item{display:block;border-radius:var(--ktp-radius);overflow:hidden;aspect-ratio:1;}
.ktp-memorial-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;}

/* ========== Jelszavas emlékoldal ========== */
.ktp-memorial-password-form{margin:2rem auto;max-width:320px;padding:1.5rem;background:var(--ktp-card-bg);border-radius:var(--ktp-radius);border:1px solid var(--ktp-card-border);}
.ktp-memorial-password-form input[type=password]{width:100%;padding:0.5rem;}
.ktp-memorial-password-form .ktp-btn{margin-top:0.75rem;}
.ktp-print-only{display:none;}

/* ========== Megosztás gombok ========== */
.ktp-share-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;margin:0.5rem 0;}
.ktp-share-label{font-size:0.9rem;color:var(--ktp-muted);margin-right:0.25rem;}
.ktp-share-btn{padding:0.35rem 0.75rem;border-radius:6px;font-size:0.85rem;text-decoration:none;border:1px solid var(--ktp-card-border);background:var(--ktp-card-bg);color:var(--ktp-text);cursor:pointer;transition:background 0.2s, color 0.2s;}
.ktp-share-btn:hover{background:var(--ktp-green-soft);color:var(--ktp-text);}
.ktp-share-fb{color:#1877f2;}
.ktp-share-tw{color:#1da1f2;}
.ktp-share-wa{color:#25d366;}

/* ========== Kapcsolat űrlap ========== */
.ktp-contact-wrap{margin:2rem 0;max-width:560px;}
.ktp-contact-lead{margin-bottom:1.5rem;font-size:1.05rem;color:var(--ktp-text);line-height:1.5;}
.ktp-contact-title{margin:0 0 0.5rem;font-size:1.5rem;color:var(--ktp-text);}
.ktp-contact-intro{margin:0 0 1.25rem;color:var(--ktp-muted);font-size:0.95rem;}
.ktp-contact-message{margin:0 0 1rem;padding:0.75rem 1rem;border-radius:var(--ktp-radius);border:1px solid;}
.ktp-contact-message--success{background:rgba(45,80,22,0.2);border-color:var(--ktp-green);color:var(--ktp-text);}
.ktp-contact-message--error{background:rgba(120,40,40,0.15);border-color:rgba(200,80,80,0.4);color:#e8b4b4;}
.ktp-contact-form{padding:1.5rem;background:var(--ktp-card-bg);border:1px solid var(--ktp-card-border);border-radius:var(--ktp-radius);box-shadow:var(--ktp-shadow);}
.ktp-contact-form .ktp-contact-field{margin:0 0 1.1rem;}
.ktp-contact-form label{display:block;margin-bottom:0.35rem;font-weight:500;color:var(--ktp-text);}
.ktp-contact-form .required{color:var(--ktp-green-light);}
.ktp-contact-form input[type=text],
.ktp-contact-form input[type=email],
.ktp-contact-form textarea{width:100%;padding:0.6rem 0.85rem;background:var(--ktp-bg);border:1px solid var(--ktp-card-border);border-radius:8px;color:var(--ktp-text);font-size:1rem;transition:border-color 0.2s, box-shadow 0.2s;}
.ktp-contact-form input:focus,
.ktp-contact-form textarea:focus{border-color:var(--ktp-green-light);outline:none;box-shadow:0 0 0 2px var(--ktp-green-soft);}
.ktp-contact-form textarea{min-height:120px;resize:vertical;}
.ktp-contact-form .ktp-contact-submit{margin:1.25rem 0 0;}
.ktp-contact-btn{padding:0.65rem 1.5rem;font-size:1rem;cursor:pointer;}
.ktp-contact-btn:focus{outline:none;box-shadow:0 0 0 2px var(--ktp-green-soft);}
.ktp-contact-btn:disabled{opacity:0.7;cursor:not-allowed;}

/* ========== Grafikai stabilitás: fókusz, overflow ========== */
.ktp-btn:focus,.ktp-print-btn:focus,.ktp-ambient-toggle:focus,.ktp-share-btn:focus,.ktp-condolence-submit:focus{outline:none;box-shadow:0 0 0 2px var(--ktp-green-soft);}
.ktp-card a:focus{outline:2px solid var(--ktp-green-light);outline-offset:2px;}
.ktp-memorial-form input:focus,.ktp-memorial-form select:focus,.ktp-memorial-form textarea:focus,.ktp-condolences-form input:focus,.ktp-condolences-form textarea:focus{outline:none;border-color:var(--ktp-green-light);box-shadow:0 0 0 2px var(--ktp-green-soft);}
.ktp-card-inner{overflow:hidden;}
.ktp-grid{min-width:0;}
