/* ====================================================================
 *  HOMEPAGE — Warm Premium (Denotenshop x Animata)
 *
 *  Cream backgrounds, soft rounded corners, orange + purple accents,
 *  Fraunces editorial headlines, Inter body. Animata-style motion:
 *  smooth lift on cards (translateY -3px + shadow), magnetic feel,
 *  scale on image hover, smooth ease throughout.
 *
 *  Sections:
 *   1. HERO              — 2-col split, orange blob decor, floating badge/chip
 *   2. USP STRIP         — deep-cream band, 4 friendly trust statements
 *   3. FEATURED PRODUCTS — section spacing only (cards in shop.css)
 *   4. CATEGORIES        — confident 6-up grid, alternating placeholder tints
 *   5. BRAND STORY       — editorial split with floating quote card
 *   6. EDITORIAL BANNER  — warm dark with orange radial wash
 *   7. TESTIMONIALS      — 3 lift-cards with oversized quote glyph
 *   8. BLOG TEASER       — section spacing only (cards in blog.css)
 *   9. NEWSLETTER        — warm dark hero card with orange radial glow
 * ==================================================================== */


/* ====================================================================
 * 1. HERO
 * 2-col grid (1.1fr / 1fr). Soft orange radial blob behind copy,
 * subtle purple wash top-right. Rounded media frame with floating
 * 9.4 badge bottom-left and pill chip top-right.
 * ==================================================================== */
.wpl-hero {
	position: relative;
	padding-block: clamp(3rem, 7vw, 6rem) clamp(2.5rem, 5vw, 4.5rem);
	overflow: hidden;
	background: var(--c-bg);
	background-image: radial-gradient(circle at 90% 10%, rgba(236, 231, 247, 0.6), transparent 60%);
}

/* Soft orange blurred blob behind hero copy */
.wpl-hero__decor {
	position: absolute;
	top: -100px;
	left: -100px;
	width: 600px;
	height: 600px;
	background: radial-gradient(circle, var(--c-primary-soft), transparent 60%);
	opacity: 0.7;
	filter: blur(20px);
	pointer-events: none;
	z-index: 0;
}

.wpl-hero__grid {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
	position: relative;
	z-index: 1;
}

/* ---- Copy column ---- */
.wpl-hero__copy {
	max-width: 36rem;
	position: relative;
}

.wpl-hero__title {
	font-family: var(--ff-display);
	font-size: clamp(2.5rem, 6vw, var(--fs-6xl));
	line-height: 1.05;
	letter-spacing: -0.025em;
	font-weight: 500;
	color: var(--c-fg);
	margin: 0 0 var(--sp-5);
}
/* Optional editorial italic emphasis if PHP marks it */
.wpl-hero__title em {
	font-style: italic;
	font-weight: 500;
	color: var(--c-primary);
}

.wpl-hero__sub {
	font-family: var(--ff-text);
	font-size: var(--fs-lg);
	color: var(--c-fg-soft);
	line-height: 1.55;
	max-width: 46ch;
	margin: 0 0 var(--sp-7);
}

.wpl-hero__ctas {
	display: flex;
	gap: var(--sp-4);
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: var(--sp-8);
}

.wpl-hero__proofs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-6);
	list-style: none;
	padding: 0;
	margin: 0;
}
.wpl-hero__proofs li {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--ff-text);
	font-size: var(--fs-xs);
	font-weight: 500;
	color: var(--c-fg);
}
.wpl-hero__proofs .wpl-icon {
	width: 1.05em;
	height: 1.05em;
	color: var(--c-trust);
	flex-shrink: 0;
}
.wpl-hero__proofs .wpl-icon svg [stroke] { stroke-width: 1.8; }

/* ---- Media column ---- */
.wpl-hero__media {
	position: relative;
}

.wpl-hero__frame {
	position: relative;
	aspect-ratio: 4 / 5;
	border-radius: var(--r-xl);
	overflow: hidden;
	background: var(--c-accent-soft);
	box-shadow: var(--sh-3);
}

.wpl-hero__img,
.wpl-hero__img--placeholder {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform var(--dur-slower) var(--ease);
}
.wpl-hero__media:hover .wpl-hero__img { transform: scale(1.03); }

/* CSS-only purple-tinted placeholder with editorial italic label */
.wpl-hero__img--placeholder {
	background: var(--c-accent-soft);
	display: flex;
	align-items: center;
	justify-content: center;
}
.wpl-hero__img--placeholder svg { display: none; }
.wpl-hero__img--placeholder::after {
	content: 'Eau de Linge N°01';
	font-family: var(--ff-display);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	color: var(--c-accent);
	letter-spacing: -0.01em;
}

/* Floating 9.4 badge — bottom-left, slightly tilted */
.wpl-hero__badge {
	position: absolute;
	left: -24px;
	bottom: 28px;
	background: var(--c-bg-2);
	color: var(--c-fg);
	border-radius: var(--r-md);
	padding: 0.85rem 1.1rem;
	display: inline-flex;
	flex-direction: column;
	gap: 2px;
	min-width: 116px;
	box-shadow: var(--sh-3);
	transform: rotate(-2deg);
	z-index: 2;
	transition: transform var(--dur) var(--ease);
}
.wpl-hero__badge:hover { transform: rotate(-2deg) translateY(-2px); }
.wpl-hero__badge-num {
	font-family: var(--ff-display);
	font-size: 1.75rem;
	font-weight: 600;
	line-height: 1;
	color: var(--c-primary);
	letter-spacing: -0.02em;
}
.wpl-hero__badge-text {
	font-family: var(--ff-mono);
	font-size: 0.625rem;
	letter-spacing: var(--ls-wider);
	text-transform: uppercase;
	color: var(--c-muted-fg);
}

/* Pill chip — top-right, dark on cream */
.wpl-hero__chip {
	position: absolute;
	right: -16px;
	top: 28px;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.55rem 1rem;
	background: var(--c-fg);
	color: var(--c-bg-2);
	border-radius: var(--r-pill);
	font-family: var(--ff-text);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0;
	box-shadow: var(--sh-2);
	z-index: 2;
}
.wpl-hero__chip .wpl-icon { display: none; }

/* Brands strip below frame */
.wpl-hero__brands {
	display: flex;
	align-items: baseline;
	gap: var(--sp-5);
	margin-top: var(--sp-6);
	padding-top: var(--sp-5);
	border-top: 1px solid var(--c-border-light);
	flex-wrap: wrap;
}
.wpl-hero__brands-label {
	font-family: var(--ff-mono);
	font-size: var(--fs-xxs);
	letter-spacing: var(--ls-wider);
	text-transform: uppercase;
	color: var(--c-muted-fg);
	flex-shrink: 0;
}
.wpl-hero__brands-list {
	font-family: var(--ff-display);
	font-style: italic;
	font-size: var(--fs-md);
	color: var(--c-fg);
	font-weight: 500;
	letter-spacing: 0;
}

@media (max-width: 980px) {
	.wpl-hero__grid { grid-template-columns: 1fr; gap: var(--sp-9); }
	.wpl-hero__media { order: -1; max-width: 520px; margin: 0 auto; width: 100%; }
	.wpl-hero__title { font-size: clamp(2.25rem, 9vw, 3.5rem); }
}
@media (max-width: 560px) {
	.wpl-hero__badge { left: -12px; padding: 0.7rem 0.9rem; min-width: 104px; }
	.wpl-hero__chip  { right: -8px; }
	.wpl-hero__proofs { gap: var(--sp-4); }
}


/* ====================================================================
 * 2. USP STRIP
 * Deep-cream band, 4 friendly trust statements with orange icons.
 * ==================================================================== */
.wpl-usps {
	background: var(--c-bg-3);
	padding-block: clamp(2rem, 4vw, 3rem);
	border-top: 1px solid var(--c-border);
	border-bottom: 1px solid var(--c-border);
}
.wpl-usps__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	list-style: none;
	padding: 0;
	margin: 0;
}
.wpl-usp {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
	padding: 1rem 1.25rem;
	border-left: 1px solid var(--c-border);
	transition: transform var(--dur) var(--ease);
}
.wpl-usp:first-child { border-left: 0; padding-left: 0; }
.wpl-usp:last-child  { padding-right: 0; }
.wpl-usp:hover { transform: translateY(-2px); }

.wpl-usp__icon {
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	background: var(--c-primary-soft);
	color: var(--c-primary);
	border-radius: var(--r-md);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background var(--dur) var(--ease);
}
.wpl-usp:hover .wpl-usp__icon { background: var(--c-primary); color: var(--c-bg-2); }
.wpl-usp__icon .wpl-icon { width: 22px; height: 22px; }
.wpl-usp__icon svg [stroke] { stroke-width: 1.6; }

.wpl-usp__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	padding-top: 4px;
}
.wpl-usp__title {
	display: block;
	font-family: var(--ff-text);
	font-style: normal;
	font-weight: 700;
	font-size: var(--fs-sm);
	color: var(--c-fg);
	letter-spacing: 0;
	line-height: 1.3;
}
.wpl-usp__sub {
	display: block;
	font-family: var(--ff-text);
	font-size: var(--fs-xs);
	letter-spacing: 0;
	text-transform: none;
	color: var(--c-muted-fg);
	line-height: 1.5;
}

@media (max-width: 900px) {
	.wpl-usps__grid { grid-template-columns: repeat(2, 1fr); }
	.wpl-usp { padding: var(--sp-4); }
	.wpl-usp:nth-child(odd)  { border-left: 0; padding-left: 0; }
	.wpl-usp:nth-child(even) { padding-right: 0; }
	.wpl-usp:nth-child(n+3)  { border-top: 1px solid var(--c-border); padding-top: var(--sp-5); margin-top: var(--sp-2); }
}
@media (max-width: 480px) {
	.wpl-usps__grid { grid-template-columns: 1fr; }
	.wpl-usp { border-left: 0; padding: var(--sp-4) 0; border-top: 1px solid var(--c-border); }
	.wpl-usp:first-child { border-top: 0; padding-top: 0; }
	.wpl-usp:last-child { padding-bottom: 0; }
}


/* ====================================================================
 * 3. FEATURED PRODUCTS
 * Spacing only — product cards live in shop.css.
 * ==================================================================== */
.wpl-section--featured {
	padding-block: clamp(3.5rem, 7vw, 6rem);
	background: var(--c-bg);
}
.wpl-section--featured .wpl-section-head__cta { text-align: right; }
.wpl-section--featured .wpl-section-head { margin-bottom: clamp(2rem, 4vw, 3rem); }


/* ====================================================================
 * 4. CATEGORIES
 * Confident 6-up dense grid. White tiles with cream/purple/orange
 * placeholder fills cycling so they read different at a glance.
 * Hover lifts -3px with soft shadow + warm border.
 * ==================================================================== */
.wpl-section--cats {
	padding-block: clamp(3.5rem, 7vw, 6rem);
	background: var(--c-bg-3);
}

/* Override any inherited grid from .wpl-grid--3 — we own this layout */
.wpl-cats-grid,
.wpl-section--cats .wpl-cats-grid.wpl-grid.wpl-grid--3 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	list-style: none;
	padding: 0;
	margin: 0;
}
@media (min-width: 1100px) {
	.wpl-cats-grid,
	.wpl-section--cats .wpl-cats-grid.wpl-grid.wpl-grid--3 {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
}
@media (max-width: 720px) {
	.wpl-cats-grid,
	.wpl-section--cats .wpl-cats-grid.wpl-grid.wpl-grid--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem;
	}
}

.wpl-cat-tile {
	position: relative;
	background: var(--c-bg-2);
	color: var(--c-fg);
	border: 1px solid var(--c-border);
	border-radius: var(--r-lg);
	overflow: hidden;
	transform: translateY(0);
	transition:
		transform var(--dur) var(--ease),
		box-shadow var(--dur) var(--ease),
		border-color var(--dur) var(--ease);
}
.wpl-cat-tile:hover {
	transform: translateY(-3px);
	box-shadow: var(--sh-3);
	border-color: var(--c-primary-line);
}
/* The wide modifier from old PHP — neutralized; treat all tiles equally */
.wpl-cat-tile--wide { grid-column: auto; }

.wpl-cat-tile a {
	display: block;
	color: inherit;
	text-decoration: none;
}

.wpl-cat-tile__media {
	position: relative;
	aspect-ratio: 1 / 1;
	background: var(--c-primary-soft);
	overflow: hidden;
}
.wpl-cat-tile--wide .wpl-cat-tile__media { aspect-ratio: 1 / 1; }

.wpl-cat-tile__img,
.wpl-cat-tile__media > img,
.wpl-cat-tile__media > picture > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--dur-slower) var(--ease);
}
.wpl-cat-tile:hover .wpl-cat-tile__img,
.wpl-cat-tile:hover .wpl-cat-tile__media > img,
.wpl-cat-tile:hover .wpl-cat-tile__media > picture > img {
	transform: scale(1.05);
}

/* Drop overlay for clean look */
.wpl-cat-tile__overlay { display: none; }

/* Placeholder — alternating warm tints + Fraunces initial */
.wpl-cat-tile__placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--c-primary-soft);
}
.wpl-cat-tile__placeholder .wpl-icon { display: none; }
.wpl-cat-tile__placeholder::after {
	content: '';
	display: block;
	width: 56%;
	height: 56%;
	border-radius: var(--r-pill);
	background: rgba(255, 255, 255, 0.55);
}

/* Initial letter pulled from PHP/JS (or rendered ::before from title) */
.wpl-cat-tile__initial {
	position: relative;
	z-index: 1;
	font-family: var(--ff-display);
	font-style: italic;
	font-weight: 500;
	font-size: 4rem;
	color: var(--c-primary);
	line-height: 1;
	letter-spacing: -0.02em;
}

/* 6-color cycle for the placeholder + initial — first tile is orange,
   second is purple, third is cream, then mixed warm tints. */
.wpl-cat-tile:nth-child(6n+1) .wpl-cat-tile__placeholder { background: var(--c-primary-soft); }
.wpl-cat-tile:nth-child(6n+1) .wpl-cat-tile__initial    { color: var(--c-primary); }

.wpl-cat-tile:nth-child(6n+2) .wpl-cat-tile__placeholder { background: var(--c-accent-soft); }
.wpl-cat-tile:nth-child(6n+2) .wpl-cat-tile__initial    { color: var(--c-accent); }

.wpl-cat-tile:nth-child(6n+3) .wpl-cat-tile__placeholder { background: var(--c-bg-3); }
.wpl-cat-tile:nth-child(6n+3) .wpl-cat-tile__initial    { color: var(--c-fg); }

.wpl-cat-tile:nth-child(6n+4) .wpl-cat-tile__placeholder {
	background:
		radial-gradient(circle at 30% 30%, var(--c-primary-soft), transparent 60%),
		var(--c-accent-soft);
}
.wpl-cat-tile:nth-child(6n+4) .wpl-cat-tile__initial    { color: var(--c-accent); }

.wpl-cat-tile:nth-child(6n+5) .wpl-cat-tile__placeholder {
	background:
		radial-gradient(circle at 70% 30%, var(--c-accent-soft), transparent 60%),
		var(--c-primary-soft);
}
.wpl-cat-tile:nth-child(6n+5) .wpl-cat-tile__initial    { color: var(--c-primary); }

.wpl-cat-tile:nth-child(6n+6) .wpl-cat-tile__placeholder { background: var(--c-bg-3); }
.wpl-cat-tile:nth-child(6n+6) .wpl-cat-tile__initial    { color: var(--c-primary); }

.wpl-cat-tile__body {
	padding: 1rem 1.25rem 1.25rem;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--sp-3);
}
.wpl-cat-tile__title {
	font-family: var(--ff-display);
	font-size: var(--fs-md);
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--c-fg);
	margin: 0;
	line-height: 1.2;
}
.wpl-cat-tile__meta {
	font-family: var(--ff-mono);
	font-size: var(--fs-xxs);
	letter-spacing: var(--ls-wider);
	text-transform: uppercase;
	color: var(--c-muted-fg);
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	flex-shrink: 0;
	transition: color var(--dur) var(--ease);
}
.wpl-cat-tile__meta .wpl-icon {
	width: 0.85em;
	height: 0.85em;
	transition: transform var(--dur) var(--ease);
}
.wpl-cat-tile:hover .wpl-cat-tile__meta { color: var(--c-primary); }
.wpl-cat-tile:hover .wpl-cat-tile__meta .wpl-icon { transform: translateX(3px); }

@media (max-width: 720px) {
	.wpl-cat-tile__body { padding: 0.85rem 1rem 1rem; }
	.wpl-cat-tile__title { font-size: var(--fs-sm); }
	.wpl-cat-tile__meta .wpl-icon { display: none; }
}


/* ====================================================================
 * 5. BRAND STORY
 * 2-col split. Tall purple-tinted media frame with floating quote
 * card overlapping the corner. Body kept in Inter for readability;
 * Fraunces only for headlines and quote.
 * ==================================================================== */
.wpl-section--story {
	position: relative;
	padding-block: clamp(4rem, 8vw, 8rem);
	background: var(--c-bg);
	overflow: hidden;
}

/* Subtle warm decor blob bottom-left of section */
.wpl-section--story::before {
	content: '';
	position: absolute;
	left: -200px;
	bottom: -200px;
	width: 500px;
	height: 500px;
	background: radial-gradient(circle, var(--c-accent-soft), transparent 60%);
	opacity: 0.7;
	filter: blur(20px);
	pointer-events: none;
	z-index: 0;
}
.wpl-section--story > * { position: relative; z-index: 1; }

.wpl-story__grid {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}

.wpl-story__media { position: relative; }

.wpl-story__frame {
	position: relative;
	aspect-ratio: 4 / 5;
	border-radius: var(--r-xl);
	overflow: hidden;
	box-shadow: var(--sh-3);
	background: var(--c-accent-soft);
}
.wpl-story__frame > img,
.wpl-story__frame > picture > img,
.wpl-story__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--dur-slower) var(--ease);
}
.wpl-story__media:hover .wpl-story__img,
.wpl-story__media:hover .wpl-story__frame > img {
	transform: scale(1.03);
}

/* Solid purple-tint placeholder, no inline SVG */
.wpl-story__placeholder {
	position: absolute;
	inset: 0;
	background: var(--c-accent-soft);
	display: flex;
	align-items: center;
	justify-content: center;
}
.wpl-story__placeholder svg { display: none; }
.wpl-story__placeholder::after {
	content: 'Het Ritueel';
	font-family: var(--ff-display);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	color: var(--c-accent);
	letter-spacing: -0.01em;
}

/* Pull quote — bottom-right, overlapping the frame */
.wpl-story__quote {
	position: absolute;
	right: -24px;
	bottom: -20px;
	background: var(--c-bg-2);
	color: var(--c-fg);
	border-radius: var(--r-md);
	padding: 1.25rem 1.5rem;
	max-width: 320px;
	box-shadow: var(--sh-3);
	z-index: 2;
}
.wpl-story__quote p {
	margin: 0;
	font-family: var(--ff-display);
	font-style: italic;
	font-weight: 500;
	font-size: var(--fs-md);
	line-height: 1.45;
	color: var(--c-fg);
	letter-spacing: -0.01em;
}
.wpl-story__quote .wpl-quote__mark {
	font-family: var(--ff-display);
	color: var(--c-primary);
	font-size: 4rem;
	line-height: 0.6;
	float: left;
	margin: 0.4rem 0.5rem 0 -0.25rem;
	opacity: 1;
}

/* Copy column */
.wpl-story__copy h2 {
	font-family: var(--ff-display);
	max-width: 18ch;
	font-size: clamp(1.875rem, 4vw, var(--fs-3xl));
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--c-fg);
	margin: var(--sp-3) 0 var(--sp-5);
}

/* Body — Inter, NO drop cap (the --no-cap modifier wins here) */
.wpl-story__body { color: var(--c-fg-soft); }
.wpl-story__body p {
	font-family: var(--ff-text);
	font-size: var(--fs-md);
	line-height: 1.7;
	color: var(--c-fg-soft);
	margin: 0 0 var(--sp-4);
}
/* Hard kill any inherited drop-cap from .wpl-prose — we use --no-cap */
.wpl-story__body.wpl-prose p:first-child::first-letter,
.wpl-story__body.wpl-prose--no-cap p:first-child::first-letter,
.wpl-story__body p:first-child::first-letter {
	font-family: inherit;
	font-weight: inherit;
	float: none;
	font-size: inherit;
	line-height: inherit;
	padding: 0;
	margin: 0;
	border: 0;
	color: inherit;
	background: transparent;
}

.wpl-story__bullets {
	margin: var(--sp-6) 0;
	list-style: none;
	padding: 0;
}
.wpl-story__bullets li {
	display: flex;
	gap: 0.65rem;
	align-items: center;
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--c-border-light);
	font-family: var(--ff-text);
	font-size: var(--fs-sm);
	color: var(--c-fg);
	line-height: 1.5;
}
.wpl-story__bullets li:first-child { border-top: 1px solid var(--c-border-light); }
.wpl-story__bullets .wpl-icon {
	color: var(--c-trust);
	width: 1.05rem;
	height: 1.05rem;
	flex-shrink: 0;
}
.wpl-story__bullets .wpl-icon svg [stroke] { stroke-width: 1.8; }

.wpl-story__cta { margin-top: var(--sp-6); }

@media (max-width: 980px) {
	.wpl-story__grid { grid-template-columns: 1fr; }
	.wpl-story__media { max-width: 520px; margin: 0 auto; width: 100%; }
	.wpl-story__quote { right: 8px; bottom: -16px; max-width: 280px; }
}
@media (max-width: 560px) {
	.wpl-story__quote {
		position: static;
		margin-top: var(--sp-4);
		max-width: none;
	}
}


/* ====================================================================
 * 6. EDITORIAL BANNER
 * Warm charcoal background with orange radial wash top-right.
 * Image left, copy right. Orange CTA pops on dark.
 * ==================================================================== */
.wpl-section--banner {
	position: relative;
	padding-block: clamp(4rem, 8vw, 8rem);
	overflow: hidden;
}
/* Warm orange radial overlay on top of the inverted base */
.wpl-section--banner::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at top right, rgba(224, 123, 38, 0.18), transparent 60%);
	pointer-events: none;
	z-index: 0;
}
.wpl-section--banner > * { position: relative; z-index: 1; }

.wpl-banner__grid {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}

.wpl-banner__frame {
	position: relative;
	aspect-ratio: 4 / 5;
	border: 1px solid rgba(255, 250, 243, 0.18);
	border-radius: var(--r-xl);
	overflow: hidden;
	box-shadow: var(--sh-3);
	background: var(--c-inv-bg);
}
.wpl-banner__frame > img,
.wpl-banner__frame > picture > img,
.wpl-banner__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--dur-slower) var(--ease);
}
.wpl-banner__media:hover .wpl-banner__img,
.wpl-banner__media:hover .wpl-banner__frame > img {
	transform: scale(1.03);
}

/* Warm dark gradient placeholder, no inline SVG */
.wpl-banner__placeholder {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 70% 30%, rgba(224, 123, 38, 0.25), transparent 55%),
		linear-gradient(140deg, var(--c-inv-bg) 0%, #2a231a 100%);
	display: flex;
	align-items: center;
	justify-content: center;
}
.wpl-banner__placeholder svg { display: none; }
.wpl-banner__placeholder::after {
	content: 'Geschenkset';
	font-family: var(--ff-display);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	color: var(--c-inv-fg);
	opacity: 0.55;
	letter-spacing: -0.01em;
}

.wpl-banner__copy h2 {
	font-family: var(--ff-display);
	font-weight: 500;
	font-size: clamp(1.875rem, 4.5vw, var(--fs-4xl));
	letter-spacing: -0.02em;
	line-height: 1.1;
	max-width: 18ch;
	margin: var(--sp-3) 0 var(--sp-5);
	color: var(--c-inv-fg);
}
.wpl-banner__copy p,
.wpl-banner__body {
	font-family: var(--ff-text);
	font-size: var(--fs-md);
	line-height: 1.7;
	color: rgba(255, 250, 243, 0.78);
	max-width: 44ch;
	margin: 0;
}

.wpl-banner__bullets {
	margin: var(--sp-6) 0 var(--sp-7);
	list-style: none;
	padding: 0;
}
.wpl-banner__bullets li {
	display: flex;
	gap: 0.65rem;
	align-items: center;
	padding: 0.75rem 0;
	border-top: 1px solid rgba(255, 250, 243, 0.16);
	font-family: var(--ff-text);
	font-size: var(--fs-sm);
	color: rgba(255, 250, 243, 0.92);
}
.wpl-banner__bullets li:last-child { border-bottom: 1px solid rgba(255, 250, 243, 0.16); }
.wpl-banner__bullets .wpl-icon {
	color: var(--c-primary);
	width: 1.1rem;
	height: 1.1rem;
	flex-shrink: 0;
}
.wpl-banner__bullets .wpl-icon svg [stroke] { stroke-width: 1.8; }

/* Override legacy .btn-gold in this PHP — promote to orange primary feel */
.wpl-section--banner .btn.btn-gold {
	background: var(--c-primary);
	color: var(--c-bg-2);
	border: 0;
	border-radius: var(--r-pill);
	padding: 0.85rem 1.5rem;
	font-family: var(--ff-text);
	font-weight: 600;
	font-size: var(--fs-sm);
	letter-spacing: 0;
	text-transform: none;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	box-shadow: var(--sh-primary);
	transition:
		transform var(--dur) var(--ease),
		background var(--dur) var(--ease),
		box-shadow var(--dur) var(--ease);
}
.wpl-section--banner .btn.btn-gold:hover {
	background: var(--c-primary-hover);
	transform: translateY(-2px);
	box-shadow: var(--sh-3), var(--sh-primary);
}
.wpl-section--banner .btn.btn-gold .btn-arrow {
	transition: transform var(--dur) var(--ease);
}
.wpl-section--banner .btn.btn-gold:hover .btn-arrow { transform: translateX(3px); }

@media (max-width: 980px) {
	.wpl-banner__grid { grid-template-columns: 1fr; }
	.wpl-banner__media { order: -1; max-width: 520px; margin: 0 auto; width: 100%; }
}


/* ====================================================================
 * 7. TESTIMONIALS
 * 3 lift-cards with oversized Fraunces quote glyph as ::before.
 * Yellow stars, friendly trust badge in the section head.
 * ==================================================================== */
.wpl-section--testimonials {
	padding-block: clamp(3.5rem, 7vw, 6rem);
	background: var(--c-bg);
}

.wpl-section--testimonials .wpl-testi-grid,
.wpl-section--testimonials .wpl-testi-grid.wpl-grid.wpl-grid--3 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

.wpl-testi {
	position: relative;
	background: var(--c-bg-2);
	color: var(--c-fg);
	border: 1px solid var(--c-border);
	border-radius: var(--r-lg);
	padding: clamp(1.5rem, 3vw, 2rem);
	display: flex;
	flex-direction: column;
	gap: var(--sp-4);
	transform: translateY(0);
	transition:
		transform var(--dur) var(--ease),
		box-shadow var(--dur) var(--ease),
		border-color var(--dur) var(--ease);
	overflow: hidden;
}
/* Oversized quote glyph */
.wpl-testi::before {
	content: '\201D';
	position: absolute;
	top: 1rem;
	right: 1rem;
	font-family: var(--ff-display);
	font-style: italic;
	font-size: 4rem;
	line-height: 0.6;
	color: var(--c-primary-soft);
	opacity: 0.4;
	pointer-events: none;
	transition: opacity var(--dur) var(--ease), color var(--dur) var(--ease);
}
.wpl-testi:hover {
	transform: translateY(-3px);
	box-shadow: var(--sh-3);
	border-color: var(--c-primary-line);
}
.wpl-testi:hover::before { opacity: 0.7; color: var(--c-primary-soft); }

.wpl-testi .wpl-stars { color: var(--c-yellow); }
.wpl-testi .wpl-stars .wpl-icon { color: var(--c-yellow); }
.wpl-testi .wpl-stars .wpl-icon svg [fill] { fill: var(--c-yellow); }

.wpl-testi__quote {
	font-family: var(--ff-display);
	font-style: italic;
	font-weight: 500;
	font-size: var(--fs-md);
	line-height: 1.5;
	letter-spacing: -0.005em;
	color: var(--c-fg);
	max-width: 30ch;
	margin: 0;
}

.wpl-testi__foot {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-top: auto;
	padding-top: 1rem;
	border-top: 1px solid var(--c-border-light);
}
.wpl-testi__foot strong {
	font-family: var(--ff-text);
	font-weight: 600;
	font-size: var(--fs-sm);
	color: var(--c-fg);
	letter-spacing: 0;
}
.wpl-testi__foot .text-muted {
	font-family: var(--ff-mono);
	font-size: var(--fs-xxs);
	letter-spacing: var(--ls-wider);
	text-transform: uppercase;
	color: var(--c-muted-fg);
}

/* Trust badge — orange-soft pill in section head */
.wpl-trust-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.55rem 1rem;
	background: var(--c-primary-soft);
	border: 0;
	border-radius: var(--r-pill);
	font-family: var(--ff-text);
	font-size: var(--fs-sm);
	color: var(--c-primary);
}
.wpl-trust-badge .wpl-stars { color: var(--c-yellow); display: inline-flex; gap: 1px; }
.wpl-trust-badge .wpl-stars .wpl-icon { color: var(--c-yellow); width: 0.9em; height: 0.9em; }
.wpl-trust-badge .wpl-stars .wpl-icon svg [fill] { fill: var(--c-yellow); }
.wpl-trust-badge strong {
	font-family: var(--ff-display);
	font-weight: 600;
	font-size: var(--fs-md);
	letter-spacing: -0.01em;
	color: var(--c-primary);
}
.wpl-trust-badge .text-muted {
	font-family: var(--ff-mono);
	font-size: var(--fs-xxs);
	letter-spacing: var(--ls-wider);
	text-transform: uppercase;
	color: var(--c-muted-fg);
}

@media (max-width: 900px) {
	.wpl-section--testimonials .wpl-testi-grid,
	.wpl-section--testimonials .wpl-testi-grid.wpl-grid.wpl-grid--3 {
		grid-template-columns: 1fr;
	}
	.wpl-testi { padding: var(--sp-6); }
}


/* ====================================================================
 * 8. BLOG TEASER
 * Section padding only — cards in blog.css. Deeper cream background
 * for visual variation against the white-ish neighbours.
 * ==================================================================== */
.wpl-section--journal {
	padding-block: clamp(3.5rem, 7vw, 6rem);
}
.wpl-section--journal .wpl-section-head__cta { text-align: right; }
.wpl-section--journal .wpl-blog-grid {
	gap: clamp(1.5rem, 3vw, 2rem);
	list-style: none;
	padding: 0;
	margin: 0;
}


/* ====================================================================
 * 9. NEWSLETTER (Final CTA)
 * Warm dark hero card with generous radius and orange radial glow
 * top-right. Inverted inline form with cream text + orange submit.
 * ==================================================================== */
.wpl-section--news {
	padding-block: clamp(3rem, 6vw, 5rem);
	background: var(--c-bg);
}

.wpl-news {
	position: relative;
	background: var(--c-fg);
	color: var(--c-inv-fg);
	border: 0;
	border-radius: var(--r-2xl);
	padding: clamp(3rem, 7vw, 5.5rem) clamp(1.5rem, 5vw, 4rem);
	overflow: hidden;
}

/* Decorative orange radial top-right */
.wpl-news__decor {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 80% 0%, rgba(224, 123, 38, 0.45), transparent 55%);
	pointer-events: none;
	border-radius: inherit;
	z-index: 0;
}
.wpl-news > *:not(.wpl-news__decor) { position: relative; z-index: 1; }

.wpl-news__inner {
	position: relative;
	max-width: 38rem;
	z-index: 1;
}

/* Eyebrow inverted to orange (the helper renders orange dash already) */
.wpl-news .wpl-eyebrow { color: var(--c-primary); }
.wpl-news .wpl-eyebrow::before { background: var(--c-primary); }

.wpl-news__title {
	font-family: var(--ff-display);
	font-weight: 500;
	font-style: normal;
	font-size: clamp(1.875rem, 4vw, 2.75rem);
	line-height: 1.1;
	letter-spacing: -0.025em;
	color: var(--c-bg);
	max-width: 22ch;
	margin: var(--sp-3) 0 var(--sp-4);
}

.wpl-news__body {
	font-family: var(--ff-text);
	font-size: var(--fs-md);
	line-height: 1.65;
	color: rgba(255, 250, 243, 0.72);
	margin: 0 0 var(--sp-6);
	max-width: 46ch;
}

/* Inverted inline form variant of .wpl-inline-form */
.wpl-news__form {
	display: flex;
	align-items: stretch;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: var(--r-pill);
	padding: 0.35rem;
	max-width: 520px;
	transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.wpl-news__form:focus-within {
	border-color: rgba(255, 255, 255, 0.4);
	background: rgba(255, 255, 255, 0.1);
}
.wpl-news__form input {
	flex: 1;
	background: transparent;
	color: var(--c-inv-fg);
	border: 0;
	border-radius: var(--r-pill);
	padding: 0.85rem 1.1rem;
	font-family: var(--ff-text);
	font-size: var(--fs-sm);
	font-style: normal;
	min-width: 0;
}
.wpl-news__form input::placeholder {
	color: rgba(255, 250, 243, 0.5);
	font-style: normal;
}
.wpl-news__form input:focus {
	outline: 0;
	box-shadow: none;
}

/* Submit button — orange primary, pill */
.wpl-news__form .btn,
.wpl-news__form .btn.btn-primary {
	background: var(--c-primary);
	color: var(--c-bg-2);
	border: 0;
	border-radius: var(--r-pill);
	padding: 0.75rem 1.4rem;
	font-family: var(--ff-text);
	font-weight: 600;
	font-size: var(--fs-sm);
	letter-spacing: 0;
	text-transform: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 14px rgba(224, 123, 38, 0.35);
	transition:
		background var(--dur) var(--ease),
		transform var(--dur) var(--ease),
		box-shadow var(--dur) var(--ease);
	flex-shrink: 0;
}
.wpl-news__form .btn:hover,
.wpl-news__form .btn.btn-primary:hover {
	background: var(--c-primary-hover);
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(224, 123, 38, 0.45);
}

.wpl-news__small {
	font-family: var(--ff-text);
	font-size: var(--fs-xxs);
	letter-spacing: 0;
	text-transform: none;
	color: rgba(255, 250, 243, 0.5);
	margin-top: var(--sp-4);
	max-width: 56ch;
	line-height: 1.55;
}

@media (max-width: 640px) {
	.wpl-news { border-radius: var(--r-xl); }
	.wpl-news__form {
		flex-direction: column;
		border-radius: var(--r-lg);
		padding: 0.5rem;
		gap: 0.5rem;
		max-width: none;
	}
	.wpl-news__form input {
		border-radius: var(--r-md);
		padding: 0.85rem 1rem;
		background: rgba(255, 255, 255, 0.06);
	}
	.wpl-news__form .btn,
	.wpl-news__form .btn.btn-primary {
		border-radius: var(--r-md);
		padding: 0.85rem 1.4rem;
		width: 100%;
	}
}
