/* ============================================================
   Fellfeeling — Premium Master CSS
   Würdevoll · Premium · Memorial-Grade
   ============================================================ */

:root {
	--ff-radius:    20px;
	--ff-radius-lg: 28px;
	--ff-radius-xl: 36px;
	--ff-ease:      cubic-bezier(.22, .61, .36, 1);
	--ff-ease-out-back: cubic-bezier(.34, 1.56, .64, 1);
	--ff-border:    rgba(28, 25, 23, 0.08);
	--ff-glass-bg:  rgba(250, 248, 244, 0.72);
	--ff-glass-bd:  rgba(255, 255, 255, 0.4);
	--ff-amber-rgb: 217, 119, 6;
	--ff-shadow-glow: 0 30px 80px -20px rgba(217, 119, 6, 0.32);
}

* { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
img { max-width: 100%; height: auto; }
::selection { background: var(--wp--preset--color--primary-soft); color: var(--wp--preset--color--contrast); }

/* ─── Scroll-Progress-Bar (oben) ─────────────────────────────── */
.ff-scroll-progress {
	position: fixed; top: 0; left: 0; right: 0;
	height: 2px; z-index: 9999; pointer-events: none;
	background: linear-gradient(90deg, transparent, var(--wp--preset--color--primary) 50%, transparent);
	transform-origin: 0 50%;
	transform: scaleX(var(--ff-scroll, 0));
	transition: opacity .3s ease;
}

/* ─── Custom Cursor-Dot (Desktop only) ────────────────────────── */
@media (hover: hover) and (pointer: fine) {
	.ff-cursor {
		position: fixed; top: 0; left: 0; z-index: 9998;
		width: 10px; height: 10px; border-radius: 999px;
		background: var(--wp--preset--color--primary);
		pointer-events: none;
		mix-blend-mode: multiply;
		transition: transform .15s var(--ff-ease), opacity .3s ease, width .2s ease, height .2s ease;
		transform: translate(-50%, -50%);
		opacity: 0;
	}
	.ff-cursor.is-active { opacity: .6; }
	.ff-cursor.is-hover  { width: 36px; height: 36px; opacity: .15; mix-blend-mode: multiply; }
}

/* ─── Reveal-on-scroll — opt-in via JS ──────────────────────── */
.js-reveal [data-reveal] {
	opacity: 0; transform: translateY(32px) scale(0.98);
	transition: opacity .9s var(--ff-ease), transform .9s var(--ff-ease);
}
.js-reveal [data-reveal].is-visible { opacity: 1; transform: none; }

/* ─── Header — Glassmorphism ────────────────────────────────── */
.fellfeeling-header {
	transition: background-color .35s var(--ff-ease), backdrop-filter .35s var(--ff-ease), box-shadow .35s var(--ff-ease), padding .35s var(--ff-ease);
	z-index: 100;
	backdrop-filter: saturate(0%) blur(0);
	-webkit-backdrop-filter: saturate(0%) blur(0);
}
.fellfeeling-header.is-scrolled {
	background-color: var(--ff-glass-bg) !important;
	backdrop-filter: saturate(180%) blur(20px);
	-webkit-backdrop-filter: saturate(180%) blur(20px);
	box-shadow: 0 1px 0 var(--ff-border), 0 12px 32px -8px rgba(28, 25, 23, 0.08);
	padding-top: 0.85rem !important; padding-bottom: 0.85rem !important;
}
.fellfeeling-header .wp-block-site-title a {
	transition: letter-spacing .4s var(--ff-ease);
}
.fellfeeling-header.is-scrolled .wp-block-site-title a { letter-spacing: 0.22em !important; }
/* Brand logo (Site-Logo block) */
.fellfeeling-header .wp-block-site-logo { margin: 0; line-height: 0; }
.fellfeeling-header .wp-block-site-logo a { display: inline-block; }
.fellfeeling-header .wp-block-site-logo img {
	display: block; height: auto; width: 240px; max-width: 100%;
	transition: width .35s var(--ff-ease);
}
.fellfeeling-header.is-scrolled .wp-block-site-logo img { width: 210px; }
@media (max-width: 600px) { .fellfeeling-header .wp-block-site-logo img { width: 175px; } }
.fellfeeling-header .wp-block-navigation a {
	position: relative;
	transition: color .25s var(--ff-ease);
}
.fellfeeling-header .wp-block-navigation a::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: -4px;
	height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right;
	transition: transform .35s var(--ff-ease);
}
.fellfeeling-header .wp-block-navigation a:hover::after,
.fellfeeling-header .wp-block-navigation .current-menu-item a::after {
	transform: scaleX(1); transform-origin: left;
}

/* ─── HERO — Memorial Premium ─────────────────────────────────── */
.fellfeeling-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
/* Floating amber/rose blobs */
.fellfeeling-hero::before,
.fellfeeling-hero::after {
	content: ''; position: absolute; border-radius: 50%; pointer-events: none;
	filter: blur(100px); z-index: 0;
}
.fellfeeling-hero::before {
	width: 600px; height: 600px; top: -180px; left: -100px;
	background: radial-gradient(circle, rgba(253,230,138,.85), transparent 65%);
	animation: ff-float-a 14s ease-in-out infinite;
}
.fellfeeling-hero::after {
	width: 700px; height: 700px; bottom: -240px; right: -120px;
	background: radial-gradient(circle, rgba(214,176,167,.6), transparent 65%);
	animation: ff-float-b 18s ease-in-out infinite;
}
@keyframes ff-float-a {
	0%, 100% { transform: translate(0, 0) scale(1); }
	33% { transform: translate(40px, 60px) scale(1.08); }
	66% { transform: translate(-30px, 30px) scale(0.95); }
}
@keyframes ff-float-b {
	0%, 100% { transform: translate(0, 0) scale(1); }
	50% { transform: translate(-60px, -40px) scale(1.05); }
}

/* Particle layer */
.fellfeeling-hero .ff-particles {
	position: absolute; inset: 0; z-index: 0; pointer-events: none;
	overflow: hidden;
}
.fellfeeling-hero .ff-particles span {
	position: absolute; width: 4px; height: 4px;
	background: var(--wp--preset--color--primary);
	border-radius: 999px;
	opacity: 0;
	box-shadow: 0 0 12px rgba(var(--ff-amber-rgb), 0.6);
	animation: ff-particle 14s linear infinite;
}
@keyframes ff-particle {
	0%   { opacity: 0; transform: translateY(0) scale(0.6); }
	10%  { opacity: .9; }
	90%  { opacity: .5; }
	100% { opacity: 0; transform: translateY(-120vh) scale(1.2); }
}

.fellfeeling-hero .wp-block-cover__inner-container { position: relative; z-index: 1; }
.fellfeeling-wordmark {
	background: linear-gradient(180deg, #1C1917 0%, #44403C 60%, #92400E 100%);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
	text-shadow: 0 2px 20px rgba(28, 25, 23, 0.04);
}
.fellfeeling-tagline {
	position: relative;
	display: inline-block;
	background: linear-gradient(90deg, var(--wp--preset--color--primary), var(--wp--preset--color--primary-dark), var(--wp--preset--color--primary));
	background-size: 200% auto;
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
	animation: ff-shimmer 6s linear infinite;
}
@keyframes ff-shimmer { 0% { background-position: 0% 50%; } 100% { background-position: 200% 50%; } }

.fellfeeling-hero-image {
	max-width: 460px;
	margin-left: auto !important;
	margin-right: auto !important;
	position: relative;
	transition: transform 1s var(--ff-ease);
}
.fellfeeling-hero-image::before {
	content: ''; position: absolute; inset: -30px;
	background: radial-gradient(ellipse at center, rgba(var(--ff-amber-rgb), .18), transparent 70%);
	z-index: -1; border-radius: 50%;
	animation: ff-pulse 4s ease-in-out infinite;
}
@keyframes ff-pulse {
	0%, 100% { opacity: 0.5; transform: scale(1); }
	50% { opacity: 1; transform: scale(1.08); }
}
.fellfeeling-hero-image img { width: 100%; height: auto; display: block; border-radius: 24px; }

/* ─── Buttons — Premium Hover with Shine ─────────────────────── */
.wp-element-button {
	position: relative;
	overflow: hidden;
	transition: transform .35s var(--ff-ease), box-shadow .35s var(--ff-ease), background-color .35s var(--ff-ease), color .35s var(--ff-ease), border-color .35s var(--ff-ease);
}
.wp-element-button::before {
	content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent);
	transition: left .8s var(--ff-ease);
}
.wp-element-button:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 40px -8px rgba(28, 25, 23, 0.25);
}
.wp-element-button:hover::before { left: 120%; }

/* ─── Process Steps — Connecting Line + Glow Cards ───────────── */
.fellfeeling-process { position: relative; }
.fellfeeling-process .wp-block-columns { position: relative; }
.fellfeeling-process .wp-block-columns::before {
	content: ''; position: absolute; left: 8%; right: 8%; top: 50%;
	height: 1px; background: linear-gradient(90deg, transparent, rgba(var(--ff-amber-rgb), .35), transparent);
	z-index: 0;
}
@media (max-width: 960px) { .fellfeeling-process .wp-block-columns::before { display: none; } }

.fellfeeling-process .ff-step {
	position: relative;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	background: var(--ff-glass-bg) !important;
	border: 1px solid var(--ff-glass-bd) !important;
	transition: transform .5s var(--ff-ease-out-back), box-shadow .5s var(--ff-ease), border-color .5s var(--ff-ease);
	will-change: transform;
	transform-style: preserve-3d;
}
.fellfeeling-process .ff-step:hover {
	transform: translateY(-10px) rotateX(2deg) rotateY(-2deg);
	box-shadow: var(--ff-shadow-glow), 0 32px 64px -16px rgba(28, 25, 23, 0.16);
	border-color: rgba(var(--ff-amber-rgb), 0.4) !important;
}
.fellfeeling-process .ff-step::before {
	content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
	background: radial-gradient(ellipse 80% 50% at 50% 0%, rgba(var(--ff-amber-rgb), 0.06), transparent);
	opacity: 0; transition: opacity .4s var(--ff-ease);
}
.fellfeeling-process .ff-step:hover::before { opacity: 1; }

.ff-step__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.ff-step__icon { width: 48px; height: 48px; transition: transform .5s var(--ff-ease-out-back); }
.fellfeeling-process .ff-step:hover .ff-step__icon { transform: scale(1.15) rotate(-6deg); }
.ff-step__num {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 3.5rem; font-style: italic; font-weight: 400;
	background: linear-gradient(135deg, var(--wp--preset--color--primary), var(--wp--preset--color--primary-dark));
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
	line-height: 1;
}

/* ─── Atelier — Premium Frame ────────────────────────────────── */
.fellfeeling-atelier-image {
	position: relative;
	transition: transform .8s var(--ff-ease);
}
.fellfeeling-atelier-image::before {
	content: ''; position: absolute; inset: -20px;
	border: 1px solid rgba(var(--ff-amber-rgb), 0.2);
	border-radius: 32px;
	transition: inset .6s var(--ff-ease), border-color .6s var(--ff-ease);
}
.fellfeeling-atelier:hover .fellfeeling-atelier-image::before {
	inset: -32px; border-color: rgba(var(--ff-amber-rgb), 0.35);
}
.fellfeeling-atelier-image img { width: 100%; height: auto; display: block; }

/* ─── Product Grid — Premium Cards with 3D Tilt ─────────────── */
.ff-product-grid__filter {
	display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center;
	margin: var(--wp--preset--spacing--50) 0;
}
.ff-pill {
	background: rgba(28, 25, 23, 0.02);
	border: 1.5px solid var(--ff-border);
	color: var(--wp--preset--color--stone-700);
	padding: .65rem 1.6rem;
	border-radius: 999px;
	font-size: .78rem; font-weight: 500;
	letter-spacing: 0.12em; text-transform: uppercase;
	cursor: pointer;
	transition: all .35s var(--ff-ease);
	backdrop-filter: blur(10px);
}
.ff-pill:hover {
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
	transform: translateY(-1px);
}
.ff-pill.is-active {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--contrast);
	box-shadow: 0 8px 20px -6px rgba(28, 25, 23, 0.3);
}

.ff-product-grid__items {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr));
	perspective: 1200px;
}
@media (max-width: 960px) { .ff-product-grid__items { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .ff-product-grid__items { grid-template-columns: 1fr; } }

.ff-product {
	position: relative;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--ff-border);
	border-radius: var(--ff-radius-lg);
	overflow: hidden;
	display: flex; flex-direction: column;
	transition: transform .6s var(--ff-ease-out-back), box-shadow .6s var(--ff-ease), border-color .6s var(--ff-ease);
	will-change: transform;
	transform-style: preserve-3d;
}
.ff-product::before {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(135deg, rgba(var(--ff-amber-rgb), 0.0) 0%, rgba(var(--ff-amber-rgb), 0.06) 100%);
	opacity: 0; transition: opacity .5s var(--ff-ease);
	pointer-events: none; z-index: 1;
}
.ff-product:hover {
	transform: translateY(-12px) rotateX(2deg);
	box-shadow: var(--ff-shadow-glow), 0 40px 80px -20px rgba(28, 25, 23, 0.18);
	border-color: rgba(var(--ff-amber-rgb), 0.4);
}
.ff-product:hover::before { opacity: 1; }

.ff-product__media {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: linear-gradient(135deg, #FAF8F4 0%, #EFE7DA 100%);
}
.ff-product__media img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform 1s var(--ff-ease);
}
.ff-product:hover .ff-product__media img { transform: scale(1.08); }
.ff-product__placeholder {
	display: flex; align-items: center; justify-content: center;
	width: 100%; height: 100%;
	font-size: 4rem; color: rgba(var(--ff-amber-rgb), 0.3);
}
.ff-product__img--placeholder { object-fit: contain !important; background: #FAF8F4; padding: 1.5rem; }
.ff-product:hover .ff-product__img--placeholder { transform: none; }
.ff-product__badge {
	position: absolute; top: 1rem; right: 1rem; z-index: 2;
	background: linear-gradient(135deg, var(--wp--preset--color--primary-soft), #FCD34D);
	color: var(--wp--preset--color--primary-dark);
	padding: .4rem .9rem;
	border-radius: 999px;
	font-size: .7rem; font-weight: 700; letter-spacing: .06em;
	box-shadow: 0 6px 16px -4px rgba(var(--ff-amber-rgb), 0.4);
	animation: ff-badge-pulse 3s ease-in-out infinite;
}
@keyframes ff-badge-pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.04); }
}
.ff-product__body { padding: 1.75rem 1.75rem 2rem; display: flex; flex-direction: column; flex: 1; position: relative; z-index: 2; }
.ff-product .ff-product__title, h3.ff-product__title {
	font-family: var(--wp--preset--font-family--heading) !important;
	font-size: 1.5rem !important; font-weight: 500 !important;
	margin: 0 0 .25rem !important; line-height: 1.2 !important;
	color: var(--wp--preset--color--contrast) !important;
	letter-spacing: 0 !important;
}
.ff-product__sku {
	font-size: .75rem; letter-spacing: 0.16em; text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	margin: 0 0 1rem; font-weight: 600;
}
.ff-product__meta { list-style: none; padding: 0; margin: 0 0 1.25rem; font-size: .9rem; color: var(--wp--preset--color--stone-700); line-height: 1.6; }
.ff-product__meta li { display: flex; gap: .35rem; align-items: baseline; padding: .25rem 0; border-bottom: 1px dashed var(--ff-border); }
.ff-product__meta li:last-child { border-bottom: 0; }
.ff-product__meta li span { color: var(--wp--preset--color--stone-500); font-size: .78rem; min-width: 120px; flex-shrink: 0; letter-spacing: 0.04em; }
.ff-product__excerpt { color: var(--wp--preset--color--stone-700); font-size: .95rem; line-height: 1.65; margin: 0 0 1.5rem; font-style: italic; }
.ff-product__footer {
	display: flex; justify-content: space-between; align-items: center; gap: .75rem 1rem;
	flex-wrap: wrap;
	margin-top: auto; padding-top: 1.25rem; border-top: 1px solid var(--ff-border);
}
.ff-product__price {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.75rem; font-weight: 500;
	background: linear-gradient(135deg, var(--wp--preset--color--contrast), var(--wp--preset--color--primary-dark));
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
}
.ff-product__cta {
	position: relative; overflow: hidden;
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	white-space: nowrap; line-height: 1;
	background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base);
	padding: .85rem 1.5rem; border-radius: 999px;
	border: 1px solid var(--wp--preset--color--contrast);
	font-size: .74rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
	text-decoration: none;
	box-shadow: 0 4px 14px -6px rgba(28, 25, 23, 0.45);
	transition: background .35s var(--ff-ease), border-color .35s var(--ff-ease), transform .35s var(--ff-ease), box-shadow .35s var(--ff-ease);
}
.ff-product__cta::before {
	content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.3), transparent);
	transition: left .6s var(--ff-ease);
}
.ff-product__cta-arrow { transition: transform .35s var(--ff-ease); }
.ff-product__cta:hover {
	background: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	transform: translateY(-2px);
	box-shadow: 0 12px 28px -8px rgba(var(--ff-amber-rgb), 0.45);
}
.ff-product__cta:hover .ff-product__cta-arrow { transform: translateX(3px); }
.ff-product__cta:hover::before { left: 120%; }
.ff-product__cta:focus-visible { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 2px; }

/* ─── Product card — thumbnail gallery ───────────────────────── */
.ff-product__thumbs {
	display: flex; flex-wrap: wrap; gap: .5rem;
	padding: .85rem 1rem 0;
}
.ff-product__thumb {
	width: 56px; height: 56px; flex: 0 0 auto;
	padding: 0; border: 1px solid var(--ff-border); border-radius: 12px;
	overflow: hidden; cursor: pointer; background: #FAF8F4;
	opacity: .7; transition: opacity .25s var(--ff-ease), border-color .25s var(--ff-ease), transform .25s var(--ff-ease);
}
.ff-product__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ff-product__thumb:hover { opacity: 1; transform: translateY(-2px); }
.ff-product__thumb.is-active {
	opacity: 1; border-color: var(--wp--preset--color--primary);
	box-shadow: 0 0 0 2px rgba(var(--ff-amber-rgb), 0.35);
}
.ff-product__thumb:focus-visible { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 2px; }
@media (max-width: 600px) {
	.ff-product__thumb { width: 48px; height: 48px; }
}

/* ─── FAQ — Glassmorphism Accordions ─────────────────────────── */
.fellfeeling-faq .ff-faq {
	background: var(--ff-glass-bg);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid var(--ff-border);
	border-radius: var(--ff-radius-lg);
	margin-bottom: 1rem;
	overflow: hidden;
	transition: all .4s var(--ff-ease);
}
.fellfeeling-faq .ff-faq.is-highlighted {
	background: linear-gradient(135deg, rgba(253, 230, 138, 0.4) 0%, rgba(250, 248, 244, 0.6) 100%);
	border-color: rgba(var(--ff-amber-rgb), .3);
}
.fellfeeling-faq .ff-faq:hover { border-color: rgba(var(--ff-amber-rgb), .25); transform: translateX(4px); }
.fellfeeling-faq .ff-faq[open] {
	border-color: rgba(var(--ff-amber-rgb), .45);
	box-shadow: 0 12px 32px -8px rgba(28, 25, 23, .08), var(--ff-shadow-glow);
	transform: translateX(0);
}
.fellfeeling-faq .ff-faq summary {
	cursor: pointer; padding: 1.6rem 1.85rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.3rem; font-weight: 500;
	color: var(--wp--preset--color--contrast);
	list-style: none;
	display: flex; justify-content: space-between; align-items: center; gap: 1rem;
	transition: color .25s var(--ff-ease);
}
.fellfeeling-faq .ff-faq summary::-webkit-details-marker { display: none; }
.fellfeeling-faq .ff-faq summary::after {
	content: '+'; font-size: 2rem; font-weight: 300;
	color: var(--wp--preset--color--primary);
	transition: transform .4s var(--ff-ease-out-back);
	line-height: 1;
}
.fellfeeling-faq .ff-faq[open] summary::after { transform: rotate(135deg); }
.fellfeeling-faq .ff-faq summary:hover { color: var(--wp--preset--color--primary); }
.fellfeeling-faq .ff-faq__body { padding: 0 1.85rem 1.85rem; color: var(--wp--preset--color--stone-700); line-height: 1.8; }
.fellfeeling-faq .ff-faq__body p { margin: 0 0 .75rem; }
.fellfeeling-faq .ff-faq__body ul { margin: .5rem 0 .75rem 1.25rem; }
.fellfeeling-faq .ff-faq__body li { margin: .25rem 0; }

/* ─── Contact Form — Premium ─────────────────────────────────── */
.ff-contact-form {
	max-width: 640px;
	margin: var(--wp--preset--spacing--50) auto 0;
	background: var(--ff-glass-bg);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	padding: 2.75rem;
	border-radius: var(--ff-radius-xl);
	border: 1px solid var(--ff-glass-bd);
	box-shadow: 0 24px 60px -16px rgba(28, 25, 23, 0.10);
}
.ff-form-row { display: flex; flex-direction: column; gap: .55rem; margin-bottom: 1.4rem; }
.ff-form-row label {
	font-size: .78rem; font-weight: 600;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--wp--preset--color--stone-700);
}
.ff-optional { color: var(--wp--preset--color--stone-500); font-weight: 400; text-transform: none; letter-spacing: 0; font-size: .85rem; }
.ff-form-row input,
.ff-form-row textarea {
	background: rgba(255, 255, 255, 0.7);
	border: 1.5px solid transparent;
	border-radius: 14px;
	padding: 1rem 1.2rem;
	font-family: inherit;
	font-size: 1rem;
	color: var(--wp--preset--color--contrast);
	transition: all .3s var(--ff-ease);
}
.ff-form-row input:focus,
.ff-form-row textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--base);
	box-shadow: 0 0 0 4px rgba(var(--ff-amber-rgb), .12);
}
.ff-form-consent label { display: flex; align-items: flex-start; gap: .75rem; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: .9rem; line-height: 1.5; }
.ff-form-consent a { color: var(--wp--preset--color--primary); }
.ff-form-submit {
	position: relative; overflow: hidden;
	width: 100%;
	background: linear-gradient(135deg, var(--wp--preset--color--contrast), var(--wp--preset--color--primary-dark));
	color: var(--wp--preset--color--base);
	border: 0;
	padding: 1.2rem 2rem;
	border-radius: 999px;
	font-family: inherit;
	font-size: .9rem; font-weight: 500;
	letter-spacing: 0.16em; text-transform: uppercase;
	cursor: pointer;
	transition: all .4s var(--ff-ease);
	box-shadow: 0 12px 28px -8px rgba(28, 25, 23, 0.3);
}
.ff-form-submit::before {
	content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.25), transparent);
	transition: left .8s var(--ff-ease);
}
.ff-form-submit:hover {
	transform: translateY(-2px);
	box-shadow: 0 20px 40px -10px rgba(var(--ff-amber-rgb), 0.4);
}
.ff-form-submit:hover::before { left: 120%; }

.ff-form-success {
	padding: 1.4rem 1.6rem;
	background: linear-gradient(135deg, rgba(253, 230, 138, .9) 0%, rgba(253, 230, 138, .5) 100%);
	border-radius: 14px;
	margin-bottom: 1.5rem;
	color: var(--wp--preset--color--primary-dark);
	font-weight: 500;
	border-left: 4px solid var(--wp--preset--color--primary);
}
.ff-form-error {
	padding: 1.4rem 1.6rem;
	background: rgba(220, 38, 38, 0.08);
	border-radius: 14px;
	margin-bottom: 1.5rem;
	color: #991b1b;
	border-left: 4px solid #dc2626;
}

/* ─── CTA — Animated Gradient Background ───────────────────── */
.fellfeeling-cta .wp-block-group {
	position: relative; overflow: hidden;
	background: var(--wp--preset--color--contrast) !important;
}
.fellfeeling-cta .wp-block-group::before {
	content: ''; position: absolute; inset: -50%;
	background: radial-gradient(circle at 30% 30%, rgba(var(--ff-amber-rgb), .15), transparent 50%),
	            radial-gradient(circle at 70% 70%, rgba(214, 176, 167, .12), transparent 50%);
	animation: ff-cta-gradient 20s linear infinite;
	pointer-events: none;
}
@keyframes ff-cta-gradient {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}
.fellfeeling-cta .wp-block-group > * { position: relative; z-index: 1; }

/* ─── Footer — Subtle Gradient on Wordmark ─────────────────── */
.fellfeeling-footer h3 {
	background: linear-gradient(180deg, var(--wp--preset--color--base) 0%, var(--wp--preset--color--primary-soft) 100%);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* ─── Gallery — Masonry-style Grid ─────────────────────────── */
.fellfeeling-gallery .ff-gallery-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: 220px;
	gap: 12px;
	margin: var(--wp--preset--spacing--60) auto 0;
	max-width: var(--wp--style--global--wide-size, 1280px);
	padding: 0 var(--wp--preset--spacing--40);
}
@media (max-width: 960px) {
	.fellfeeling-gallery .ff-gallery-grid { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 180px; }
}
@media (max-width: 600px) {
	.fellfeeling-gallery .ff-gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 160px; }
}
.ff-gallery__item {
	position: relative;
	overflow: hidden;
	border-radius: 18px;
	background: var(--wp--preset--color--muted);
	cursor: pointer;
	transition: transform .55s var(--ff-ease), box-shadow .55s var(--ff-ease);
	margin: 0;
}
.ff-gallery__item img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform 1.2s var(--ff-ease), filter .55s var(--ff-ease);
	filter: saturate(0.92);
}
.ff-gallery__item:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 48px -12px rgba(28, 25, 23, 0.18);
	z-index: 2;
}
.ff-gallery__item:hover img { transform: scale(1.08); filter: saturate(1.1); }
/* Masonry pattern: every 6th item spans 2 rows for visual rhythm */
.ff-gallery__item--0 { grid-row: span 2; }
.ff-gallery__item--3 { grid-row: span 2; }
@media (max-width: 600px) {
	.ff-gallery__item--0,
	.ff-gallery__item--3 { grid-row: auto; }
}

/* ─── Shipping / Process / Atelier cards — subtle glassmorphism ──── */
.fellfeeling-shipping .wp-block-column[style*="border-radius"] {
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	transition: transform .5s var(--ff-ease), box-shadow .5s var(--ff-ease);
}
.fellfeeling-shipping .wp-block-column[style*="border-radius"]:hover {
	transform: translateY(-6px);
	box-shadow: 0 24px 48px -12px rgba(28, 25, 23, 0.10);
}

/* ─── Legal Pages (AGB / Datenschutz / Impressum) ─────────────── */
.fellfeeling-legal {
	background: linear-gradient(180deg, var(--wp--preset--color--base) 0%, var(--wp--preset--color--surface) 100%);
}
.ff-legal-layout {
	display: grid;
	grid-template-columns: 240px minmax(0, 760px);
	gap: var(--wp--preset--spacing--60);
	max-width: 1180px;
	margin: var(--wp--preset--spacing--60) auto 0;
	padding: 0 var(--wp--preset--spacing--40);
	justify-content: center;
}
@media (max-width: 880px) { .ff-legal-layout { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--40); } }

.ff-legal-toc {
	position: sticky; top: 110px;
	align-self: start;
	background: var(--ff-glass-bg);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border: 1px solid var(--ff-glass-bd);
	border-radius: var(--ff-radius-lg);
	padding: 1.5rem 1.5rem 1.5rem 1.75rem;
	max-height: calc(100vh - 140px);
	overflow-y: auto;
}
@media (max-width: 880px) {
	.ff-legal-toc { position: static; max-height: none; }
}
.ff-legal-toc__label {
	font-size: .72rem; font-weight: 600;
	letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	margin: 0 0 1rem;
}
.ff-legal-toc__list { list-style: none; padding: 0; margin: 0; }
.ff-legal-toc__list li { margin: 0; }
.ff-legal-toc__list a {
	display: flex; gap: .65rem; align-items: baseline;
	padding: .55rem 0;
	color: var(--wp--preset--color--stone-700);
	text-decoration: none;
	font-size: .9rem; line-height: 1.4;
	border-bottom: 1px dashed transparent;
	transition: color .25s var(--ff-ease), padding .25s var(--ff-ease), border-color .25s var(--ff-ease);
}
.ff-legal-toc__list a:hover {
	color: var(--wp--preset--color--primary);
	padding-left: .35rem;
	border-color: rgba(var(--ff-amber-rgb), .25);
}
.ff-legal-toc__num {
	font-family: var(--wp--preset--font-family--heading);
	font-style: italic; font-weight: 500;
	color: var(--wp--preset--color--primary);
	font-size: .85rem;
	min-width: 22px;
}

.ff-legal-content { display: flex; flex-direction: column; gap: 1.25rem; }

.fellfeeling-legal .ff-legal-card {
	position: relative;
	background: var(--ff-glass-bg);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid var(--ff-glass-bd);
	border-radius: var(--ff-radius-lg);
	padding: 2.25rem 2.25rem 2.25rem 4.5rem !important;
	transition: transform .5s var(--ff-ease), box-shadow .5s var(--ff-ease), border-color .5s var(--ff-ease);
	scroll-margin-top: 100px;
}
.fellfeeling-legal .ff-legal-card:hover {
	transform: translateX(4px);
	box-shadow: 0 24px 48px -16px rgba(28, 25, 23, .08);
	border-color: rgba(var(--ff-amber-rgb), .25);
}
.fellfeeling-legal .ff-legal-card:target {
	border-color: rgba(var(--ff-amber-rgb), .5);
	box-shadow: var(--ff-shadow-glow);
}
.fellfeeling-legal .ff-legal-card__num {
	position: absolute !important; left: 1.5rem !important; top: 1.85rem !important;
	font-family: var(--wp--preset--font-family--heading) !important;
	font-size: 2.4rem !important; font-style: italic !important; font-weight: 400 !important;
	background: linear-gradient(135deg, var(--wp--preset--color--primary), var(--wp--preset--color--primary-dark));
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
	line-height: 1 !important;
	margin: 0 !important;
}
@media (max-width: 600px) {
	.fellfeeling-legal .ff-legal-card { padding: 2rem 1.5rem !important; }
	.fellfeeling-legal .ff-legal-card__num { position: static !important; margin-bottom: .5rem !important; display: inline-block !important; }
}
.fellfeeling-legal .ff-legal-card__title {
	font-family: var(--wp--preset--font-family--heading) !important;
	font-size: 1.6rem !important; font-weight: 500 !important;
	color: var(--wp--preset--color--contrast) !important;
	margin: 0 0 1rem !important;
	letter-spacing: -0.005em !important;
	line-height: 1.25 !important;
}
.ff-legal-card__body { color: var(--wp--preset--color--stone-700); line-height: 1.75; font-size: .98rem; }
.ff-legal-card__body p { margin: 0 0 .85rem; }
.ff-legal-card__body p:last-child { margin-bottom: 0; }
.ff-legal-card__body ul { margin: .5rem 0 .85rem 1.25rem; padding: 0; }
.ff-legal-card__body li { margin: .25rem 0; }
.ff-legal-card__body address {
	font-style: normal; padding: 1rem 1.25rem;
	background: rgba(var(--ff-amber-rgb), .06); border-radius: 12px;
	border-left: 3px solid var(--wp--preset--color--primary);
	margin: .25rem 0 .85rem;
}
.ff-legal-card__body a {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
	text-decoration-thickness: 1px; text-underline-offset: 3px;
}
.ff-legal-card__body a:hover { color: var(--wp--preset--color--primary-dark); }

.fellfeeling-legal .ff-legal-card--cta {
	background: linear-gradient(135deg, var(--wp--preset--color--contrast), var(--wp--preset--color--primary-dark)) !important;
	color: var(--wp--preset--color--base) !important;
	border-color: transparent !important;
	padding: 2.25rem 2.5rem !important;
	margin-top: 1rem;
	display: flex; align-items: center; justify-content: space-between;
	gap: 1.5rem; flex-wrap: wrap;
}
.fellfeeling-legal .ff-legal-card--cta p { margin: 0; color: var(--wp--preset--color--base); }
.fellfeeling-legal .ff-legal-card--cta strong { color: var(--wp--preset--color--primary-soft); }

.ff-legal-cta-link {
	color: var(--wp--preset--color--primary-soft) !important;
	text-decoration: none !important;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: .8rem;
	border: 1.5px solid var(--wp--preset--color--primary-soft);
	padding: .8rem 1.5rem;
	border-radius: 999px;
	transition: all .3s var(--ff-ease);
	white-space: nowrap;
}
.ff-legal-cta-link:hover {
	background: var(--wp--preset--color--primary-soft);
	color: var(--wp--preset--color--contrast) !important;
}

.fellfeeling-legal--single .ff-legal-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
	max-width: 1180px;
	margin: var(--wp--preset--spacing--60) auto 0;
	padding: 0 var(--wp--preset--spacing--40);
}
@media (max-width: 720px) { .fellfeeling-legal--single .ff-legal-grid { grid-template-columns: 1fr; } }

.ff-legal-cta-band {
	max-width: 1180px;
	margin: var(--wp--preset--spacing--60) auto 0;
	padding: 1.75rem 2rem;
	background: linear-gradient(135deg, var(--wp--preset--color--contrast), var(--wp--preset--color--primary-dark));
	color: var(--wp--preset--color--base);
	border-radius: var(--ff-radius-lg);
	display: flex; justify-content: space-between; align-items: center;
	gap: 1.5rem; flex-wrap: wrap;
}
.ff-legal-cta-band p { margin: 0; color: var(--wp--preset--color--base); font-family: var(--wp--preset--font-family--heading); font-size: 1.4rem; font-weight: 500; letter-spacing: 0.06em; }
.ff-legal-cta-band em { color: var(--wp--preset--color--primary-soft); }

/* ─── Reduced Motion Override ────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation: none !important;
		transition-duration: .01ms !important;
	}
	.ff-cursor { display: none !important; }
	.fellfeeling-hero .ff-particles { display: none; }
}

/* ─── Kundenstimmen / Testimonials ───────────────────────────── */
.ff-testimonials {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
	max-width: 1100px; margin: 0 auto;
}
@media (max-width: 900px) { .ff-testimonials { grid-template-columns: 1fr; max-width: 560px; } }
.ff-testimonial {
	margin: 0; padding: 2rem 1.75rem;
	background: var(--wp--preset--color--base); border: 1px solid var(--ff-border);
	border-radius: 20px; box-shadow: 0 10px 30px -18px rgba(28,25,23,.25);
	display: flex; flex-direction: column; gap: 1rem;
	transition: transform .4s var(--ff-ease), box-shadow .4s var(--ff-ease);
}
.ff-testimonial:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -20px rgba(28,25,23,.32); }
.ff-testimonial__rating { color: #E0A82E; letter-spacing: .12em; font-size: 1.05rem; }
.ff-testimonial__quote {
	margin: 0; border: 0; padding: 0;
	font-family: var(--wp--preset--font-family--heading); font-style: italic;
	font-size: 1.15rem; line-height: 1.6; color: var(--wp--preset--color--contrast);
}
.ff-testimonial__cite {
	margin-top: auto; font-size: .85rem; font-weight: 600; letter-spacing: .04em;
	color: var(--wp--preset--color--contrast); font-style: normal;
}
.ff-testimonial__cite span { color: var(--wp--preset--color--stone-500); font-weight: 400; }

/* ─── Eure Erinnerungen (Vorher / Nachher) ───────────────────── */
.ff-memories-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
	max-width: 1100px; margin: var(--wp--preset--spacing--60) auto 0;
}
@media (max-width: 900px) { .ff-memories-grid { grid-template-columns: 1fr; max-width: 480px; } }
.ff-memory { margin: 0; }
.ff-memory__pair { display: flex; align-items: center; gap: .5rem; }
.ff-memory__img { position: relative; flex: 1; border-radius: 16px; overflow: hidden; aspect-ratio: 1/1; }
.ff-memory__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s var(--ff-ease); }
.ff-memory:hover .ff-memory__img img { transform: scale(1.06); }
.ff-memory__tag {
	position: absolute; top: .6rem; left: .6rem; z-index: 2;
	background: rgba(28,25,23,.72); color: #fff; backdrop-filter: blur(4px);
	font-size: .62rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
	padding: .25rem .6rem; border-radius: 999px;
}
.ff-memory__tag--after { background: var(--wp--preset--color--primary); }
.ff-memory__arrow { flex: 0 0 auto; color: var(--wp--preset--color--primary); font-size: 1.4rem; }
.ff-memory__cap { text-align: center; margin-top: .9rem; font-size: .9rem; color: var(--wp--preset--color--stone-700); }
.ff-memory__cap strong { color: var(--wp--preset--color--contrast); }

/* ─── Produktkarte: WooCommerce-Verknüpfung ──────────────────── */
.ff-product__media-link { display: block; width: 100%; height: 100%; }
.ff-product__cta.loading { opacity: .7; pointer-events: none; }
.ff-product__cta.added .ff-product__cta-arrow { transform: translateX(3px); }
.ff-product__footer .added_to_cart {
	flex-basis: 100%; order: 3; margin-top: .25rem;
	font-size: .78rem; font-weight: 600; letter-spacing: .04em;
	color: var(--wp--preset--color--primary-dark); text-decoration: underline;
}
