/* Module « Commande en ligne » — interface visiteur. Couleurs et polices = variables --cmd-* (fiche de thème du site). */
.wfc {
  --cmd-primaire: #D9480F; --cmd-primaire-fonce: #B23A0B; --cmd-fonce: #1A1614; --cmd-accent: #F2B705;
  --cmd-fond: #FFF6EC; --cmd-carte: #fff; --cmd-texte: #2B2320; --cmd-gris: #6E625C; --cmd-trait: rgba(43, 35, 32, .12);
  --cmd-rayon: 16px; --cmd-police-titres: 'Bebas Neue', Impact, sans-serif; --cmd-police: 'Poppins', system-ui, sans-serif;
  --cmd-vert: #2f9e44; --cmd-rouge: #c92a2a;
  font-family: var(--cmd-police); color: var(--cmd-texte); max-width: 980px; margin: 0 auto; padding: 0 0 110px;
  -webkit-tap-highlight-color: transparent;
}
.wfc *, .wfc *::before, .wfc *::after { box-sizing: border-box; }
.wfc button { font: inherit; color: inherit; cursor: pointer; }
.wfc input, .wfc select, .wfc textarea { font: inherit; color: var(--cmd-texte); }
.wfc h2, .wfc h3 { margin: 0; }
.wfc [hidden] { display: none !important; }
html.wfc-bloque { overflow: hidden; }
.wfc-chargement { padding: 60px 16px; text-align: center; color: var(--cmd-gris); }
.wfc-rouge { color: var(--cmd-rouge); }
.wfc-gris { color: var(--cmd-gris); }
.wfc-lien { background: none; border: 0; padding: 0; color: var(--cmd-primaire); text-decoration: underline; font-size: .9rem; }

/* --- tête : statut, délai, adresse --- */
.wfc-tete { padding: 16px; }
.wfc-accueil { margin: 0 0 6px; font-weight: 600; }
.wfc-statut { margin: 0 0 4px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: .95rem; }
.wfc-statut small { color: var(--cmd-gris); }
.wfc-pastille { display: inline-block; padding: 3px 10px; border-radius: 99px; background: var(--cmd-vert); color: #fff; font-size: .78rem; font-weight: 600; }
.wfc-pastille--off { background: var(--cmd-gris); }
.wfc-modes { margin: 0 0 10px; color: var(--cmd-gris); font-size: .85rem; }
.wfc-adr { display: block; width: 100%; text-align: left; background: var(--cmd-carte); border: 1px solid var(--cmd-trait); border-radius: 12px; padding: 10px 14px; font-size: .92rem; }
.wfc-adr span { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--cmd-gris); }
.wfc-adr em { font-style: normal; color: var(--cmd-vert); }
.wfc-adr em.wfc-rouge { color: var(--cmd-rouge); }

/* --- catégories : menu déroulant collé en haut --- */
.wfc-cats { position: sticky; top: var(--cmd-haut, 0px); z-index: 20; padding: 10px 16px; background: var(--cmd-fond); border-bottom: 1px solid var(--cmd-trait); }
.wfc-cats-btn { display: flex; align-items: center; gap: 10px; width: 100%; padding: 12px 14px; border: 1px solid var(--cmd-fonce); border-radius: 12px;
  background: var(--cmd-carte); font-weight: 600; text-align: left; }
.wfc-cats-ico { font-size: 1.1rem; }
.wfc-cats-actu { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wfc-cats-fl { transition: transform .15s; }
.wfc-cats.ouvert .wfc-cats-fl { transform: rotate(180deg); }
.wfc-cats-liste { position: absolute; left: 16px; right: 16px; top: calc(100% - 4px); margin: 0; padding: 6px; list-style: none; background: var(--cmd-carte);
  border-radius: 12px; box-shadow: 0 14px 40px rgba(26, 22, 20, .25); max-height: 65vh; overflow-y: auto; }
.wfc-cats-liste button { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: 12px; border: 0; border-radius: 8px; background: none; text-align: left; font-size: .95rem; }
.wfc-cats-liste button:hover { background: var(--cmd-fond); }
.wfc-cats-liste button.actif { background: var(--cmd-fonce); color: var(--cmd-sur-fonce, #fff); }
.wfc-cats-liste small { color: inherit; opacity: .6; }
.wfc-cherche { padding: 12px 16px 0; }
.wfc-cherche input { width: 100%; padding: 11px 14px; border: 1px solid var(--cmd-trait); border-radius: 12px; background: var(--cmd-carte); }

/* --- liste des plats --- */
.wfc-cat { padding: 18px 16px 4px; scroll-margin-top: 80px; }
.wfc-cat h2 { font-family: var(--cmd-police-titres); font-size: 1.9rem; letter-spacing: .02em; font-weight: 400; color: var(--cmd-fonce); }
.wfc-intro { margin: 2px 0 10px; color: var(--cmd-gris); font-size: .88rem; }
.wfc-plat { display: flex; gap: 12px; align-items: stretch; background: var(--cmd-carte); border-radius: var(--cmd-rayon); padding: 12px; margin: 10px 0;
  box-shadow: 0 2px 10px rgba(26, 22, 20, .06); cursor: pointer; transition: transform .12s; }
.wfc-plat:active { transform: scale(.985); }
.wfc-plat:focus-visible { outline: 3px solid var(--cmd-accent); }
.wfc-plat-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.wfc-plat h3 { font-size: 1rem; font-weight: 600; line-height: 1.25; }
.wfc-plat p { margin: 4px 0 8px; font-size: .84rem; color: var(--cmd-gris); line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.wfc-plat-bas { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.wfc-prix { font-weight: 700; color: var(--cmd-primaire-fonce); }
.wfc-etiq { font-size: .7rem; background: #fff1c7; color: #7a5a00; padding: 2px 8px; border-radius: 99px; }
.wfc-plat-img { position: relative; flex: 0 0 104px; height: 104px; border-radius: 12px; overflow: hidden; background: var(--cmd-fond); }
.wfc-plat-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wfc-plat-img--vide { flex-basis: 44px; height: auto; background: none; }
.wfc-plus { position: absolute; right: 6px; bottom: 6px; width: 34px; height: 34px; border-radius: 50%; background: var(--cmd-primaire); color: var(--cmd-sur-primaire, #fff);
  display: grid; place-items: center; font-size: 1.4rem; line-height: 1; box-shadow: 0 3px 10px rgba(0, 0, 0, .25); }
.wfc-plat.indispo { opacity: .5; cursor: default; }
.wfc-plat.indispo .wfc-prix { color: var(--cmd-gris); font-weight: 500; }
.wfc-qte-badge { color: var(--cmd-primaire); }
.wfc-vide { padding: 30px 16px; color: var(--cmd-gris); }

/* --- barre du panier --- */
.wfc-barre { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
  background: linear-gradient(transparent, rgba(255, 246, 236, .95) 30%); }
.wfc-btn { display: block; width: 100%; border: 0; border-radius: 14px; padding: 14px 18px; background: var(--cmd-primaire); color: var(--cmd-sur-primaire, #fff) !important;
  font-weight: 600; font-size: 1rem; text-align: center; transition: background .15s; }
.wfc-btn:hover { background: var(--cmd-primaire-fonce); }
.wfc-btn:disabled { opacity: .55; cursor: not-allowed; }
.wfc-btn--barre { max-width: 640px; margin: 0 auto; display: flex; align-items: center; gap: 10px; box-shadow: 0 8px 24px rgba(217, 72, 15, .35); }
.wfc-btn--barre span:last-child { margin-left: auto; }
.wfc-barre-n { background: rgba(255, 255, 255, .25); border-radius: 8px; padding: 1px 9px; }
.wfc-btn--clair { background: var(--cmd-carte); color: var(--cmd-texte) !important; border: 1px solid var(--cmd-trait); }
.wfc-btn--clair:hover { background: var(--cmd-fond); }
.wfc-btn--rouge { background: var(--cmd-rouge); }
.wfc-btn--grand { padding: 17px; font-size: 1.05rem; margin-top: 8px; }

/* --- feuilles (fiche du plat, panier) --- */
.wfc-voile { position: fixed; inset: 0; z-index: 60; background: rgba(20, 16, 14, .5); opacity: 0; transition: opacity .2s; }
.wfc-voile.ouverte { opacity: 1; }
.wfc-feuille { position: fixed; z-index: 61; left: 0; right: 0; bottom: 0; max-height: 92vh; display: flex; flex-direction: column;
  background: var(--cmd-carte); border-radius: 22px 22px 0 0; transform: translateY(100%); transition: transform .22s ease-out; overflow: hidden; }
.wfc-feuille.ouverte { transform: none; }
.wfc-feuille > :not(.wfc-fermer):not(.wfc-fiche-pied) { overflow-y: auto; }
.wfc-feuille .wfc-fiche, .wfc-feuille .wfc-panier { flex: 1; min-height: 0; overflow-y: auto; padding: 18px 16px 10px; overscroll-behavior: contain; }
.wfc-fermer { position: absolute; top: 10px; right: 10px; z-index: 2; width: 38px; height: 38px; border-radius: 50%; border: 0;
  background: rgba(255, 255, 255, .92); box-shadow: 0 2px 8px rgba(0, 0, 0, .2); font-size: 1.5rem; line-height: 1; }
.wfc-fiche-img { height: 200px; margin: -18px -16px 14px; overflow: hidden; }
.wfc-fiche-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wfc-fiche h3 { font-size: 1.3rem; padding-right: 40px; }
.wfc-fiche-desc { color: var(--cmd-gris); font-size: .9rem; margin: 6px 0; line-height: 1.45; }
.wfc-fiche-prix { font-weight: 700; color: var(--cmd-primaire-fonce); margin: 4px 0 8px; }
.wfc-allerg { font-size: .82rem; margin: 0 0 6px; color: var(--cmd-gris); }
.wfc-allerg summary { cursor: pointer; text-decoration: underline; width: max-content; }
.wfc-allerg p { margin: 4px 0; }
.wfc-groupe { border: 0; margin: 16px 0 0; padding: 0; }
.wfc-groupe legend { width: 100%; display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 10px 12px;
  background: var(--cmd-fond); border-radius: 10px; font-weight: 600; }
.wfc-groupe legend em { font-style: normal; font-size: .75rem; color: var(--cmd-gris); font-weight: 500; text-align: right; }
.wfc-groupe legend em.oblig { color: var(--cmd-primaire-fonce); }
.wfc-groupe.ok legend em.oblig { color: var(--cmd-vert); }
.wfc-groupe.secoue { animation: wfc-secoue .5s; }
@keyframes wfc-secoue { 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }
.wfc-choix { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 6px 4px; border-bottom: 1px solid var(--cmd-trait); cursor: pointer; }
.wfc-choix input[type=radio] { width: 22px; height: 22px; accent-color: var(--cmd-primaire); margin: 0; flex: 0 0 auto; }
.wfc-choix-nom { flex: 1; font-size: .95rem; }
.wfc-choix-prix { font-size: .85rem; color: var(--cmd-gris); white-space: nowrap; }
.wfc-choix.indispo { opacity: .45; cursor: default; }
.wfc-choix.pris .wfc-choix-nom { font-weight: 600; }
.wfc-pas { display: inline-flex; align-items: center; gap: 2px; flex: 0 0 auto; }
.wfc-pas button { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--cmd-trait); background: var(--cmd-carte); font-size: 1.2rem; line-height: 1; padding: 0; }
.wfc-pas button:disabled { opacity: .35; cursor: not-allowed; }
.wfc-pas b { min-width: 26px; text-align: center; }
.wfc-choix--qte .wfc-moins, .wfc-choix--qte b { visibility: hidden; }
.wfc-choix--qte.pris .wfc-moins, .wfc-choix--qte.pris b { visibility: visible; }
.wfc-choix--qte .wfc-ajout { background: var(--cmd-fonce); color: var(--cmd-sur-fonce, #fff); border-color: var(--cmd-fonce); }
.wfc-instr { display: block; margin: 18px 0 6px; }
.wfc-instr span { display: block; font-weight: 600; margin-bottom: 6px; }
.wfc-instr textarea, .wfc-champ input, .wfc-champ textarea, .wfc-adr-champ input, .wfc select {
  width: 100%; padding: 12px 14px; border: 1px solid var(--cmd-trait); border-radius: 12px; background: var(--cmd-carte); font-size: 16px; }
.wfc-fiche-pied { flex: 0 0 auto; display: flex; gap: 10px; align-items: center; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--cmd-trait); background: var(--cmd-carte); }
.wfc-fiche-pied .wfc-btn { flex: 1; }
.wfc-pas--grand button { width: 42px; height: 42px; }
.wfc-ajouter.manque { background: var(--cmd-fonce); font-size: .88rem; }

/* --- panier --- */
.wfc-panier h3 { font-family: var(--cmd-police-titres); font-weight: 400; font-size: 1.8rem; margin-bottom: 8px; }
.wfc-ligne { display: flex; gap: 10px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid var(--cmd-trait); }
.wfc-ligne-txt { flex: 1; min-width: 0; }
.wfc-ligne-txt strong { display: block; font-size: .95rem; }
.wfc-ligne-txt small, .wfc-recap-l small { display: block; font-size: .8rem; color: var(--cmd-gris); margin-top: 2px; }
.wfc-ligne-actions { display: flex; gap: 16px; margin-top: 6px; }
.wfc-ligne-txt .wfc-lien { font-size: .82rem; }
.wfc-lsuppr { color: var(--cmd-rouge) !important; }
.wfc-pas .wfc-poubelle { display: inline-grid; place-items: center; color: var(--cmd-rouge); }
.wfc-instr-l { color: var(--cmd-primaire-fonce) !important; font-style: italic; }
.wfc-ligne-prix { font-weight: 600; white-space: nowrap; }
.wfc-ligne.erreur, .wfc-recap-l.erreur { background: #fff0f0; }
.wfc-palier { background: #e9f8ec; color: #1e6b2e; border-radius: 12px; padding: 10px 12px; margin: 14px 0 4px; font-size: .9rem; }
.wfc-sugg-titre { font-weight: 600; margin: 16px 0 8px; }
.wfc-suggs { display: flex; flex-direction: column; gap: 6px; }
.wfc-sugg { display: flex; align-items: center; gap: 12px; width: 100%; border: 1px solid var(--cmd-trait); border-radius: 12px; background: var(--cmd-carte); padding: 8px 12px; text-align: left; font-size: .92rem; min-height: 52px; }
.wfc-sugg img { width: 44px; height: 44px; object-fit: cover; border-radius: 8px; flex: 0 0 44px; }
.wfc-sugg span { flex: 1; min-width: 0; }
.wfc-sugg b { color: var(--cmd-primaire-fonce); white-space: nowrap; }
.wfc-totaux { display: grid; grid-template-columns: 1fr auto; gap: 6px 0; margin: 16px 0 6px; }
.wfc-totaux dd { padding-left: 12px; }
.wfc-totaux dt, .wfc-totaux dd { margin: 0; }
.wfc-totaux dd { text-align: right; }
.wfc-totaux .wfc-total { font-weight: 700; font-size: 1.1rem; padding-top: 6px; border-top: 1px solid var(--cmd-trait); }

/* --- validation --- */
.wfc-valid { padding: 16px; max-width: 640px; margin: 0 auto; }
.wfc-valid > h2 { font-family: var(--cmd-police-titres); font-weight: 400; font-size: 2.1rem; margin: 10px 0 6px; color: var(--cmd-fonce); }
.wfc-bloc { background: var(--cmd-carte); border-radius: var(--cmd-rayon); padding: 16px; margin: 14px 0; box-shadow: 0 2px 10px rgba(26, 22, 20, .05); }
.wfc-bloc h3 { font-size: 1.05rem; margin-bottom: 10px; }
.wfc-champ { display: block; margin: 10px 0; }
.wfc-champ span { display: block; font-size: .85rem; font-weight: 600; margin-bottom: 5px; }
.wfc-champ small { font-weight: 400; color: var(--cmd-gris); }
.wfc-adr-champ { position: relative; }
.wfc-suggestions { position: absolute; z-index: 30; left: 0; right: 0; top: 100%; margin: 4px 0 0; padding: 4px; list-style: none; background: var(--cmd-carte);
  border: 1px solid var(--cmd-trait); border-radius: 12px; box-shadow: 0 10px 30px rgba(0, 0, 0, .15); max-height: 300px; overflow-y: auto; }
.wfc-suggestions button { display: block; width: 100%; text-align: left; border: 0; background: none; padding: 11px 10px; border-radius: 8px; font-size: .92rem; }
.wfc-suggestions button:hover, .wfc-suggestions button:focus { background: var(--cmd-fond); }
.wfc-suggestions small { color: var(--cmd-gris); }
.wfc-suggestions li.wfc-gris { padding: 10px; font-size: .88rem; }
.wfc-localiser { margin: 10px 0; }
.wfc-carte-adr { height: 260px; border-radius: 12px; overflow: hidden; border: 1px solid var(--cmd-trait); z-index: 1; }
.wfc-aide { font-size: .8rem; color: var(--cmd-gris); margin: 6px 0; }
.wfc-zone-ok { background: #e9f8ec; color: #1e6b2e; border-radius: 10px; padding: 10px 12px; margin: 8px 0; font-size: .88rem; }
.wfc-zone-hors { background: #fff0f0; color: var(--cmd-rouge); border-radius: 10px; padding: 10px 12px; margin: 8px 0; font-size: .88rem; }
.wfc-radio, .wfc-case { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 4px 0; cursor: pointer; }
.wfc-radio input, .wfc-case input { width: 22px; height: 22px; accent-color: var(--cmd-primaire); margin: 0; flex: 0 0 auto; }
.wfc-radio > span { flex: 1; min-width: 0; line-height: 1.3; }
.wfc-radio small { display: block; color: var(--cmd-gris); font-size: .82rem; margin-top: 2px; }
.wfc-quand select { margin-top: 6px; }
.wfc-info { font-size: .9rem; margin: 0 0 6px; }
.wfc-seg { display: flex; gap: 8px; }
.wfc-seg label { flex: 1; display: flex; gap: 8px; align-items: center; justify-content: center; padding: 12px; border: 1px solid var(--cmd-trait); border-radius: 12px; cursor: pointer; }
.wfc-case-allergie { margin-top: 6px; padding: 8px 10px; border: 1px dashed var(--cmd-rouge); border-radius: 12px; }
.wfc-case-allergie b { color: var(--cmd-rouge); }
.wfc-bloc-alcool { border: 2px solid var(--cmd-fonce); }
.wfc-alcool-txt { margin: 0 0 8px; font-size: .88rem; font-weight: 600; }
.wfc-recap-l { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--cmd-trait); font-size: .92rem; }
.wfc-recap-l b { white-space: nowrap; }
.wfc-erreurs { color: var(--cmd-rouge); }
.wfc-erreurs:not(:empty) { background: #fff0f0; border-radius: 12px; padding: 4px 14px; margin: 12px 0; }
.wfc-erreurs ul { margin: 0 0 10px; padding-left: 20px; }
.wfc-mention { font-size: .8rem; color: var(--cmd-gris); text-align: center; margin: 10px 0; }
.wfc-mention a { color: inherit; }

/* --- suivi, annulation --- */
.wfc-suivi-n { margin: 6px 0 0; color: var(--cmd-gris); font-weight: 600; }
.wfc-heure { font-size: 1.05rem; margin: 4px 0 10px; }
.wfc-heure b { font-size: 1.4rem; color: var(--cmd-primaire-fonce); }
.wfc-etapes { list-style: none; padding: 0; margin: 14px 0; }
.wfc-etapes li { position: relative; padding: 0 0 18px 34px; color: var(--cmd-gris); }
.wfc-etapes li::before { content: ''; position: absolute; left: 6px; top: 3px; width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--cmd-trait); background: var(--cmd-carte); }
.wfc-etapes li:not(:last-child)::after { content: ''; position: absolute; left: 13px; top: 21px; bottom: 2px; width: 2px; background: var(--cmd-trait); }
.wfc-etapes li.fait { color: var(--cmd-texte); }
.wfc-etapes li.fait::before { background: var(--cmd-vert); border-color: var(--cmd-vert); }
.wfc-etapes li.encours { color: var(--cmd-texte); font-weight: 700; }
.wfc-etapes li.encours::before { background: var(--cmd-primaire); border-color: var(--cmd-primaire); box-shadow: 0 0 0 5px rgba(217, 72, 15, .2); animation: wfc-pouls 1.6s infinite; }
@keyframes wfc-pouls { 50% { box-shadow: 0 0 0 9px rgba(217, 72, 15, .05); } }
.wfc-alerte { background: #fff4e0; border-left: 4px solid var(--cmd-accent); padding: 12px 14px; border-radius: 10px; margin: 12px 0; }
.wfc-annul .wfc-btn { margin: 10px 0; }
.wfc-bulle { position: fixed; left: 12px; right: 12px; bottom: calc(84px + env(safe-area-inset-bottom, 0px)); z-index: 70; max-width: 640px; margin: 0 auto;
  display: flex; align-items: center; gap: 10px; background: var(--cmd-fonce); color: var(--cmd-sur-fonce, #fff); padding: 12px 14px; border-radius: 12px; font-size: .9rem; line-height: 1.35;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .25); transform: translateY(16px); opacity: 0; transition: all .25s; pointer-events: none; }
.wfc-bulle::before { content: '✓'; flex: 0 0 24px; height: 24px; border-radius: 50%; background: var(--cmd-vert); display: grid; place-items: center; font-weight: 700; font-size: .8rem; }
.wfc-bulle.vue { opacity: 1; transform: none; }

@media (min-width: 760px) {
  .wfc-cat { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
  .wfc-cat h2, .wfc-intro { grid-column: 1 / -1; }
  .wfc-feuille { left: 50%; right: auto; top: 50%; bottom: auto; width: 560px; max-height: 86vh; border-radius: 22px; transform: translate(-50%, -45%); opacity: 0; transition: transform .2s, opacity .2s; }
  .wfc-feuille.ouverte { transform: translate(-50%, -50%); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .wfc *, .wfc-feuille { transition: none !important; animation: none !important; }
}

/* --- panneau « Où livrer ? » --- */
.wfc-adr-feuille .wfc-carte-adr { height: 230px; }
.wfc-zones { list-style: none; padding: 0; margin: 0 0 6px; font-size: .85rem; }
.wfc-zones li { padding: 5px 0 5px 18px; position: relative; line-height: 1.4; }
.wfc-zone-pt { position: absolute; left: 0; top: 10px; width: 10px; height: 10px; border-radius: 50%; }

/* --- informations légales --- */
.wfc-legal .wfc-lien { font-size: inherit; color: inherit; }
.wfc-legal-texte h3 { font-family: var(--cmd-police-titres); font-weight: 400; font-size: 1.7rem; margin-bottom: 8px; }
.wfc-legal-texte p { font-size: .9rem; line-height: 1.5; margin: 0 0 10px; }

/* --- erreurs, offertes, habitué (audit du 06/10) --- */
.wfc .wfc-err, .wfc input.wfc-err, .wfc textarea.wfc-err { border-color: var(--cmd-rouge) !important; box-shadow: 0 0 0 3px rgba(201, 42, 42, .15); }
.wfc div.wfc-err, .wfc .wfc-paiements.wfc-err, .wfc .wfc-quand.wfc-err { border-radius: 10px; outline: 2px solid var(--cmd-rouge); outline-offset: 4px; }
.wfc-offert { color: var(--cmd-vert) !important; font-weight: 600; }
.wfc-habitue { margin: 4px 0 0; font-size: .88rem; color: var(--cmd-vert); }
.wfc-habitue:empty { display: none; }
.wfc-pastille { background: #237032; }
.wfc-choix-sans .wfc-choix-nom { color: #5f5f5f; }

/* apparence choisie par le restaurateur (onglet Apparence) : logo en tête */
.wfc-logo { display: block; max-height: 64px; max-width: 220px; margin: 0 0 10px; object-fit: contain; }

/* Offres (promotions) : liste verticale en haut de la carte, étiquette sur les plats visés, remises dans les totaux, code promo */
.wfc-offres { margin: 4px 0 12px; padding: 12px 14px; border-radius: var(--cmd-rayon, 14px); background: color-mix(in srgb, var(--cmd-primaire) 9%, var(--cmd-carte, #fff)); border: 1px solid color-mix(in srgb, var(--cmd-primaire) 28%, transparent); }
.wfc-offres-titre { margin: 0 0 6px; font-weight: 700; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--cmd-texte); }
.wfc-offres ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.wfc-offres li { display: flex; flex-direction: column; gap: 1px; line-height: 1.35; }
.wfc-offres li b { color: var(--cmd-texte); }
.wfc-offres li small { color: var(--cmd-gris); font-size: .82rem; }
.wfc-etiq-offre { background: var(--cmd-primaire); color: var(--cmd-sur-primaire, #fff); font-weight: 600; white-space: normal; line-height: 1.3; border-radius: 8px; max-width: 100%; }
.wfc-totaux .wfc-remise { font-weight: 600; }
.wfc-vert { color: var(--cmd-texte); font-weight: 600; }
/* message du code : couleur du texte (lisible sur fond sombre comme clair), trait coloré à gauche pour le sens */
.wfc-code-res { margin: 6px 0 0; font-size: .88rem; color: var(--cmd-texte); padding-left: 10px; border-left: 3px solid var(--cmd-trait); }
.wfc-code-res.wfc-vert { border-left-color: #2f9e44; }
.wfc-code-res.wfc-rouge { color: var(--cmd-texte); font-weight: 600; border-left-color: var(--cmd-rouge); }
.wfc-code-res:empty { display: none; }
#wfc-code { text-transform: uppercase; }
