/* ============================================================
   Ravioli Demo — Premium Editorial Italian Theme
   Inspiration: Maison Mathy, Geometry of Pasta, Eataly
   ============================================================ */

/* ─────────── Base ─────────── */
html {
	scroll-behavior: smooth;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

body {
	background: var(--wp--preset--color--ivoire);
}

/* Site-main: full-width container (no max-width) — alignfull patterns reach 100vw */
.site-main {
	display: block;
	width: 100%;
}
.site-main > .wp-block-cover.alignfull,
.site-main > .wp-block-group.alignfull {
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

:focus-visible {
	outline: 2px solid var(--wp--preset--color--vert);
	outline-offset: 4px;
	border-radius: 0;
}

/* ─────────── Typography refinements ─────────── */
h1, h2, h3, .wp-block-heading,
.wp-block-post-title,
.wp-block-site-title {
	font-feature-settings: "liga", "kern", "ss01";
}

em {
	font-style: italic;
	font-family: var(--wp--preset--font-family--cormorant);
	font-weight: 400;
}

p {
	font-feature-settings: "liga", "kern";
}

/* Premium prose body */
.ravioli-prose p,
.ravioli-prose li {
	font-size: 1.0625rem;
	line-height: 1.75;
	color: #2a2a2a;
}

.ravioli-prose h2,
.ravioli-prose h3 {
	margin-top: 2.5em;
	margin-bottom: 1em;
}

/* ─────────── Buttons (premium minimal) ─────────── */
.wp-block-button__link {
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	border-radius: 0;
	box-shadow: none;
	position: relative;
	overflow: hidden;
}
.wp-block-button__link::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(255,255,255,0.1);
	opacity: 0;
	transition: opacity 0.3s ease;
}
.wp-block-button__link:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}
.wp-block-button__link:hover::after {
	opacity: 1;
}

/* Outline variant */
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: currentColor;
	border: 1px solid currentColor;
}

/* ─────────── Eyebrow & accents ─────────── */
.ravioli-eyebrow {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--wp--preset--color--vert);
	margin-bottom: 1.25rem;
}
.ravioli-eyebrow::before {
	content: '— ';
	margin-right: 0.5em;
	color: var(--wp--preset--color--or);
}

.ravioli-since {
	display: inline-flex;
	align-items: center;
	gap: 0.65em;
	padding: 0.65em 1.4em;
	background: rgba(255,255,255,0.12);
	color: #FFF;
	font-family: var(--wp--preset--font-family--inter);
	font-weight: 500;
	font-size: 0.72rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	border: 1px solid rgba(255,255,255,0.25);
	backdrop-filter: blur(8px);
}
.ravioli-since::before {
	content: "★";
	color: var(--wp--preset--color--or);
	font-size: 0.85em;
}

/* Section divider — premium gold rule */
.ravioli-section-divider,
hr.ravioli-section-divider {
	display: block;
	width: 40px;
	height: 1px;
	margin: 2rem auto;
	background: var(--wp--preset--color--or);
	border: none;
}

/* ─────────── Hero (full-bleed editorial) ─────────── */
.wp-block-cover.ravioli-hero {
	min-height: 92vh !important;
	background-attachment: scroll;
}
.wp-block-cover.ravioli-hero .wp-block-cover__inner-container {
	max-width: 880px;
	text-align: center;
	padding: 0 1.5rem;
}
.wp-block-cover.ravioli-hero h1 {
	color: var(--wp--preset--color--blanc) !important;
	text-shadow: 0 2px 24px rgba(0,0,0,0.35);
	font-weight: 400;
}
.wp-block-cover.ravioli-hero h1 em {
	font-style: italic;
	color: var(--wp--preset--color--or);
	font-weight: 300;
}
.wp-block-cover.ravioli-hero img.wp-block-cover__image-background {
	filter: brightness(0.9) contrast(1.1) saturate(1.05);
	will-change: transform;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	transform: scale(1.02);
}

/* Hero subtle zoom over time (premium effect) */
@media (prefers-reduced-motion: no-preference) {
	.wp-block-cover.ravioli-hero img.wp-block-cover__image-background {
		animation: heroBreathe 20s ease-in-out infinite alternate;
	}
}
@keyframes heroBreathe {
	from { transform: scale(1.02); }
	to   { transform: scale(1.08); }
}

/* ─────────── Image rendering (sharp, no blur) ─────────── */
.wp-block-image img {
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
	transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Category cards: image hover zoom premium */
.wp-block-columns .wp-block-image {
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 0;
	margin: 0;
	position: relative;
}
.wp-block-columns .wp-block-image img,
.wp-block-columns .wp-block-image a {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}
.wp-block-columns .wp-block-image:hover img {
	transform: scale(1.06);
}

/* Card thumbnails (CPT product/recette) */
.ravioli-card {
	background: var(--wp--preset--color--blanc);
	border: 1px solid rgba(0,0,0,0.04);
	overflow: hidden;
	transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.5s, border-color 0.4s;
}
.ravioli-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--wp--preset--shadow--lift);
	border-color: rgba(0,128,64,0.2);
}
.ravioli-card .wp-block-post-featured-image {
	aspect-ratio: 4 / 5;
	overflow: hidden;
	margin-bottom: 1.5rem;
}
.ravioli-card .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}
.ravioli-card:hover .wp-block-post-featured-image img {
	transform: scale(1.04);
}

.ravioli-card-title {
	font-family: var(--wp--preset--font-family--cormorant);
	font-weight: 500;
	color: var(--wp--preset--color--charbon);
	font-size: 1.5rem;
	line-height: 1.2;
	letter-spacing: -0.01em;
}
.ravioli-card-title a {
	color: inherit;
	text-decoration: none;
}
.ravioli-card-title a:hover {
	color: var(--wp--preset--color--vert);
}

/* Tag pills (gamme detail/HRI/keto) */
.ravioli-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.4em 1em;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	background: var(--wp--preset--color--vert-pale);
	color: var(--wp--preset--color--vert-fonce);
}
.ravioli-pill.is-detail { background: var(--wp--preset--color--vert-pale); color: var(--wp--preset--color--vert-fonce); }
.ravioli-pill.is-hri    { background: rgba(212,160,23,0.15); color: var(--wp--preset--color--or-fonce); }
.ravioli-pill.is-keto   { background: rgba(200,16,46,0.10); color: var(--wp--preset--color--tomate-fonce); }

/* ─────────── Header sticky (glassy premium) ─────────── */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 100;
	background-color: rgba(255,255,255,0.96);
	backdrop-filter: blur(16px) saturate(1.4);
	-webkit-backdrop-filter: blur(16px) saturate(1.4);
	border-bottom: 1px solid rgba(0,0,0,0.05);
	transition: padding 0.3s ease;
}
/* Header background pure white — masks white logo PNG bg seamlessly */
.wp-site-blocks > header.wp-block-template-part > .wp-block-group {
	background: transparent;
}

/* Site logo in header (white PNG bg blends into white header) */
.wp-block-site-logo {
	background: transparent !important;
}
.wp-block-site-logo a,
.wp-block-site-logo img {
	display: inline-block;
	background: transparent;
}
.wp-block-site-logo img {
	max-height: 60px;
	width: auto;
}

/* Header navigation links — underline only on top-level items, not submenu */
.wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content,
.wp-block-navigation > ul > .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-weight: 500;
	letter-spacing: 0.04em;
	transition: color 0.25s ease;
	position: relative;
}
.wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after,
.wp-block-navigation > ul > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: -6px;
	width: 0;
	height: 1px;
	background: var(--wp--preset--color--vert);
	transition: width 0.3s ease, left 0.3s ease;
}
.wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.wp-block-navigation > ul > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content::after,
.wp-block-navigation > ul > .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content::after {
	width: 100%;
	left: 0;
}

/* Submenu items — clean, no underline animation, just hover bg */
.wp-block-navigation .wp-block-navigation__submenu-container {
	background: #FFFFFF;
	border: 1px solid rgba(0,0,0,0.08);
	border-radius: 0;
	box-shadow: 0 8px 24px rgba(0,0,0,0.10);
	padding: 0.5rem 0;
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.6rem 1.5rem !important;
	transition: background 0.2s ease, color 0.2s ease;
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--vert-pale);
	color: var(--wp--preset--color--vert-fonce);
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content::after {
	display: none !important;
	content: none !important;
}

/* ─────────── Partner logos grid (refined) ─────────── */
.ravioli-partners-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
	align-items: center;
	gap: 3rem 2rem;
	padding: 2rem 0;
}
.ravioli-partners-grid img {
	max-height: 80px;
	width: auto;
	filter: grayscale(100%);
	opacity: 0.55;
	transition: filter 0.5s ease, opacity 0.5s ease, transform 0.5s ease;
}
.ravioli-partners-grid img:hover {
	filter: grayscale(0%);
	opacity: 1;
	transform: scale(1.05);
}

/* ─────────── Mobile nav refinements ─────────── */
@media (max-width: 768px) {
	.wp-block-navigation__responsive-container-content {
		padding: 2rem;
	}
	.wp-block-cover.ravioli-hero {
		min-height: 85vh !important;
	}
}

/* ─────────── Scroll-triggered fade-in (CSS-only via @scroll-timeline-name) ─────────── */
@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		.wp-block-cover.ravioli-hero .wp-block-cover__inner-container > * {
			animation: heroFadeUp 1s cubic-bezier(0.16, 1, 0.3, 1) both;
			animation-delay: 0.2s;
		}
		.wp-block-cover.ravioli-hero .wp-block-cover__inner-container > *:nth-child(2) { animation-delay: 0.4s; }
		.wp-block-cover.ravioli-hero .wp-block-cover__inner-container > *:nth-child(3) { animation-delay: 0.6s; }
		.wp-block-cover.ravioli-hero .wp-block-cover__inner-container > *:nth-child(4) { animation-delay: 0.8s; }
	}

	/* IntersectionObserver-free fade-in as fallback (relies on initial paint) */
	.ravioli-fade-in {
		animation: heroFadeUp 0.9s cubic-bezier(0.16, 1, 0.3, 1) both;
	}

	/* Card stagger entrance */
	.wp-block-query .wp-block-post-template > * {
		animation: heroFadeUp 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
		animation-delay: calc(var(--card-index, 0) * 0.1s);
	}
}

@keyframes heroFadeUp {
	from {
		opacity: 0;
		transform: translateY(24px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* ─────────── Editorial flourishes ─────────── */
.ravioli-stat-number {
	font-family: var(--wp--preset--font-family--cormorant);
	font-weight: 300;
	font-size: clamp(3.5rem, 8vw, 6rem);
	line-height: 0.9;
	letter-spacing: -0.04em;
	margin: 0 !important;
	padding: 0;
}

.ravioli-quote {
	font-family: var(--wp--preset--font-family--cormorant);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	line-height: 1.4;
	letter-spacing: -0.005em;
	color: var(--wp--preset--color--charbon);
	max-width: 680px;
	margin: 0 auto;
	text-align: center;
}
.ravioli-quote::before {
	content: '“';
	font-size: 4em;
	line-height: 0;
	vertical-align: -0.2em;
	color: var(--wp--preset--color--or);
	margin-right: 0.05em;
}
.ravioli-quote::after {
	content: '”';
	font-size: 4em;
	line-height: 0;
	vertical-align: -0.4em;
	color: var(--wp--preset--color--or);
	margin-left: 0.05em;
}

/* Scrolling marquee for partner logos / specialités */
.ravioli-marquee {
	overflow: hidden;
	white-space: nowrap;
	mask-image: linear-gradient(90deg, transparent 0%, black 12%, black 88%, transparent 100%);
}
.ravioli-marquee-track {
	display: inline-flex;
	gap: 4rem;
	animation: marquee 50s linear infinite;
}
@keyframes marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

/* ─────────── Selection style ─────────── */
::selection {
	background: var(--wp--preset--color--vert);
	color: var(--wp--preset--color--blanc);
}

/* ─────────── Premium Polish v2 ─────────── */

/* Scroll progress bar — subtle gold line at top */
body::before {
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 2px;
	background: linear-gradient(90deg, var(--wp--preset--color--vert) 0%, var(--wp--preset--color--or) 100%);
	transform: scaleX(0);
	transform-origin: 0 50%;
	z-index: 1000;
	transition: transform 0.1s linear;
}
@supports (animation-timeline: scroll()) {
	body::before {
		animation: scrollProgress linear;
		animation-timeline: scroll();
	}
}
@keyframes scrollProgress {
	from { transform: scaleX(0); }
	to   { transform: scaleX(1); }
}

/* Drop cap on first paragraph of long-form content (recettes, histoire) */
.ravioli-prose > p:first-of-type::first-letter,
.entry-content > p:first-of-type::first-letter {
	font-family: var(--wp--preset--font-family--cormorant);
	font-size: 5rem;
	font-weight: 400;
	line-height: 0.85;
	float: left;
	margin: 0.05em 0.15em -0.05em 0;
	color: var(--wp--preset--color--vert);
	font-style: italic;
}

/* Refined buttons — subtle shimmer on hover */
.wp-block-button__link {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
.wp-block-button__link::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.18) 50%, transparent 100%);
	transition: left 0.6s cubic-bezier(0.4, 0, 0.2, 1);
	z-index: 1;
}
.wp-block-button__link:hover::before {
	left: 100%;
}

/* Cards: refined hover with border accent */
.ravioli-card {
	position: relative;
	transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.ravioli-card::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 0;
	height: 2px;
	background: var(--wp--preset--color--or);
	transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.ravioli-card:hover::after {
	width: 100%;
}

/* Asymmetric subtle layout on category cards (every 5th card slightly larger) */
.wp-block-columns .wp-block-column:nth-child(2) .wp-block-image {
	aspect-ratio: 3 / 4 !important;
}

/* Featured image refined: subtle vignette via box-shadow inset */
.wp-block-post-featured-image {
	position: relative;
	overflow: hidden;
}
.wp-block-post-featured-image::after {
	content: '';
	position: absolute;
	inset: 0;
	box-shadow: inset 0 -60px 80px -40px rgba(0,0,0,0.3);
	pointer-events: none;
	transition: opacity 0.4s ease;
	opacity: 0;
}
.ravioli-card:hover .wp-block-post-featured-image::after {
	opacity: 1;
}

/* Separator dividers — gold rule with breathing animation */
@media (prefers-reduced-motion: no-preference) {
	.ravioli-section-divider {
		animation: dividerExpand 1.5s cubic-bezier(0.16, 1, 0.3, 1) both;
	}
}
@keyframes dividerExpand {
	from { width: 0; opacity: 0; }
	to   { width: 40px; opacity: 1; }
}

/* Stat numbers entrance — counter-like reveal */
@media (prefers-reduced-motion: no-preference) {
	.ravioli-stat-number {
		animation: statReveal 1.2s cubic-bezier(0.16, 1, 0.3, 1) both;
	}
}
@keyframes statReveal {
	from {
		opacity: 0;
		transform: translateY(20px);
		letter-spacing: 0.1em;
	}
	to {
		opacity: 1;
		transform: translateY(0);
		letter-spacing: -0.04em;
	}
}

/* Nav link active state subtle */
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--vert);
}

/* Footer subtle decoration */
footer.wp-block-template-part {
	position: relative;
}
footer.wp-block-template-part::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 60px;
	height: 1px;
	background: var(--wp--preset--color--or);
}

/* Site logo subtle hover (interactive feedback) */
.wp-block-site-logo {
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.wp-block-site-logo:hover {
	transform: translateY(-1px);
}

/* Refined link underline on prose body */
.ravioli-prose a,
.entry-content a {
	text-decoration: none;
	background-image: linear-gradient(transparent 60%, rgba(0,128,64,0.18) 60%);
	background-size: 100% 100%;
	background-repeat: no-repeat;
	transition: background-size 0.3s ease, color 0.3s ease;
}
.ravioli-prose a:hover,
.entry-content a:hover {
	color: var(--wp--preset--color--vert-fonce);
	background-image: linear-gradient(transparent 0%, rgba(0,128,64,0.25) 0%);
}

/* Numbered recipe steps — premium style */
.ravioli-prose ol,
.entry-content ol {
	counter-reset: step-counter;
	list-style: none;
	padding-left: 0;
}
.ravioli-prose ol > li,
.entry-content ol > li {
	counter-increment: step-counter;
	position: relative;
	padding-left: 4rem;
	min-height: 3rem;
	margin-bottom: 1.5rem;
	font-size: 1.0625rem;
	line-height: 1.7;
}
.ravioli-prose ol > li::before,
.entry-content ol > li::before {
	content: counter(step-counter, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: -0.2em;
	font-family: var(--wp--preset--font-family--cormorant);
	font-size: 2.5rem;
	font-weight: 300;
	color: var(--wp--preset--color--or);
	line-height: 1;
	font-feature-settings: "lnum";
}

/* Premium ingredient lists */
.ravioli-prose ul,
.entry-content ul {
	list-style: none;
	padding-left: 0;
}
.ravioli-prose ul > li,
.entry-content ul > li {
	position: relative;
	padding-left: 1.75rem;
	margin-bottom: 0.6rem;
	font-size: 1.0625rem;
	line-height: 1.7;
}
.ravioli-prose ul > li::before,
.entry-content ul > li::before {
	content: '—';
	position: absolute;
	left: 0;
	color: var(--wp--preset--color--or);
	font-weight: 600;
}

/* Single product refined - strong eyebrow */
.wp-block-post-terms a {
	background: none !important;
	color: var(--wp--preset--color--vert) !important;
	font-weight: 600;
}

/* Recettes tags prominent */
.taxonomy-meal_type a {
	background: var(--wp--preset--color--vert-pale);
	padding: 0.3em 0.85em;
	border-radius: 0;
}

/* Smooth section transitions — subtle gradient between dark/light sections */
.has-charbon-background-color + .wp-block-group:not(.has-background),
.has-noir-background-color + .wp-block-group:not(.has-background) {
	position: relative;
}

/* Page hero on archive (recettes/produits) — premium type */
.wp-block-template-part header + main > .wp-block-heading.has-huge-font-size {
	margin-top: 3rem;
	margin-bottom: 1rem;
}

/* Image lazy load shimmer */
.wp-block-image img[loading="lazy"] {
	background: linear-gradient(90deg, #f0e9d8 0%, #faf7f0 50%, #f0e9d8 100%);
	background-size: 200% 100%;
	animation: shimmerLoad 1.4s ease-in-out infinite;
}
.wp-block-image img[loading="lazy"].loaded {
	animation: none;
	background: none;
}
@keyframes shimmerLoad {
	0%   { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

/* Site title or logo — adjust if needed */
.wp-block-site-logo img.is-resized,
.wp-block-site-logo img {
	transition: filter 0.3s ease;
}

/* Footer columns spacing premium */
footer .wp-block-columns {
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
}

/* Better dropdown nav arrow */
.wp-block-navigation-submenu__toggle .wp-block-navigation__submenu-icon {
	margin-left: 0.4em;
	transition: transform 0.3s ease;
}
.wp-block-navigation-item:hover .wp-block-navigation-submenu__toggle .wp-block-navigation__submenu-icon {
	transform: rotate(180deg);
}

/* Highlight current page in subtle way (when on a page) */
body.page .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
body.single .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--vert);
	font-weight: 600;
}

/* Subtle entry animation on long-form articles */
@media (prefers-reduced-motion: no-preference) {
	.entry-content > * {
		opacity: 0;
		animation: contentFadeIn 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
	}
	.entry-content > *:nth-child(1) { animation-delay: 0.05s; }
	.entry-content > *:nth-child(2) { animation-delay: 0.1s; }
	.entry-content > *:nth-child(3) { animation-delay: 0.15s; }
	.entry-content > *:nth-child(4) { animation-delay: 0.2s; }
	.entry-content > *:nth-child(5) { animation-delay: 0.25s; }
	.entry-content > *:nth-child(n+6) { animation-delay: 0.3s; }
}
@keyframes contentFadeIn {
	to {
		opacity: 1;
	}
}

/* Polished separator on dark sections */
hr[class*="separator"][style*="3F3F3F"] {
	margin: 2rem auto !important;
	max-width: 60px !important;
}

/* ─────────── Recette metadata block ─────────── */
.ravioli-recette-meta {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: var(--wp--preset--color--or);
	border-top: 1px solid var(--wp--preset--color--or);
	border-bottom: 1px solid var(--wp--preset--color--or);
	margin: 3rem 0;
}
.ravioli-recette-meta__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.3rem;
	padding: 1.75rem 1rem;
	background: var(--wp--preset--color--creme);
	text-align: center;
}
.ravioli-recette-meta__item--full {
	grid-column: 1 / -1;
	flex-direction: row;
	justify-content: flex-start;
	gap: 1rem;
	padding: 1rem 1.5rem;
	border-top: 1px solid rgba(212,160,23,0.25);
}
.ravioli-recette-meta__icon {
	font-size: 1.4rem;
	color: var(--wp--preset--color--or);
	line-height: 1;
}
.ravioli-recette-meta__label {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--vert-fonce);
}
.ravioli-recette-meta__value {
	font-family: var(--wp--preset--font-family--cormorant);
	font-size: 1.5rem;
	font-weight: 500;
	color: var(--wp--preset--color--charbon);
	line-height: 1.1;
}
.ravioli-recette-meta__item--full .ravioli-recette-meta__value {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.85rem;
	font-weight: 400;
	color: var(--wp--preset--color--charbon);
}
@media (max-width: 768px) {
	.ravioli-recette-meta {
		grid-template-columns: repeat(2, 1fr);
	}
	.ravioli-recette-meta__item--full {
		grid-column: 1 / -1;
	}
}

/* ─────────── Product info block (gamme detail/HRI/keto) ─────────── */
.ravioli-product-info {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem 2rem;
	padding: 2rem 0;
	border-top: 1px solid rgba(0,0,0,0.08);
	border-bottom: 1px solid rgba(0,0,0,0.08);
	margin: 2rem 0;
}
.ravioli-product-info__item {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.ravioli-product-info__label {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--vert);
}
.ravioli-product-info__value {
	font-family: var(--wp--preset--font-family--cormorant);
	font-size: 1.125rem;
	color: var(--wp--preset--color--charbon);
}

/* ─────────── Contact form (mailto fallback) ─────────── */
.ravioli-contact-form {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.ravioli-contact-form__row {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}
.ravioli-contact-form__row label {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--vert-fonce);
}
.ravioli-contact-form__row input,
.ravioli-contact-form__row select,
.ravioli-contact-form__row textarea {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 1rem;
	padding: 0.85rem 1rem;
	background: #FFFFFF;
	border: 1px solid rgba(0,0,0,0.12);
	border-radius: 0;
	color: var(--wp--preset--color--charbon);
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.ravioli-contact-form__row input:focus,
.ravioli-contact-form__row select:focus,
.ravioli-contact-form__row textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--vert);
	box-shadow: 0 0 0 3px rgba(0,128,64,0.12);
}
.ravioli-contact-form__row textarea {
	resize: vertical;
	min-height: 120px;
	line-height: 1.6;
}
.ravioli-contact-form__submit {
	margin-top: 1rem;
}
.ravioli-contact-form__submit button {
	font-family: var(--wp--preset--font-family--inter);
	font-weight: 500;
	font-size: 0.78rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	background: var(--wp--preset--color--noir);
	color: var(--wp--preset--color--blanc);
	border: none;
	padding: 1.1rem 2.25rem;
	cursor: pointer;
	transition: background 0.3s ease, transform 0.3s ease;
}
.ravioli-contact-form__submit button:hover {
	background: var(--wp--preset--color--vert);
	transform: translateY(-1px);
}
.ravioli-contact-form__hint {
	font-size: 0.78rem;
	color: var(--wp--preset--color--gris);
	margin-top: 0.5rem;
	text-align: center;
}

/* ─────────── Footer mobile responsive ─────────── */
@media (max-width: 781px) {
	footer .wp-block-columns {
		flex-wrap: wrap !important;
		gap: 2.5rem 1.5rem !important;
	}
	footer .wp-block-column {
		flex-basis: calc(50% - 0.75rem) !important;
		min-width: calc(50% - 0.75rem) !important;
	}
	footer .wp-block-column:first-child {
		flex-basis: 100% !important;
		min-width: 100% !important;
	}
}
@media (max-width: 480px) {
	footer .wp-block-column {
		flex-basis: 100% !important;
		min-width: 100% !important;
	}
}

/* ─────────── Skip-to-content link (WCAG 2.4.1) ─────────── */
.ravioli-skip-link {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%) translateY(-200%);
	padding: 0.85rem 1.75rem;
	background: var(--wp--preset--color--noir);
	color: var(--wp--preset--color--blanc);
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	text-decoration: none;
	z-index: 9999;
	transition: transform 0.25s ease;
}
.ravioli-skip-link:focus {
	transform: translateX(-50%) translateY(0);
	outline: 2px solid var(--wp--preset--color--or);
	outline-offset: 2px;
}

/* ─────────── Backdrop-filter perf opt mobile ─────────── */
@media (max-width: 768px) {
	.wp-site-blocks > header.wp-block-template-part {
		backdrop-filter: none !important;
		-webkit-backdrop-filter: none !important;
		background-color: #FFFFFF !important;
	}
	.ravioli-since {
		backdrop-filter: none !important;
		background: rgba(0,0,0,0.4) !important;
	}
}

/* ─────────── Print refinements ─────────── */
@media print {
	header, footer, .wp-block-cover.ravioli-hero { display: none; }
	body { background: white; color: black; }
	.ravioli-prose ol > li::before { color: #333 !important; }
}
