/**
 * Tunnel d'achat /boutique/ — food-line.fr
 * Charte alignée palette-widget : Manrope + DM Mono, marine #002d72,
 * bleu #0059e4, vert action #16a34a. B2B clean, dense et efficace.
 * ========================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=DM+Mono:wght@400;500&display=swap');

.flb {
	--b:        #0059e4;
	--b-h:      #0048bd;
	--ink-b:    #002d72;
	--b-soft:   #e1e6ef;
	--b-bg:     #f0f4fa;
	--ink:      #0f172a;
	--ink-s:    #334155;
	--mute:     #64748b;
	--mute-s:   #94a3b8;
	--line:     #e2e8f0;
	--line-s:   #eef2f7;
	--paper:    #f6f8fb;
	--card:     #ffffff;
	--good:     #16a34a;
	--good-d:   #15803d;
	--good-bg:  #dcfce7;
	--warn:     #d97706;
	--warn-bg:  #fef3c7;
	--r:        12px;
	--r-sm:     9px;
	--r-lg:     18px;
	--sh:       0 1px 2px rgba(15,23,42,.05);
	--sh-md:    0 8px 24px -10px rgba(15,23,42,.14);
	--sh-lg:    0 22px 48px -20px rgba(0,45,114,.34);
	--font:     'Manrope', system-ui, -apple-system, sans-serif;
	--mono:     'DM Mono', ui-monospace, monospace;
	font-family: var(--font);
	color: var(--ink);
	-webkit-font-smoothing: antialiased;
}

/* Le template prend toute la largeur — on neutralise les contraintes du thème. */
.fl-boutique-wrap { max-width: none !important; width: 100% !important; padding: 0 !important; }
.fl-boutique-wrap .site-main { max-width: none !important; }

.flb {
	max-width: 1480px;
	margin: 0 auto;
	padding: 18px clamp(14px, 3vw, 34px) 96px; /* 96px bas : place pour la barre fixe */
	background:
		radial-gradient(1200px 520px at 90% -10%, rgba(0,89,228,.06), transparent 60%),
		radial-gradient(820px 460px at -6% 4%, rgba(22,163,74,.05), transparent 55%);
}

/* ═══════════════════════ Barre de progression (sticky bas, minimaliste) ═══ */
.flb-bar {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 60;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 9px clamp(12px, 3vw, 26px);
	background: rgba(255,255,255,.93);
	backdrop-filter: saturate(160%) blur(12px);
	border-top: 1px solid var(--line);
	box-shadow: 0 -8px 26px -14px rgba(15,23,42,.22);
}
.flb-bar__pals {
	display: flex; align-items: center; gap: 9px;
	flex: 1; min-width: 0; overflow-x: auto; padding: 2px 0;
	scrollbar-width: thin;
}
.flb-bar__pals::-webkit-scrollbar { height: 4px; }
.flb-bar__pals::-webkit-scrollbar-thumb { background: var(--line); border-radius: 999px; }
.flb-bar__empty { color: var(--mute); font-size: 13px; white-space: nowrap; }
.flb-pchip {
	display: inline-flex; align-items: center; gap: 8px; flex: none;
	padding: 6px 12px 6px 10px; border-radius: 999px;
	background: var(--paper); border: 1px solid var(--line);
}
.flb-pchip.is-full { background: var(--good-bg); border-color: #bbf7d0; }
.flb-pchip__ico { font-size: 15px; line-height: 1; }
.flb-pchip__bar { width: 60px; height: 6px; border-radius: 999px; background: #e2e7f0; overflow: hidden; }
.flb-pchip__bar b { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg,#fbbf24,#e7cf88); transition: width .6s cubic-bezier(.2,.8,.2,1); }
.flb-pchip.is-full .flb-pchip__bar b { background: linear-gradient(90deg,#38e07b,#16a34a); }
.flb-pchip__pct { font-family: var(--mono); font-size: 12px; font-weight: 500; color: var(--ink-s); min-width: 30px; text-align: right; }
.flb-pchip.is-full .flb-pchip__pct { color: var(--good-d); }
.flb-checkout, .flb-panel__checkout {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 13px 24px; border-radius: 999px;
	font-weight: 800; font-size: 14.5px; text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
	white-space: nowrap;
}
.flb-checkout.is-ready, .flb-panel__checkout.is-ready {
	background: var(--good); color: #fff;
	box-shadow: 0 12px 26px -10px rgba(22,163,74,.6);
}
.flb-checkout.is-ready:hover, .flb-panel__checkout.is-ready:hover {
	background: var(--good-d); transform: translateY(-2px);
}
.flb-checkout.is-off, .flb-panel__checkout.is-off {
	background: #eef0f4; color: var(--mute); cursor: not-allowed;
	border: 1px dashed var(--mute-s);
}
.flb-checkout.flb-cart, .flb-panel__checkout.flb-cart {
	background: linear-gradient(135deg,#ffd24d,#f5b301); color: #0a1c3f;
	box-shadow: 0 12px 26px -10px rgba(245,179,1,.6);
}
.flb-checkout.flb-cart:hover, .flb-panel__checkout.flb-cart:hover {
	filter: brightness(1.05); transform: translateY(-2px);
}
.flb-shake { animation: flb-shake .4s; }
@keyframes flb-shake { 0%,100%{transform:translateX(0)} 20%,60%{transform:translateX(-5px)} 40%,80%{transform:translateX(5px)} }

/* ═══════════════════════════════════════════════ Facette START ════════ */
.flb-start { padding: clamp(20px, 5vw, 60px) 0; text-align: center; animation: flb-rise .5s both; }
.flb-start__head h1 { font-size: clamp(26px, 4vw, 40px); font-weight: 800; letter-spacing: -.03em; color: var(--ink-b); margin: 0 0 10px; }
.flb-start__head p { color: var(--mute); font-size: 16px; max-width: 560px; margin: 0 auto 36px; line-height: 1.55; }
.flb-choices {
	display: grid; grid-template-columns: repeat(2, minmax(0,1fr));
	gap: 22px; max-width: 820px; margin: 0 auto;
}
.flb-choice {
	display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
	text-align: left; cursor: pointer;
	padding: 30px 28px; border-radius: var(--r-lg);
	background: var(--card); border: 1.5px solid var(--line);
	box-shadow: var(--sh-md); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
	position: relative; overflow: hidden;
}
.flb-choice::after {
	content: ""; position: absolute; inset: 0 0 auto 0; height: 5px;
	background: linear-gradient(90deg, var(--ink-b), var(--b));
	transform: scaleX(0); transform-origin: left; transition: transform .25s ease;
}
.flb-choice--ambiant::after { background: linear-gradient(90deg, #475569, #94a3b8); }
.flb-choice:hover { transform: translateY(-4px); box-shadow: var(--sh-lg); border-color: var(--b-soft); }
.flb-choice:hover::after { transform: scaleX(1); }
.flb-choice__emoji { font-size: 40px; line-height: 1; }
.flb-choice__title { font-size: 22px; font-weight: 800; letter-spacing: -.02em; color: var(--ink); }
.flb-choice__temp {
	font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
	color: var(--b); background: var(--b-bg); padding: 3px 9px; border-radius: 999px;
}
.flb-choice--ambiant .flb-choice__temp { color: #475569; background: #eef1f6; }
.flb-choice__desc { color: var(--ink-s); font-size: 14px; line-height: 1.5; margin-top: 6px; }
.flb-choice__go { margin-top: 12px; font-weight: 800; font-size: 14px; color: var(--b); }
.flb-choice--ambiant .flb-choice__go { color: #475569; }
.flb-start__note { margin-top: 34px; color: var(--mute); font-size: 14px; }

/* ═══════════════════════════════════════════════ Grille BUILD ═════════ */
.flb-grid {
	display: grid;
	grid-template-columns: 248px minmax(0,1fr);
	gap: 24px;
	align-items: start;
	animation: flb-rise .45s both;
}

/* ── Titre principal du tunnel ───────────────────────────────────────── */
.flb-pagetitle {
	text-align: center;
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: 1.1;
	color: var(--ink-b);
	font-size: clamp(1.6rem, 3.4vw, 2.6rem);
	margin: 6px auto 26px;
	max-width: 22ch;
	text-wrap: balance;
}
/* PC : titre sur une seule ligne (taille ajustée pour tenir dans la largeur). */
@media (min-width: 980px) {
	.flb-pagetitle {
		max-width: none;
		white-space: nowrap;
		text-wrap: nowrap;
		font-size: clamp(1.4rem, 2.4vw, 2.2rem);
	}
}

/* ── Navigation (gauche) ─────────────────────────────────────────────── */
.flb-nav { position: sticky; top: calc(var(--fl-bar-top, 0px) + 16px); display: flex; flex-direction: column; gap: 14px; }
.flb-bar .flb-checkout { flex: none; padding: 11px 22px; }
.flb-trans {
	display: grid; grid-template-columns: 1fr 1fr; gap: 6px;
	background: var(--card); padding: 6px; border-radius: 999px;
	border: 1px solid var(--line); box-shadow: var(--sh);
}
.flb-trans__btn {
	border: 0; cursor: pointer; padding: 10px 8px; border-radius: 999px;
	font-family: var(--font); font-weight: 700; font-size: 13px; color: var(--mute);
	background: transparent; transition: background .18s, color .18s;
}
.flb-trans__btn.is-active { background: var(--ink-b); color: #fff; box-shadow: 0 6px 14px -6px rgba(0,45,114,.5); }
.flb-search input {
	width: 100%; box-sizing: border-box; padding: 12px 16px;
	border: 1.5px solid var(--line); border-radius: 999px; background: var(--card);
	font-family: var(--font); font-size: 14px; color: var(--ink);
	transition: border-color .18s, box-shadow .18s;
}
.flb-search input:focus { outline: 0; border-color: var(--b); box-shadow: 0 0 0 4px rgba(0,89,228,.12); }
.flb-cats {
	display: flex; flex-direction: column; gap: 3px;
	background: var(--card); border: 1px solid var(--line);
	border-radius: var(--r); padding: 8px; box-shadow: var(--sh);
}
.flb-cats__item {
	display: flex; align-items: center; justify-content: space-between; gap: 8px;
	border: 0; cursor: pointer; text-align: left;
	padding: 10px 12px; border-radius: var(--r-sm);
	font-family: var(--font); font-weight: 600; font-size: 14px; color: var(--ink-s);
	background: transparent; transition: background .15s, color .15s;
}
.flb-cats__item em {
	font-style: normal; font-family: var(--mono); font-size: 11px; color: var(--mute-s);
	background: var(--paper); padding: 2px 7px; border-radius: 999px;
}
.flb-cats__item:hover { background: var(--b-bg); color: var(--ink-b); }
.flb-cats__item.is-active { background: var(--ink-b); color: #fff; }
.flb-cats__item.is-active em { background: rgba(255,255,255,.2); color: #fff; }

/* ── Nuage de mots-clés (filtre intelligent) ─────────────────────────── */
.flb-cloud {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
	margin: 0 0 18px; padding: 14px 16px;
	background: var(--card); border: 1px solid var(--line); border-radius: var(--r);
	box-shadow: var(--sh);
}
.flb-cloud__label {
	font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
	color: var(--mute); margin-right: 2px;
}
.flb-kw {
	display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
	border: 1px solid var(--line); background: var(--paper); color: var(--ink-s);
	border-radius: 999px; padding: 6px 12px; font-family: var(--font); font-weight: 700;
	line-height: 1.1; text-transform: capitalize;
	transition: background .15s, color .15s, border-color .15s, transform .12s;
}
.flb-kw i { font-style: normal; font-family: var(--mono); font-weight: 500; font-size: 10px; color: var(--mute-s); }
.flb-kw--1 { font-size: 12.5px; }
.flb-kw--2 { font-size: 14px; }
.flb-kw--3 { font-size: 16px; }
.flb-kw:hover { border-color: var(--b); color: var(--ink-b); transform: translateY(-1px); }
.flb-kw.is-on { background: var(--ink-b); color: #fff; border-color: var(--ink-b); }
.flb-kw.is-on i { color: rgba(255,255,255,.7); }
.flb-kw__reset {
	border: 0; background: none; cursor: pointer; color: #c0392b;
	font-family: var(--font); font-weight: 700; font-size: 12.5px; padding: 6px 8px;
}
.flb-kw__reset:hover { color: #a02417; text-decoration: underline; }

/* ── Catalogue (centre) ──────────────────────────────────────────────── */
.flb-cat { min-height: 400px; position: relative; }
.flb-cat.is-loading { opacity: .5; pointer-events: none; transition: opacity .15s; }
.flb-count { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--mute); margin-bottom: 12px; }
.flb-empty-cat { text-align: center; padding: 70px 20px; color: var(--mute); }
.flb-empty-cat span { font-size: 40px; display: block; margin-bottom: 10px; }

/* Grille produit : on recadre la boucle WooCommerce dans une grille propre. */
.flb-cat { min-width: 0; }
.flb-cat ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
	gap: 16px;
	/* Annule le hack gouttière du thème (width:calc(100% + 30px);margin-left:-15px)
	   qui faisait déborder la grille de 30px à droite. */
	width: 100% !important; margin: 0 !important; padding: 0 !important; list-style: none;
}
.flb-cat ul.products::before, .flb-cat ul.products::after { content: none !important; }
.flb-cat ul.products li.product {
	width: auto !important; min-width: 0; margin: 0 !important; padding: 16px !important; float: none !important;
	background: var(--card); border: 1px solid var(--line); border-radius: var(--r);
	box-shadow: var(--sh); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
	display: flex; flex-direction: column;
}
.flb-cat ul.products li.product:hover { transform: translateY(-3px); box-shadow: var(--sh-md); border-color: var(--b-soft); }
/* Photo produit centrée horizontalement. webp-express enveloppe l'<img> dans
   un <picture> et le thème force img{width:100%}. On neutralise (width:auto)
   et on centre le bloc image (margin:0 auto) — fiable quelle que soit la taille. */
.flb-cat ul.products li.product .flb-card__media { display: block !important; width: 100%; text-align: center; margin-bottom: 10px; }
.flb-cat ul.products li.product .flb-card__media picture { display: block; width: auto; }
.flb-cat ul.products li.product .flb-card__media img {
	display: block !important; width: auto !important; max-width: 100% !important; height: auto !important;
	margin-left: auto !important; margin-right: auto !important; border-radius: var(--r-sm);
}
.flb-cat ul.products li.product .woocommerce-loop-product__title { font-size: 14.5px !important; font-weight: 700 !important; color: var(--ink) !important; padding: 0 !important; line-height: 1.35; }
.flb-cat ul.products li.product .price { color: var(--ink-b) !important; font-weight: 800 !important; }
.flb-cat ul.products li.product .fl-atc { margin-top: auto; }

/* ── Panneau palettes (droite) ───────────────────────────────────────── */
.flb-panel {
	position: sticky; top: 92px;
	background: var(--card); border: 1px solid var(--line);
	border-radius: var(--r-lg); box-shadow: var(--sh-md);
	overflow: hidden;
}
.flb-panel.is-loading { opacity: .55; transition: opacity .15s; }
.flb-panel__head {
	padding: 16px 18px; border-bottom: 1px solid var(--line-s);
	background: linear-gradient(160deg, var(--ink-b), #06205a); color: #fff;
}
.flb-panel__head h2 { margin: 0; font-size: 16px; font-weight: 800; letter-spacing: -.01em; }
.flb-panel__empty { padding: 34px 22px; text-align: center; color: var(--mute); }
.flb-panel__pico { font-size: 38px; display: block; margin-bottom: 8px; }
.flb-pals { max-height: 56vh; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 14px; }
.flb-pal {
	border: 1px solid var(--line); border-left-width: 3px; border-radius: var(--r);
	padding: 13px; background: var(--card); animation: flb-pop .35s both;
}
.flb-pal.is-partial { border-left-color: #e7cf88; }
.flb-pal.is-full { border-left-color: var(--good); }
.flb-pal__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.flb-pal__name { font-weight: 800; font-size: 13.5px; color: var(--ink-b); }
.flb-pal__pct { font-family: var(--mono); font-size: 12px; font-weight: 500; padding: 2px 9px; border-radius: 999px; }
.flb-pal.is-partial .flb-pal__pct { color: #92710f; background: #fbf3df; }
.flb-pal.is-full .flb-pal__pct { color: var(--good-d); background: var(--good-bg); }
.flb-pal__vis {
	display: flex; justify-content: center; align-items: center;
	background: linear-gradient(180deg,#f7f9fc,#edf1f8); border: 1px solid var(--line-s);
	border-radius: 10px; padding: 4px; margin-bottom: 10px;
}
.flb-pal__vis svg { display: block; width: 100%; max-width: 220px; height: 112px; }
.flb-pal__bar { height: 8px; border-radius: 999px; background: var(--line); overflow: hidden; margin-bottom: 8px; }
.flb-pal__bar span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg,#fbbf24,#e7cf88); transition: width .7s cubic-bezier(.2,.8,.2,1); }
.flb-pal.is-full .flb-pal__bar span { background: linear-gradient(90deg,#38e07b,#16a34a); }
.flb-pal__todo { font-size: 11.5px; color: #8a6d1f; margin: 0 0 8px; }
.flb-pal__todo b { font-weight: 800; }
.flb-pal__lines { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.flb-line { display: flex; align-items: center; gap: 8px; padding: 5px 0; }
.flb-line__dot { flex: none; width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid; }
.flb-line__name {
	flex: 1; min-width: 0; font-size: 12.5px; font-weight: 600; color: var(--ink-s);
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.flb-line__qty { flex: none; display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; background: var(--paper); }
.flb-line__b { border: 0; width: 24px; height: 26px; background: transparent; color: var(--ink-b); font-size: 15px; font-weight: 700; cursor: pointer; line-height: 1; transition: background .12s, color .12s; }
.flb-line__b:hover { background: var(--ink-b); color: #fff; }
.flb-line__i { width: 34px; height: 26px; border: 0; text-align: center; background: transparent; font-family: var(--mono); font-size: 12.5px; font-weight: 500; color: var(--ink); -moz-appearance: textfield; }
.flb-line__i::-webkit-outer-spin-button, .flb-line__i::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.flb-line__x { flex: none; border: 0; background: transparent; color: var(--mute-s); cursor: pointer; font-size: 13px; width: 22px; height: 22px; border-radius: 50%; transition: background .12s, color .12s; }
.flb-line__x:hover { background: #fee2e2; color: #dc2626; }

.flb-panel__total { padding: 16px 18px; border-top: 1px solid var(--line); background: var(--paper); }
.flb-panel__encours { font-size: 12px; color: var(--mute); margin-bottom: 8px; }
.flb-panel__encours b { color: var(--ink-b); font-weight: 700; }
.flb-panel__sum { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 12px; }
.flb-panel__sum span { font-size: 13px; color: var(--mute); }
.flb-panel__sum strong { font-size: 21px; font-weight: 800; color: var(--ink-b); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.flb-panel__checkout { width: 100%; box-sizing: border-box; padding: 15px; font-size: 15px; }

/* Pulse quand une palette se remplit (ajout réussi). */
.flb-pulse { animation: flb-pulse .6s; }
@keyframes flb-pulse { 0%{box-shadow:0 0 0 0 rgba(22,163,74,.45)} 100%{box-shadow:0 0 0 14px rgba(22,163,74,0)} }

@keyframes flb-rise { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }
@keyframes flb-pop { from{opacity:0;transform:scale(.97)} to{opacity:1;transform:scale(1)} }

/* ═══════════════════════════════════════════════ Responsive ═══════════ */
@media (max-width: 1180px) {
	.flb-grid { grid-template-columns: 220px minmax(0,1fr); }
	.flb-panel {
		position: fixed; right: 0; bottom: 0; left: 0; top: auto;
		border-radius: var(--r-lg) var(--r-lg) 0 0; z-index: 50;
		max-height: 78vh; overflow-y: auto;
		transform: translateY(calc(100% - 64px)); transition: transform .3s ease;
	}
	.flb-panel.is-open { transform: translateY(0); }
	.flb-panel__head { cursor: pointer; }
	.flb-pals { max-height: 44vh; }
}
@media (max-width: 720px) {
	.flb-grid { grid-template-columns: 1fr; }
	.flb-nav { position: static; }
	.flb-cats { flex-direction: row; flex-wrap: wrap; }
	.flb-choices { grid-template-columns: 1fr; }
	/* Mobile : un produit par ligne. */
	.flb-cat ul.products { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════ Tunnel lead invité ═══ */
.flb-lead {
	--b:#0059e4; --ink-b:#002d72; --ink:#0f172a; --ink-s:#334155; --mute:#64748b;
	--line:#e2e8f0; --paper:#f6f8fb; --good:#16a34a; --card:#fff;
	font-family:'Manrope',system-ui,sans-serif; color:var(--ink);
	max-width:1180px; margin:0 auto; padding:clamp(16px,4vw,48px) clamp(14px,3vw,28px);
	display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,5vw,64px); align-items:center;
}
.flb-lead__kicker { font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--b); }
.flb-lead__aside h1 { font-size:clamp(30px,4.4vw,52px); font-weight:800; letter-spacing:-.03em; line-height:1.04; color:var(--ink-b); margin:12px 0 18px; }
.flb-lead__aside p { font-size:16px; line-height:1.6; color:var(--ink-s); max-width:30em; }
.flb-lead__bullets { list-style:none; margin:24px 0 0; padding:0; display:grid; gap:11px; }
.flb-lead__bullets li { display:flex; align-items:center; gap:11px; font-weight:600; font-size:14.5px; color:var(--ink-s); }
.flb-lead__bullets span { font-size:19px; }

.flb-lead__card {
	background:var(--card); border:1px solid var(--line); border-radius:20px;
	box-shadow:0 24px 60px -28px rgba(0,45,114,.42); padding:clamp(22px,3vw,34px);
	position:relative; min-height:380px; display:flex; flex-direction:column;
}
.flb-lead__progress { display:flex; gap:7px; margin-bottom:22px; }
.flb-lead__progress span { flex:1; height:5px; border-radius:999px; background:#e7ebf2; transition:background .3s; }
.flb-lead__progress span.is-active { background:linear-gradient(90deg,var(--ink-b),var(--b)); }
.flb-lead__step { display:none; animation:flb-rise .35s both; flex:1; }
.flb-lead__step.is-active { display:block; }
.flb-lead__step h2 { font-size:21px; font-weight:800; letter-spacing:-.02em; color:var(--ink); margin:0 0 6px; }
.flb-lead__hint { font-size:13.5px; color:var(--mute); margin:0 0 16px; }
.flb-lead__opts { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px; }
.flb-lead__opts--col { grid-template-columns:1fr; }
.flb-lead__opt {
	display:flex; align-items:center; gap:10px; cursor:pointer; text-align:left;
	padding:14px 16px; border:1.5px solid var(--line); border-radius:12px; background:var(--paper);
	font-family:inherit; font-weight:700; font-size:14px; color:var(--ink-s);
	transition:border-color .15s, background .15s, transform .12s;
}
.flb-lead__opt span { font-size:20px; }
.flb-lead__opt:hover { border-color:var(--b); background:#fff; transform:translateY(-2px); }
.flb-lead__opt.is-sel { border-color:var(--b); background:#eef4ff; color:var(--ink-b); box-shadow:0 0 0 3px rgba(0,89,228,.12); }
.flb-lead__fields { display:grid; gap:12px; margin-top:16px; }
.flb-lead__fields input {
	width:100%; box-sizing:border-box; padding:14px 16px; font-family:inherit; font-size:15px; color:var(--ink);
	background:var(--paper); border:1.5px solid var(--line); border-radius:11px; transition:border-color .15s, box-shadow .15s;
}
.flb-lead__fields input:focus { outline:0; background:#fff; border-color:var(--b); box-shadow:0 0 0 4px rgba(0,89,228,.12); }
.flb-lead__legal { font-size:12px; color:var(--mute); margin:14px 0 0; }
.flb-lead__nav { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:22px; }
.flb-lead__back { border:0; background:none; color:var(--mute); font-family:inherit; font-weight:700; font-size:14px; cursor:pointer; visibility:hidden; }
.flb-lead__back.is-on { visibility:visible; }
.flb-lead__next {
	border:0; cursor:pointer; padding:13px 26px; border-radius:999px; font-family:inherit; font-weight:800; font-size:14.5px;
	background:var(--ink-b); color:#fff; transition:background .18s, transform .18s, opacity .18s;
}
.flb-lead__next:hover { background:var(--b); transform:translateY(-2px); }
.flb-lead__next:disabled { opacity:.4; cursor:not-allowed; transform:none; }
.flb-lead__success { text-align:center; }
.flb-lead__success.is-active { display:flex; flex-direction:column; align-items:center; justify-content:center; }
.flb-lead__check { width:64px; height:64px; border-radius:50%; background:var(--good); color:#fff; font-size:34px; display:grid; place-items:center; margin-bottom:16px; box-shadow:0 12px 26px -10px rgba(22,163,74,.6); animation:flb-pop .4s both; }
.flb-lead__success p { color:var(--ink-s); max-width:30em; margin:6px 0 20px; line-height:1.55; }
.flb-lead__cta { display:inline-flex; padding:15px 30px; border-radius:999px; background:var(--good); color:#fff !important; font-weight:800; text-decoration:none; box-shadow:0 12px 26px -10px rgba(22,163,74,.6); transition:transform .18s, background .18s; }
.flb-lead__cta:hover { background:#15803d; transform:translateY(-2px); }

@media (max-width:820px) {
	.flb-lead { grid-template-columns:1fr; }
	.flb-lead__aside h1 { font-size:32px; }
	.flb-lead__opts { grid-template-columns:1fr; }
}

/* ═══════════════════════════════════════════════ Rayons SEO / AIDA (invité) ═══ */
.flb-rayons {
	--b:#0059e4; --ink-b:#002d72; --ink:#0f172a; --ink-s:#334155; --mute:#64748b;
	--line:#e2e8f0; --paper:#f6f8fb; --good:#16a34a; --card:#fff;
	font-family:'Manrope',system-ui,sans-serif; color:var(--ink);
	max-width:1120px; margin:0 auto; padding:clamp(30px,6vw,72px) clamp(14px,3vw,28px);
	border-top:1px solid var(--line);
}
.flb-rayons__head { text-align:center; max-width:720px; margin:0 auto clamp(28px,4vw,48px); }
.flb-rayons__kicker { font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--b); }
.flb-rayons__head h2 { font-size:clamp(24px,3.4vw,38px); font-weight:800; letter-spacing:-.03em; color:var(--ink-b); margin:10px 0 12px; line-height:1.1; }
.flb-rayons__head p { color:var(--ink-s); font-size:16px; line-height:1.6; }
.flb-rayons__list { display:flex; flex-direction:column; gap:clamp(20px,3vw,34px); }

.flb-rayon {
	display:grid; grid-template-columns:280px 1fr; gap:clamp(20px,3vw,40px); align-items:center;
	background:var(--card); border:1px solid var(--line); border-radius:20px; overflow:hidden;
	box-shadow:0 10px 30px -16px rgba(15,23,42,.16);
}
.flb-rayon.is-alt { grid-template-columns:1fr 280px; }
.flb-rayon.is-alt .flb-rayon__visual { order:2; }
.flb-rayon__visual {
	align-self:stretch; min-height:220px; display:grid; place-items:center;
	background:linear-gradient(150deg,#0a2a6b,#0059e4);
}
.flb-rayon__visual--frites { background:linear-gradient(150deg,#b45309,#f59e0b); }
.flb-rayon__visual--aperitifs { background:linear-gradient(150deg,#7c2d12,#ea580c); }
.flb-rayon__visual--pain { background:linear-gradient(150deg,#92400e,#d4a04a); }
.flb-rayon__visual--epicerie { background:linear-gradient(150deg,#334155,#64748b); }
.flb-rayon__visual--viandes { background:linear-gradient(150deg,#7f1d1d,#dc2626); }
.flb-rayon__emoji { font-size:84px; filter:drop-shadow(0 8px 18px rgba(0,0,0,.25)); }
.flb-rayon__body { padding:clamp(20px,2.4vw,34px) clamp(20px,2.4vw,34px) clamp(20px,2.4vw,34px) 0; }
.flb-rayon.is-alt .flb-rayon__body { padding-left:clamp(20px,2.4vw,34px); padding-right:0; }
.flb-rayon__tags { display:flex; gap:6px; margin-bottom:10px; }
.flb-rayon__tag {
	font-family:'DM Mono',monospace; font-size:10px; font-weight:500; letter-spacing:.06em; text-transform:uppercase;
	color:#1f5fd0; background:#e6efff; padding:3px 9px; border-radius:999px;
}
.flb-rayon__tag--amb { color:#475569; background:#eef1f6; }
.flb-rayon__title { font-size:clamp(22px,2.6vw,30px); font-weight:800; letter-spacing:-.02em; color:var(--ink); margin:0 0 8px; }
.flb-rayon__attention { font-size:17px; font-weight:800; color:var(--ink-b); line-height:1.35; margin:0 0 12px; }
.flb-rayon__text { color:var(--ink-s); font-size:14.5px; line-height:1.6; margin:0 0 10px; }
.flb-rayon__desir { color:var(--ink); }
.flb-rayon__actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-top:16px; }
.flb-rayon__cta {
	display:inline-flex; padding:12px 22px; border-radius:999px; background:var(--ink-b); color:#fff !important;
	font-weight:800; font-size:14px; text-decoration:none; transition:background .18s, transform .18s;
}
.flb-rayon__cta:hover { background:var(--b); transform:translateY(-2px); }
.flb-rayon__link { font-size:13px; font-weight:700; color:var(--b); text-decoration:none; }
.flb-rayon__link:hover { text-decoration:underline; }

.flb-rayons__foot { text-align:center; margin-top:clamp(28px,4vw,46px); display:flex; flex-direction:column; align-items:center; gap:12px; }
.flb-rayons__cta {
	display:inline-flex; padding:16px 34px; border-radius:999px; background:var(--good); color:#fff !important;
	font-weight:800; font-size:16px; text-decoration:none; box-shadow:0 14px 30px -12px rgba(22,163,74,.6); transition:background .18s, transform .18s;
}
.flb-rayons__cta:hover { background:#15803d; transform:translateY(-2px); }
.flb-rayons__login { font-size:14px; font-weight:700; color:var(--mute); text-decoration:none; }
.flb-rayons__login:hover { color:var(--ink-b); }

@media (max-width:720px) {
	.flb-rayon, .flb-rayon.is-alt { grid-template-columns:1fr; }
	.flb-rayon.is-alt .flb-rayon__visual { order:0; }
	.flb-rayon__visual { min-height:150px; }
	.flb-rayon__emoji { font-size:60px; }
	.flb-rayon__body, .flb-rayon.is-alt .flb-rayon__body { padding:22px; }
}
