/* Police Nunito hébergée sur le site (licence SIL OFL 1.1, fichier OFL-Nunito.txt) : aucun appel à Google. */
@font-face{font-family:'Nunito';font-style:normal;font-display:swap;font-weight:200 1000;src:url('/assets/fonts/nunito-latin-ext-wght-normal.woff2') format('woff2-variations'),url('/assets/fonts/nunito-latin-ext-wght-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Nunito';font-style:normal;font-display:swap;font-weight:200 1000;src:url('/assets/fonts/nunito-latin-wght-normal.woff2') format('woff2-variations'),url('/assets/fonts/nunito-latin-wght-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/*
 * Identité La K’Fet Solidaire — tous les choix graphiques sont centralisés ici.
 * Voir docs/IDENTITE-GRAPHIQUE.md pour l’origine de chaque valeur (extraite / adaptée / provisoire).
 */
 :root {
  /* Couleurs de marque (extraites du logo fourni : favicon.png) */
  --kf-navy: #172b64;        /* bol du logo */
  --kf-green: #34b664;       /* feuilles du logo */
  --kf-cream: #fcf8e8;       /* fond du logo */
  /* Adaptations pour la lisibilité (dérivées des couleurs de marque) */
  --kf-navy-deep: #101f4a;   /* survol des boutons */
  --kf-navy-soft: #3d4b7a;   /* texte secondaire (≥ 7:1 sur crème) */
  --kf-green-deep: #1b7a43;  /* texte / liens verts (≥ 4,5:1 sur crème) */
  --kf-green-tint: #e3f4e6;  /* fonds d’encadrés */
  --kf-navy-tint: #e8eaf4;   /* fonds neutres froids */
  --kf-cream-deep: #f5eed3;  /* sections alternées */
  --kf-white: #fffefa;
  --kf-line: #ddd6b9;
  --kf-error: #a82d2d;
  --kf-error-tint: #fbe9e7;
  --kf-focus: #172b64;

  /* Typographie (substitut web provisoire : police officielle non identifiée) */
  --font-sans: 'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --text-sm: .9375rem; --text-base: 1rem; --text-lg: 1.125rem;
  --leading: 1.6;

  /* Espacements, arrondis, ombres */
  --space-1: .25rem; --space-2: .5rem; --space-3: .75rem; --space-4: 1rem; --space-5: 1.5rem; --space-6: 2rem; --space-7: 3rem; --space-8: 4.5rem;
  --radius-sm: 10px; --radius: 16px; --radius-lg: 24px; --radius-pill: 999px;
  --shadow: 0 2px 0 rgba(23,43,100,.06), 0 8px 24px -12px rgba(23,43,100,.25);
  --wrap: 1180px; --gutter: clamp(1rem, 4vw, 2rem);

  
 }
 [hidden]{display:none!important}
 *,*:before,*:after{box-sizing:border-box}
 html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h,96px) + 16px);-webkit-text-size-adjust:100%}
 body{margin:0;background:var(--kf-cream);color:var(--kf-navy);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading);overflow-x:clip;-webkit-font-smoothing:antialiased}
 h1,h2,h3,p,figure{margin:0}
 h1,h2,h3{font-weight:800;line-height:1.15;letter-spacing:-.01em;text-wrap:balance}
 h1{font-size:clamp(2.1rem,6vw,3.5rem)} h2{font-size:clamp(1.6rem,4vw,2.25rem)} h3{font-size:1.2rem}
 h1 em,h2 em{font-style:normal;color:var(--kf-green-deep)}
 a{color:inherit;text-decoration:none}
 p{line-height:1.65}
 button,input,select,textarea{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}
 button{cursor:pointer;background:none;border:0;padding:0}
 button:disabled{cursor:not-allowed}
 img{display:block;max-width:100%;object-fit:cover}
 svg{flex-shrink:0}
 :focus-visible{outline:3px solid var(--kf-focus);outline-offset:3px;border-radius:6px;box-shadow:0 0 0 6px var(--kf-cream)}
 ::selection{background:var(--kf-green);color:var(--kf-navy)}
 label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);font-weight:700}
 input,select,textarea{background:var(--kf-white);border:2px solid #b9bfd6;border-radius:var(--radius-sm);min-height:48px;padding:10px 14px;font-size:var(--text-base);font-weight:500;width:100%;max-width:100%}
 input::placeholder,textarea::placeholder{color:#656d8e}
 input:hover,select:hover,textarea:hover{border-color:var(--kf-navy-soft)}
 input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--kf-navy);box-shadow:0 0 0 4px rgba(52,182,100,.35);outline:3px solid transparent}
 select:disabled,input:disabled{background:#eceae0;color:#5c6280;border-color:#d4d0bd}
 textarea{resize:vertical}
 [aria-invalid=true]{border-color:var(--kf-error)}
 pre{overflow-x:auto;font-size:var(--text-sm);max-width:100%;background:var(--kf-navy-tint);padding:15px;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:var(--radius-sm)}
 details{margin-top:var(--space-4);border-top:1px solid var(--kf-line);padding-top:var(--space-3);font-size:var(--text-sm)}
 summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center}
 .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ───────── Éléments communs ───────── */
.skip-link{position:absolute;left:var(--space-4);top:-100px;background:var(--kf-navy);color:#fff;padding:12px 18px;border-radius:var(--radius-sm);z-index:100;font-weight:800}
.skip-link:focus{top:var(--space-3)}
.eyebrow{font-size:.8125rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--kf-green-deep);display:inline-flex;align-items:center;gap:var(--space-2)}
.eyebrow>span{width:8px;height:8px;background:var(--kf-green);border-radius:50%}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:52px;padding:12px 26px;border-radius:var(--radius-pill);border:2px solid transparent;font-size:var(--text-base);font-weight:800;line-height:1.25;text-align:center;transition:background-color .2s,color .2s,transform .15s,border-color .2s}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--kf-navy);color:#fff;border-color:var(--kf-navy)}
.btn-primary:hover{background:var(--kf-navy-deep)}
.btn-primary:disabled{background:#c9ccd9;border-color:#c9ccd9;color:#4a5072}
.btn-outline{background:transparent;color:var(--kf-navy);border-color:var(--kf-navy)}
.btn-outline:hover{background:var(--kf-navy);color:#fff}
.btn-outline:disabled{opacity:.55}
.btn-green{background:var(--kf-green);color:var(--kf-navy);border-color:var(--kf-green)}
.btn-green:hover{background:#2da157;border-color:#2da157}
.btn-disabled{background:#e4e1d0;border-color:#d4d0bd;color:#4a5072;width:100%}
.text-link{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;font-weight:800;color:var(--kf-green-deep);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-color:var(--kf-green)}
.text-link:hover{color:var(--kf-navy)}
.notice{display:flex;gap:var(--space-3);background:var(--kf-green-tint);border:2px solid #bfe3c6;border-radius:var(--radius);padding:var(--space-4) var(--space-5);font-size:var(--text-sm);color:var(--kf-navy);margin:var(--space-4) 0;align-items:flex-start}
.notice>svg{margin-top:2px;color:var(--kf-green-deep)}
.notice p{font-size:var(--text-sm)}
.notice-warn{background:#fff3d6;border-color:#f0d9a0}
.demo-tag{position:absolute;top:12px;left:12px;background:var(--kf-cream);color:var(--kf-navy);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:5px 12px;border-radius:var(--radius-pill);border:1.5px solid var(--kf-navy)}
.demo-tag.static{position:static;display:inline-block;margin-bottom:var(--space-2)}
.feedback{font-size:var(--text-sm);font-weight:700;color:var(--kf-green-deep);margin:var(--space-3) 0;min-height:2px}
.error{color:var(--kf-error)!important;font-size:var(--text-sm);font-weight:700}
.caption{font-size:var(--text-sm);color:var(--kf-navy-soft);display:flex;gap:var(--space-2);align-items:flex-start;margin-top:var(--space-4)}
.service-note{font-size:var(--text-sm);color:var(--kf-navy-soft)}
.empty-state{text-align:center;padding:var(--space-7) var(--space-4);display:flex;align-items:center;flex-direction:column;gap:var(--space-4);color:var(--kf-navy-soft)}
.empty-state h1,.empty-state h2,.empty-state h3{color:var(--kf-navy)}
.empty-state>p{max-width:60ch}
.loading-line{display:flex;align-items:center;gap:var(--space-3);justify-content:center;padding:var(--space-6);font-weight:700}
.loading-line:before{content:'';width:20px;height:20px;border:3px solid var(--kf-line);border-top-color:var(--kf-green);border-radius:50%;animation:kf-spin .8s linear infinite}
@keyframes kf-spin{to{transform:rotate(360deg)}}

/* ───────── En-tête ───────── */
.preparation-bar{background:var(--kf-navy);color:var(--kf-cream);display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:8px var(--gutter);font-size:var(--text-sm);font-weight:600;text-align:center;flex-wrap:wrap}
.preparation-bar svg{color:var(--kf-green)}
.preparation-bar a{display:inline-flex;align-items:center;gap:4px;text-decoration:underline;text-underline-offset:3px;font-weight:800;min-height:32px}
.site-header{position:sticky;top:0;z-index:50;transition:box-shadow .2s;background:var(--kf-cream);border-bottom:3px solid var(--kf-navy)}
.header-inner{max-width:var(--wrap);margin:0 auto;padding:10px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:84px}
.brand{display:flex;align-items:center;min-width:0}
.brand-stack{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;width:fit-content}
.brand-logo{height:130px;width:auto;max-width:340px;object-fit:contain;object-position:center;background:var(--kf-cream);border-radius:14px}
.brand-tagline{font-size:1.5rem;font-weight:800;letter-spacing:.04em;color:var(--kf-green-deep);line-height:1.2;text-align:center}
.desktop-nav a{padding:10px 18px;border-radius:var(--radius-pill);font-weight:800;min-height:44px;display:inline-flex;align-items:center}
.desktop-nav a:hover{background:var(--kf-green-tint)}
.desktop-nav a.active,.mobile-nav a.active{background:var(--kf-navy);color:#fff}
.header-actions{display:flex;gap:var(--space-2);align-items:center}
.cart-link{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:800;border:2px solid var(--kf-navy);padding:8px 18px;border-radius:var(--radius-pill);min-height:48px;background:var(--kf-white)}
.cart-link:hover{background:var(--kf-green-tint)}
.cart-link b{background:var(--kf-green);color:var(--kf-navy);border-radius:var(--radius-pill);min-width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:.8125rem;padding:0 6px}
.mobile-toggle{display:none;min-height:48px;min-width:48px;align-items:center;justify-content:center;border-radius:var(--radius-pill);border:2px solid var(--kf-navy)}
.mobile-nav{padding:var(--space-3) var(--gutter) var(--space-5);background:var(--kf-cream);border-bottom:3px solid var(--kf-navy);display:grid;gap:var(--space-2);position:sticky;top:var(--header-h,84px);z-index:49;max-height:calc(100vh - var(--header-h,84px));overflow-y:auto}
.mobile-nav a{padding:14px 18px;border-radius:var(--radius);font-weight:800;font-size:var(--text-lg);min-height:52px;display:flex;align-items:center;background:var(--kf-white);border:2px solid var(--kf-line)}

/* ───────── Mise en page ───────── */
.page-rail{max-width:var(--wrap);padding:var(--space-7) var(--gutter) var(--space-8);margin:0 auto}
.page-title{margin-bottom:var(--space-6)}
.page-title h1{margin:var(--space-3) 0}
.page-title>p{color:var(--kf-navy-soft);font-size:var(--text-lg);max-width:62ch}
.page-title>.btn{margin-top:var(--space-5)}
.section-heading{display:flex;justify-content:space-between;gap:var(--space-5);align-items:flex-end;margin-bottom:var(--space-6)}
.section-heading h2{margin-top:var(--space-2)}
.section-heading>p{color:var(--kf-navy-soft);max-width:36ch}

/* ───────── Accueil ───────── */
.home-hero{background:var(--kf-navy);color:var(--kf-cream);position:relative;overflow:hidden}
.hero-grid{max-width:var(--wrap);margin:0 auto;padding:var(--space-7) var(--gutter);display:grid;grid-template-columns:1.05fr .95fr;gap:var(--space-6);align-items:center}
.hero-intro .eyebrow{color:var(--kf-green)}
.hero-intro h1{margin:var(--space-3) 0 var(--space-4);color:#fff}
.hero-intro h1 em{color:var(--kf-green)}
.hero-intro p{font-size:var(--text-lg);color:#e8e6dc;max-width:46ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}
.home-hero .btn-primary{background:var(--kf-green);border-color:var(--kf-green);color:var(--kf-navy)}
.home-hero .btn-primary:hover{background:#4cc97b}
.home-hero .btn-outline{color:var(--kf-cream);border-color:var(--kf-cream)}
.home-hero .btn-outline:hover{background:var(--kf-cream);color:var(--kf-navy)}
.hero-intro>small{display:block;margin-top:var(--space-4);font-size:var(--text-sm);color:#d3d6e6}
.hero-photo{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3;border:4px solid var(--kf-cream)}
.hero-photo>img{width:100%;height:100%;object-position:center}
.photo-note{position:absolute;bottom:14px;left:14px;right:14px;display:flex;align-items:center;gap:var(--space-3);padding:12px 16px;background:var(--kf-cream);color:var(--kf-navy);border-radius:var(--radius);font-weight:700;font-size:var(--text-sm);line-height:1.4}
.photo-note svg{color:var(--kf-green-deep)}
.our-table{max-width:var(--wrap);margin:auto;padding:var(--space-8) var(--gutter) var(--space-7)}
.offer-spread{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.menu-offer{background:var(--kf-green-tint);border:3px solid var(--kf-navy);padding:var(--space-6);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--shadow)}
.offer-top{display:flex;justify-content:space-between;align-items:center;color:var(--kf-green-deep);font-weight:800}
.offer-top>span{font-size:.8125rem;letter-spacing:.08em}
.menu-offer h3,.catering-overlay h3{font-size:clamp(1.5rem,3.5vw,1.9rem)}
.menu-offer>p{color:var(--kf-navy-soft)}
.menu-preview{padding:var(--space-4);background:var(--kf-white);border:2px dashed var(--kf-green-deep);border-radius:var(--radius);display:flex;flex-direction:column;gap:4px}
.menu-preview>span{font-weight:800;font-size:var(--text-lg)}
.menu-preview small{font-size:var(--text-sm);color:var(--kf-navy-soft)}
.menu-preview i{font-style:normal;font-weight:800;color:var(--kf-green-deep);margin-top:var(--space-2)}
.menu-offer>.text-link{margin-top:auto}
.catering-offer{position:relative;min-height:380px;overflow:hidden;border-radius:var(--radius-lg);border:3px solid var(--kf-navy);box-shadow:var(--shadow);background:var(--kf-navy)}
.catering-offer>img{width:100%;height:100%;position:absolute;inset:0}
.catering-offer:after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(16,31,74,.94) 15%,rgba(16,31,74,.35))}
.catering-overlay{position:relative;color:#fff;z-index:1;padding:var(--space-6);height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:var(--space-3)}
.catering-overlay>.eyebrow{margin-bottom:auto;color:var(--kf-green)}
.catering-overlay p{color:#ececf3}
.catering-overlay>.text-link{color:#fff;text-decoration-color:var(--kf-green)}
.commitment{background:var(--kf-cream-deep);border-block:3px solid var(--kf-navy)}
.commitment-inner{max-width:var(--wrap);margin:auto;padding:var(--space-8) var(--gutter);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-7)}
.commitment h2{margin:var(--space-3) 0 var(--space-4)}
.commitment-intro>p{color:var(--kf-navy-soft);margin-bottom:var(--space-4);max-width:46ch}
.values{display:grid;gap:var(--space-3)}
.values article{display:flex;gap:var(--space-4);padding:var(--space-4);background:var(--kf-white);border:2px solid var(--kf-line);border-radius:var(--radius)}
.values svg{width:32px;height:32px;color:var(--kf-green-deep)}
.values h3{font-size:1.1rem}
.values p{margin-top:4px;color:var(--kf-navy-soft);font-size:var(--text-sm)}

/* ───────── Catalogue ───────── */
.pickup-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:var(--space-4);align-items:end;padding:var(--space-5);background:var(--kf-white);border:2px solid var(--kf-navy);border-radius:var(--radius-lg)}
.pickup-description{display:flex;gap:var(--space-3);align-items:center;font-weight:700;font-size:var(--text-sm)}
.pickup-description small{font-size:.8125rem;color:var(--kf-navy-soft);font-weight:600}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);margin-top:var(--space-5)}
.product-card{border:2px solid var(--kf-navy);border-radius:var(--radius-lg);background:var(--kf-white);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow);transition:transform .2s}
.product-card:hover{transform:translateY(-3px)}
.product-art{height:190px;background:var(--kf-navy-tint);display:flex;align-items:center;justify-content:center;position:relative;color:var(--kf-navy);overflow:hidden;background-image:radial-gradient(circle at 20% 25%,rgba(52,182,100,.28) 0 38px,transparent 39px),radial-gradient(circle at 85% 80%,rgba(23,43,100,.14) 0 56px,transparent 57px)}
.product-art>small{position:absolute;bottom:12px;font-size:.8125rem;font-weight:700;color:var(--kf-navy-soft)}
.product-art img{width:100%;height:100%}
.art-1{background-color:var(--kf-green-tint)}
.art-2{background-color:var(--kf-cream-deep)}
.product-content{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);flex:1}
.price-title{display:flex;justify-content:space-between;gap:var(--space-3);align-items:flex-start}
.price-title h2{font-size:1.25rem;line-height:1.2}
.price-title h2 a:hover{text-decoration:underline;text-underline-offset:4px}
.price-title b{white-space:nowrap;font-size:1.35rem;font-weight:900;color:var(--kf-green-deep)}
.product-content>p{color:var(--kf-navy-soft);overflow-wrap:anywhere}
.validation-label{font-size:.8125rem;font-weight:800;color:#7a4b00;background:#fff3d6;display:inline-block;align-self:flex-start;padding:3px 10px;border-radius:var(--radius-pill)}
.stock{font-size:var(--text-sm);font-weight:700}
.stock-out{color:var(--kf-error)}
.product-bottom{display:flex;flex-direction:column;gap:var(--space-3);margin-top:auto;border-top:2px solid var(--kf-line);padding-top:var(--space-4)}
.add-btn{display:flex;gap:var(--space-2);align-items:center;justify-content:center;min-height:52px;padding:10px 18px;border-radius:var(--radius-pill);background:var(--kf-navy);color:#fff;font-weight:800;width:100%;transition:background-color .2s}
.add-btn:hover:not(:disabled){background:var(--kf-navy-deep)}
.add-btn:disabled{background:#c9ccd9;color:#4a5072}
.details-link{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:800;color:var(--kf-green-deep);min-height:44px;text-decoration:underline;text-underline-offset:4px}
.menu-guidance{display:flex;gap:var(--space-3);color:var(--kf-navy-soft);margin-top:var(--space-6);max-width:70ch;font-size:var(--text-sm)}
.product-detail>.text-link{margin-bottom:var(--space-5)}
.detail-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--space-7)}
.detail-art{background:var(--kf-green-tint);border:3px solid var(--kf-navy);border-radius:var(--radius-lg);min-height:420px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;gap:var(--space-4);color:var(--kf-navy);text-align:center;overflow:hidden;padding:var(--space-5);background-image:radial-gradient(circle at 18% 22%,rgba(52,182,100,.3) 0 70px,transparent 71px),radial-gradient(circle at 88% 85%,rgba(23,43,100,.14) 0 110px,transparent 111px)}
.detail-art>img{height:100%;width:100%;position:absolute;inset:0}
.detail-layout h1{font-size:clamp(1.9rem,4.5vw,2.6rem);margin:var(--space-3) 0}
.detail-layout h2{font-size:1.2rem;margin:var(--space-5) 0 var(--space-2)}
.detail-layout p{color:var(--kf-navy-soft)}
.detail-layout .detail-price{font-size:1.9rem;font-weight:900;color:var(--kf-green-deep)}
.detail-price>small{font-size:var(--text-sm);font-weight:700;color:var(--kf-navy-soft)}
.detail-layout .btn{margin-top:var(--space-4)}

/* ───────── Panier ───────── */
.cart-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--space-6);align-items:start}
.cart-service{padding:var(--space-5);background:var(--kf-white);border:2px solid var(--kf-navy);border-radius:var(--radius-lg);margin-bottom:var(--space-4)}
.cart-service h2{font-size:1.4rem;text-transform:capitalize}
.cart-service>p{margin:var(--space-2) 0 var(--space-4);color:var(--kf-navy-soft)}
.cart-service select{max-width:340px}
.cart-line{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);margin-bottom:var(--space-3);background:var(--kf-white);border:2px solid var(--kf-line);border-radius:var(--radius)}
.cart-line>div:first-child{flex:1;min-width:0}
.cart-line h3{font-size:1.1rem}
.cart-line p{font-size:var(--text-sm);margin-top:4px;color:var(--kf-navy-soft)}
.cart-line>b{font-size:1.15rem;white-space:nowrap}
.quantity-controls{display:flex;align-items:center;border:2px solid var(--kf-navy);border-radius:var(--radius-pill);background:var(--kf-cream)}
.quantity-controls button{min-width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.quantity-controls button:hover:not(:disabled){background:var(--kf-green-tint)}
.quantity-controls button:disabled{opacity:.35}
.quantity-controls>span{font-weight:800;min-width:30px;text-align:center}
.icon-btn{padding:10px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;color:var(--kf-navy-soft);border-radius:50%}
.icon-btn:hover{background:var(--kf-error-tint);color:var(--kf-error)}
.cart-summary{background:var(--kf-green-tint);border:3px solid var(--kf-navy);padding:var(--space-5);border-radius:var(--radius-lg);position:sticky;top:calc(var(--header-h,84px) + 20px);box-shadow:var(--shadow)}
.cart-summary h2{font-size:1.5rem}
.cart-summary p{font-size:var(--text-sm);margin:var(--space-3) 0}
.summary-row{display:flex;justify-content:space-between;gap:var(--space-3);align-items:center;padding:var(--space-3) 0;border-bottom:2px solid rgba(23,43,100,.15)}
.summary-row strong{font-size:1.7rem;font-weight:900}
.cart-summary>.btn{margin:var(--space-3) 0}
.cart-summary small{font-size:var(--text-sm);display:block;color:var(--kf-navy-soft)}

/* ───────── Buffets ───────── */
.buffets-intro .page-title{text-align:center}
.buffets-intro .page-title>p{margin-inline:auto}
.buffet-photo{margin:var(--space-6) 0 var(--space-8)}
.buffet-photo>img{width:100%;height:340px;border-radius:var(--radius-lg);border:3px solid var(--kf-navy);object-position:center 53%}
.buffet-photo>figcaption{font-size:var(--text-sm);color:var(--kf-navy-soft);margin-top:var(--space-2)}
.formula-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}
.formula{padding:var(--space-5);border:2px solid var(--kf-navy);border-radius:var(--radius-lg);background:var(--kf-white);display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--shadow)}
.formula-0{background:var(--kf-green-tint)}.formula-1{background:var(--kf-navy-tint)}.formula-2{background:var(--kf-cream-deep)}
.formula h3{font-size:1.4rem}
.formula-pieces{font-size:2.4rem;font-weight:900;color:var(--kf-green-deep);line-height:1}
.formula-pieces>small{font-size:var(--text-sm);font-weight:700;color:var(--kf-navy-soft)}
.formula>p{color:var(--kf-navy-soft);font-size:var(--text-sm)}
.formula-price{border-top:2px solid rgba(23,43,100,.15);padding-top:var(--space-3);display:flex;flex-direction:column;margin-top:auto}
.formula-price b{font-size:1.5rem;font-weight:900}
.formula-price span{font-size:var(--text-sm);color:var(--kf-navy-soft)}
.configurator{background:var(--kf-cream-deep);border-block:3px solid var(--kf-navy)}
.config-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--space-6);align-items:start}
.catering-form>.notice{margin-top:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.span-2{grid-column:1/-1}
.check-label{flex-direction:row;gap:var(--space-3);align-items:flex-start;font-weight:600;margin:var(--space-4) 0}
.check-label>input{width:24px;min-height:24px;height:24px;margin-top:2px;accent-color:var(--kf-navy);flex-shrink:0;padding:0}
.form-actions{display:flex;gap:var(--space-3);align-items:center;margin-top:var(--space-4);flex-wrap:wrap}
.estimate{background:var(--kf-white);border:3px solid var(--kf-navy);padding:var(--space-5);border-radius:var(--radius-lg);position:sticky;top:calc(var(--header-h,84px) + 20px);box-shadow:var(--shadow)}
.estimate>svg{color:var(--kf-green-deep)}
.estimate>h3{font-size:1.5rem;margin:var(--space-2) 0 var(--space-3)}
.estimate>p{margin:var(--space-3) 0;font-size:var(--text-sm)}
.estimate small{font-size:var(--text-sm);display:block;margin-top:var(--space-3);color:var(--kf-navy-soft)}
.estimate-disclaimer{display:flex;gap:var(--space-3);background:var(--kf-green-tint);padding:var(--space-3);border-radius:var(--radius-sm);margin:var(--space-4) 0;color:var(--kf-navy)}
.estimate-disclaimer svg{color:var(--kf-green-deep)}
.estimate .summary-row strong{font-size:1.5rem}
.buffet-steps h2{margin:var(--space-3) 0 var(--space-6)}
.buffet-steps ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}
.buffet-steps li{background:var(--kf-white);border:2px solid var(--kf-line);border-radius:var(--radius);padding:var(--space-4)}
.buffet-steps li>span{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--kf-green);color:var(--kf-navy);font-weight:900;font-size:var(--text-sm)}
.buffet-steps h3{margin:var(--space-3) 0 var(--space-2);font-size:1.1rem}
.buffet-steps li p{font-size:var(--text-sm);color:var(--kf-navy-soft)}

/* ───────── Informations ───────── */
.information-page{max-width:960px}
.document-nav{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-4) 0}
.document-nav a{padding:8px 16px;min-height:44px;display:inline-flex;align-items:center;border-radius:var(--radius-pill);border:2px solid var(--kf-navy);font-weight:800;font-size:var(--text-sm)}
.document-nav a:hover{background:var(--kf-navy);color:#fff}
.document-section{padding:var(--space-5);margin-top:var(--space-4);background:var(--kf-white);border:2px solid var(--kf-line);border-radius:var(--radius-lg)}
.document-section h2{font-size:1.6rem;margin:var(--space-2) 0 var(--space-3)}
.document-section p{max-width:75ch;color:var(--kf-navy-soft)}
.document-section a:not(.text-link){text-decoration:underline;text-underline-offset:4px;font-weight:700}
.document-copy{white-space:pre-wrap}

/* ───────── Connexion équipe ───────── */
.login-page{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-7);align-items:center}
.login-intro h1{margin:var(--space-3) 0 var(--space-4)}
.login-intro>p{color:var(--kf-navy-soft);font-size:var(--text-lg);max-width:40ch}
.login-form{background:var(--kf-white);border:3px solid var(--kf-navy);padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:var(--space-4)}
.login-form>svg{color:var(--kf-green-deep)}
.login-form h2{font-size:1.6rem}
.login-form>.btn{width:100%}
.pw-forgot summary{cursor:pointer;color:var(--kf-navy);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.pw-forgot[open] summary{margin-bottom:var(--space-2)}
.pw-forgot .service-note{margin:0 0 var(--space-2)}
.backup-actions{margin:var(--space-4) 0}
.backup-list{margin:var(--space-3) 0 0;padding-left:1.2em;display:grid;gap:var(--space-2)}
.first-access{border-top:2px solid var(--kf-line);padding-top:var(--space-4)}
.first-access p{font-size:var(--text-sm);color:var(--kf-navy-soft);margin-top:var(--space-2)}

/* ───────── Espace équipe ───────── */
.team-layout{display:grid;grid-template-columns:260px 1fr;max-width:1500px;margin:auto;min-height:650px}
.team-sidebar{border-right:3px solid var(--kf-navy);padding:var(--space-6) var(--space-4);background:var(--kf-cream-deep)}
.team-sidebar h1{font-size:1.9rem;margin:var(--space-3) 0}
.status-pill{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 14px;border-radius:var(--radius-pill);background:var(--kf-green-tint);border:1.5px solid var(--kf-green-deep);font-size:var(--text-sm);font-weight:800;color:var(--kf-green-deep)}
.team-sidebar>nav{display:flex;flex-direction:column;margin:var(--space-5) 0;gap:var(--space-1)}
.team-sidebar>nav>button{text-align:left;padding:10px 14px;font-weight:700;min-height:46px;border-radius:var(--radius-sm)}
.team-sidebar>nav>button:hover{background:var(--kf-green-tint)}
.team-sidebar>nav>button.active{background:var(--kf-navy);color:#fff}
.team-content{padding:var(--space-5) var(--space-6) var(--space-7);min-width:0}
.team-topline{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm);margin-bottom:var(--space-5);color:var(--kf-navy-soft);flex-wrap:wrap}
.team-topline>span{display:flex;align-items:center;gap:var(--space-2)}
.team-topline>a,.team-topline>button{text-decoration:underline;text-underline-offset:3px;font-weight:700}
.admin-panel{border:2px solid var(--kf-line);border-radius:var(--radius-lg);padding:var(--space-5);background:var(--kf-white);min-width:0}
.admin-panel h2{font-size:1.6rem;margin-bottom:var(--space-3)}
.admin-panel>p,.panel-heading p{font-size:var(--text-sm);color:var(--kf-navy-soft);margin:var(--space-2) 0;max-width:80ch}
.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}
.panel-heading>.btn{flex-shrink:0}
.opening-progress{height:10px;background:var(--kf-navy-tint);border-radius:var(--radius-pill);margin:var(--space-5) 0;overflow:hidden}
.opening-progress span{display:block;background:var(--kf-green);height:100%;border-radius:var(--radius-pill)}
.opening-checks>article{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:2px solid var(--kf-line)}
.opening-checks>article>svg{color:var(--kf-green-deep)}
.opening-checks>article>div{flex:1}
.opening-checks h3{font-size:1.05rem}
.opening-checks p{font-size:var(--text-sm);margin-top:4px;color:var(--kf-navy-soft)}
.opening-checks .check-label{margin:0}
.payment-config{margin:var(--space-5) 0;background:var(--kf-green-tint);padding:var(--space-5);border-radius:var(--radius)}
.payment-config>svg{color:var(--kf-green-deep)}
.payment-config h3{margin:var(--space-3) 0}
.payment-config ol{padding-left:20px;line-height:1.8}
.payment-config li{margin-top:var(--space-3)}
.search-field{display:flex;flex-direction:row;gap:var(--space-2);align-items:center;background:var(--kf-white);border:2px solid #b9bfd6;border-radius:var(--radius-pill);padding-left:var(--space-4);margin:var(--space-4) 0}
.search-field>input{border:0;background:none;box-shadow:none}
.admin-records>article{border-top:2px solid var(--kf-line);padding:var(--space-4) 0;display:flex;gap:var(--space-4);align-items:center;justify-content:space-between}
.admin-records h3{font-size:1.05rem}
.admin-records p{font-size:var(--text-sm);max-width:600px;margin-top:4px}
.admin-records small{font-size:.8125rem;color:var(--kf-navy-soft);overflow-wrap:anywhere}
.record-actions{display:flex;gap:var(--space-2);align-items:center}
.record-editor{padding:var(--space-5);background:var(--kf-cream);border:2px solid var(--kf-line);border-radius:var(--radius)}
.record-editor>h3{margin-bottom:var(--space-4)}
.permissions article{border-bottom:2px solid var(--kf-line);padding:var(--space-4) 0}
.permissions p{margin-top:var(--space-2);font-size:var(--text-sm)}
.audit-row{border-top:2px solid var(--kf-line);padding:var(--space-4) 0}
.audit-row h3{font-size:1.05rem}
.audit-row p{font-size:var(--text-sm);overflow-wrap:anywhere}
.audit-row small{font-size:.8125rem;color:var(--kf-navy-soft)}
.team-content form{margin-top:var(--space-5)}

/* ───────── Pied de page ───────── */
.site-footer{background:var(--kf-navy);color:var(--kf-cream);margin-top:0}
.footer-top{max-width:var(--wrap);margin:auto;padding:var(--space-7) var(--gutter) var(--space-5);display:grid;grid-template-columns:1.2fr 1.2fr .9fr;gap:var(--space-6)}
.footer-brand .brand-stack{margin-bottom:var(--space-3);gap:8px}
.footer-brand .brand-logo{height:72px;max-width:260px;background:var(--kf-cream);border-radius:14px;padding:6px 16px}
.site-footer .brand-tagline{color:var(--kf-green);font-size:1.25rem}
.site-footer .footer-brand>h2{font-size:1.7rem;color:#fff}
.footer-top p{color:#e1e3ef;margin:var(--space-3) 0}
.footer-top h3{font-size:1rem;color:var(--kf-green);letter-spacing:.06em;text-transform:uppercase;margin-bottom:var(--space-3)}
.footer-top a{display:flex;align-items:center;gap:var(--space-2);min-height:44px;font-weight:600;overflow-wrap:anywhere}
.footer-top a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-top>div>p{display:flex;gap:var(--space-2);align-items:flex-start}
.footer-top small{font-size:var(--text-sm);color:#cfd3e6;display:block;margin-top:var(--space-3)}
.footer-brand>a{color:var(--kf-green);text-decoration:underline;text-underline-offset:4px;font-weight:800}
.footer-top :focus-visible,.preparation-bar :focus-visible{outline-color:#fff;box-shadow:none}
.footer-bottom{border-top:1px solid rgba(255,255,255,.2);max-width:var(--wrap);margin:auto;padding:var(--space-4) var(--gutter) var(--space-5);font-size:var(--text-sm);color:#cfd3e6;display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}
.footer-bottom>div{display:flex;gap:var(--space-4);flex-wrap:wrap}
.footer-bottom a{text-decoration:underline;text-underline-offset:3px;min-height:32px;display:inline-flex;align-items:center}
.footer-bottom :focus-visible{outline-color:#fff;box-shadow:none}

/* ───────── Responsive ───────── */
@media(max-width:1000px){
  .product-grid,.formula-grid{grid-template-columns:repeat(2,1fr)}
  .buffet-steps ol{grid-template-columns:repeat(2,1fr)}
  .hero-grid{grid-template-columns:1fr}
  .hero-photo{aspect-ratio:16/9}
  .commitment-inner{gap:var(--space-5)}
  .pickup-controls{grid-template-columns:1fr 1fr}
  .pickup-description{grid-column:1/-1}
  .team-layout{grid-template-columns:210px 1fr}
  .team-content{padding:var(--space-5)}
  .footer-top{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/-1}
}
@media(max-width:767px){
  .desktop-nav{display:none}
  .mobile-toggle{display:flex}
  .header-inner{min-height:68px}
  
  .brand-logo{height:84px;max-width:200px}
  .footer-brand .brand-logo{height:50px;max-width:170px}
  .brand-tagline{font-size:1.125rem}
  .site-footer .brand-tagline{font-size:1.0625rem}
  .cart-link>span{display:none}
  .cart-link{padding:8px 14px}
  .page-rail{padding:var(--space-6) var(--gutter) var(--space-7)}
  .section-heading{display:block}
  .section-heading>p{margin-top:var(--space-3)}
  .hero-actions .btn{width:100%}
  .offer-spread,.commitment-inner,.detail-layout,.cart-layout,.config-layout,.login-page,.footer-top{grid-template-columns:1fr}
  .product-grid,.formula-grid{grid-template-columns:1fr}
  .pickup-controls{grid-template-columns:1fr;padding:var(--space-4)}
  .menu-offer,.catering-overlay{padding:var(--space-5)}
  .catering-offer{min-height:340px}
  .detail-art{min-height:280px}
  .cart-line{flex-wrap:wrap;gap:var(--space-3)}
  .cart-line>div:first-child{flex-basis:100%}
  .cart-line>b{margin-left:auto}
  .cart-summary,.estimate{position:static}
  .form-grid{grid-template-columns:1fr}
  .span-2{grid-column:auto}
  .form-actions{flex-direction:column;align-items:stretch}
  .form-actions>.btn{width:100%}
  .buffet-photo>img{height:240px}
  .buffet-steps ol{grid-template-columns:1fr}
  .login-form{padding:var(--space-5)}
  .team-layout{display:block}
  .team-sidebar{border-right:0;border-bottom:3px solid var(--kf-navy);padding:var(--space-4)}
  .team-sidebar>h1{display:none}
  .team-sidebar>nav{flex-direction:row;flex-wrap:wrap;margin:var(--space-3) 0}
  .team-content{padding:var(--space-5) var(--gutter)}
  .panel-heading{display:block}
  .panel-heading>.btn,.panel-heading>.status-pill{margin-top:var(--space-3)}
  .opening-checks>article{flex-wrap:wrap}
  .admin-records>article{align-items:flex-start;flex-direction:column}
  .record-actions{width:100%;justify-content:flex-end}
  .empty-state{padding:var(--space-6) var(--space-3)}
  .footer-bottom{display:block}
  .footer-bottom>div{margin-top:var(--space-3)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* ───────── Textes justifiés (hors zones centrées et outils équipe) ───────── */
main p,.site-footer p{text-align:justify;text-justify:inter-word;hyphens:auto;-webkit-hyphens:auto}
.empty-state p,.buffets-intro .page-title>p,.feedback,.error,.loading-line,.caption,.cu-note,.cu-test,.cuisine-body p,.bo-main p,.login-form p{text-align:left;hyphens:manual}
.empty-state p,.buffets-intro .page-title>p{text-align:center}

@media print{.site-header,.preparation-bar,.site-footer,.team-sidebar,.team-topline,button,.mobile-nav{display:none!important}.team-layout{display:block}.team-content,.admin-panel{padding:0;border:0}body{background:#fff;color:#000}}

/* ───────── Ajouts version PHP ───────── */
.noscript-note{background:#fff3d6;border:2px solid #f0d9a0;border-radius:var(--radius);padding:var(--space-4);margin:var(--space-4) 0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ───────── Commande (panier) ───────── */
.order-form{display:grid;gap:var(--space-3);margin:var(--space-4) 0;padding-top:var(--space-3);border-top:2px solid rgba(23,43,100,.15)}
.order-form h3{font-size:1.1rem}

/* ───────── Cuisine : suivi en direct (grand format, lisible à distance) ───────── */
.cuisine-body{background:var(--kf-cream)}
.cuisine{max-width:1500px;margin:0 auto;padding:var(--space-4) var(--gutter) var(--space-8);font-size:1.0625rem}
.cu-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-3)}
.cu-head h1{font-size:clamp(1.8rem,4vw,2.6rem)}
.cu-tools{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}
.cu-tools .btn{min-height:46px;padding:8px 18px}
.cu-live{font-weight:800;font-size:var(--text-sm);padding:6px 12px;border-radius:var(--radius-pill)}
.cu-live.on{background:var(--kf-green-tint);color:var(--kf-green-deep)}
.cu-live.off{background:var(--kf-error-tint);color:var(--kf-error)}
.cu-days{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-2) 0 var(--space-3)}
.cu-days button{flex-shrink:0;min-height:48px;padding:8px 18px;border-radius:var(--radius-pill);border:2px solid var(--kf-navy);font-weight:800;display:inline-flex;align-items:center;gap:var(--space-2);background:var(--kf-white)}
.cu-days button.active{background:var(--kf-navy);color:#fff}
.cu-days b{background:var(--kf-green);color:var(--kf-navy);border-radius:var(--radius-pill);min-width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:.8125rem;padding:0 6px}
.cu-alert{background:#fff3d6;border:3px solid #e0a800;border-radius:var(--radius);padding:var(--space-4);font-weight:800;font-size:1.2rem;margin:var(--space-3) 0;animation:cu-flash 1s ease-in-out 6}
@keyframes cu-flash{50%{background:#ffe08a}}
.cu-test{background:var(--kf-navy-tint);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:700;margin:var(--space-3) 0}
.cu-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin:var(--space-3) 0 var(--space-5)}
.cu-kpi{background:var(--kf-white);border:2px solid var(--kf-navy);border-radius:var(--radius);padding:var(--space-4);display:flex;flex-direction:column}
.cu-kpi strong{font-size:2.4rem;font-weight:900;line-height:1}
.cu-kpi span{font-size:var(--text-sm);font-weight:700;color:var(--kf-navy-soft)}
.cu-anticipation{background:var(--kf-white);border:3px solid var(--kf-navy);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-5)}
.cu-anticipation h2{font-size:1.4rem;margin-bottom:var(--space-3)}
.cu-scroll{overflow-x:auto}
.cu-table{border-collapse:collapse;width:100%;min-width:480px}
.cu-table th,.cu-table td{padding:10px 14px;border-bottom:2px solid var(--kf-line);text-align:center;font-weight:700}
.cu-table thead th{background:var(--kf-navy-tint);font-size:var(--text-sm)}
.cu-table tbody th{text-align:left}
.cu-table td{font-size:1.3rem;color:var(--kf-navy-soft)}
.cu-table td.has{color:var(--kf-navy);font-weight:900;background:var(--kf-green-tint)}
.cu-table td.tot{font-weight:900;color:var(--kf-navy)}
.cu-table tr.low th{color:#8a3b00}
.cu-table td.low-cell{background:#fff3d6;color:#8a3b00;font-weight:900}
.cu-stock{background:#fff3d6;border:3px solid #e0a800;border-left-width:10px;border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin:var(--space-3) 0;display:grid;gap:var(--space-1);color:var(--kf-navy)}
.cu-stock>strong{font-size:1.15rem}
.cu-stock p{margin:0;font-size:1.05rem}
.cu-slot-tk{font-size:.95rem;font-weight:800;color:var(--kf-navy);margin-left:var(--space-3);white-space:nowrap}
.cu-slot{margin-bottom:var(--space-5);padding:var(--space-4);border-radius:var(--radius-lg);border:2px solid var(--kf-line);background:var(--kf-cream-deep)}
.cu-slot.urgent{border:4px solid #d97706;background:#fff1d6}
.cu-slot h2{font-size:1.5rem;margin-bottom:var(--space-3)}
.cu-slot h2 small,.cu-count{font-size:1rem;font-weight:700;color:var(--kf-navy-soft)}
.cu-slot.urgent .cu-count{color:#8a4300;font-weight:900}
.cu-orders{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:var(--space-3)}
.cu-none{color:var(--kf-navy-soft);font-weight:600}
.cu-card{background:var(--kf-white);border:3px solid var(--kf-navy);border-radius:var(--radius);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}
.cu-card.st-nouvelle{border-color:#d97706;box-shadow:0 0 0 4px rgba(217,119,6,.2)}
.cu-card.st-en_preparation{border-color:var(--kf-navy)}
.cu-card.st-prete{border-color:var(--kf-green-deep);background:var(--kf-green-tint)}
.cu-card.st-retiree,.cu-card.st-annulee{opacity:.65;border-style:dashed}
.cu-card-top{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}
.cu-card-top .cu-pill{margin-left:auto}
.cu-pill{font-size:.8125rem;font-weight:800;padding:3px 12px;border-radius:var(--radius-pill);background:var(--kf-navy);color:#fff}
.st-nouvelle .cu-pill{background:#b45309}.st-prete .cu-pill{background:var(--kf-green-deep)}.st-annulee .cu-pill{background:var(--kf-error)}
.cu-test-tag{font-size:.75rem;font-weight:900;border:1.5px solid var(--kf-navy);border-radius:var(--radius-pill);padding:1px 8px}
.cu-card h3{font-size:1.3rem}
.cu-phone{font-weight:700;text-decoration:underline;text-underline-offset:3px;min-height:36px;display:inline-flex;align-items:center}
.cu-items{list-style:none;margin:0;padding:var(--space-2) 0;border-block:2px solid var(--kf-line);font-size:1.2rem;font-weight:700}
.cu-items strong{font-size:1.4rem}
.cu-note{background:#fff3d6;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}
.cu-total{font-size:var(--text-sm);color:var(--kf-navy-soft);font-weight:600}
.cu-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:auto}
.cu-actions .btn{min-height:52px;flex:1 1 auto;padding:10px 16px}
.cu-done{margin-top:var(--space-4)}
@media(max-width:767px){.cu-kpis{grid-template-columns:1fr 1fr}.cu-orders{grid-template-columns:1fr}}
@media print{.cu-tools,.cu-days,.cu-done,.cu-actions,.cu-alert,.cu-stock,.cu-slot-tk{display:none!important}.cu-slot,.cu-card,.cu-anticipation{break-inside:avoid;background:#fff;border:1px solid #000;box-shadow:none}.cuisine-body{background:#fff}}

/* ───────── Module Node : informations, allergènes, back-office ───────── */
.info-bar{background:var(--kf-green-tint);color:var(--kf-navy);text-align:center;padding:10px var(--gutter);font-weight:700;border-bottom:2px solid #bfe3c6}
.info-bar.warn{background:#fff3d6;border-bottom-color:#f0d9a0}
.allergens{margin:var(--space-2) 0}
.allergen-line{font-size:var(--text-sm);color:var(--kf-navy);margin:2px 0}
.allergen-line strong{color:var(--kf-navy)}
.chip{display:inline-block;font-size:.8125rem;font-weight:800;border-radius:var(--radius-pill);padding:2px 12px;margin:0 6px 2px 0}
.chip-live{background:var(--kf-green-tint);color:var(--kf-green-deep);border:1.5px solid var(--kf-green-deep)}
.chip-sched{background:#fff3d6;color:#7a4b00;border:1.5px solid #c98a00}
.chip-draft{background:var(--kf-navy-tint);color:var(--kf-navy);border:1.5px solid var(--kf-navy-soft)}
.chip-closed{background:var(--kf-error-tint);color:var(--kf-error);border:1.5px solid var(--kf-error)}
.cu-al{display:block;font-size:.8125rem;font-weight:700;color:#8a4300}
.cu-paid-tag{font-size:.75rem;font-weight:900;border-radius:var(--radius-pill);padding:1px 8px;background:var(--kf-green);color:var(--kf-navy)}
.bo-header{background:var(--kf-white);border-bottom:3px solid var(--kf-navy);position:sticky;top:0;z-index:40}
.bo-bar{max-width:1500px;margin:0 auto;padding:10px var(--gutter);display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}
.bo-bar strong{font-size:1.1rem}.bo-user{margin-left:auto;font-size:var(--text-sm);font-weight:700;color:var(--kf-navy-soft)}
.bo-bar .btn{min-height:44px;padding:6px 16px}
.bo-tabs{max-width:1500px;margin:0 auto;padding:0 var(--gutter) var(--space-2);display:flex;gap:var(--space-2);overflow-x:auto}
.bo-tabs a{flex-shrink:0;padding:8px 16px;border-radius:var(--radius-pill);font-weight:800;min-height:44px;display:inline-flex;align-items:center;border:2px solid transparent}
.bo-tabs a:hover{background:var(--kf-green-tint)}.bo-tabs a.active{background:var(--kf-navy);color:#fff}
.bo-main{max-width:980px;margin:0 auto;padding:var(--space-5) var(--gutter) var(--space-8)}.bo-main.wide{max-width:1500px;padding-inline:0}
.bo-h1{font-size:clamp(1.6rem,4vw,2.2rem);margin-bottom:var(--space-4)}.bo-h2{font-size:1.4rem;margin-bottom:var(--space-3)}
.bo-flash{background:var(--kf-green-tint);border:2px solid var(--kf-green-deep);border-radius:var(--radius);padding:var(--space-3) var(--space-4);font-weight:800;margin-bottom:var(--space-4)}
.bo-flash.bad{background:var(--kf-error-tint);border-color:var(--kf-error);color:var(--kf-error)}
.bo-card{background:var(--kf-white);border:2px solid var(--kf-navy);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4)}
.bo-card h3{margin-bottom:var(--space-2)}
.bo-form{display:grid;gap:var(--space-3)}
.bo-inline{display:flex;gap:var(--space-3);align-items:flex-end;flex-wrap:wrap}.bo-inline label{min-width:220px}
.bo-datebar{display:flex;gap:var(--space-3);align-items:flex-end;flex-wrap:wrap;margin-bottom:var(--space-4)}
label.inline{flex-direction:row;align-items:center;gap:var(--space-2)}label.inline input{width:auto}
.bo-item{border:2px solid var(--kf-line);border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);background:var(--kf-cream)}
.bo-item>summary{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;font-weight:700}.bo-item>summary>span:first-child{flex:1;min-width:200px}
.bo-item[open]{background:var(--kf-white);border-color:var(--kf-navy)}
.bo-list{list-style:none;padding:0;margin:0 0 var(--space-4);display:grid;gap:var(--space-2)}.bo-list li{display:flex;justify-content:space-between;gap:var(--space-3);align-items:center;flex-wrap:wrap;padding:var(--space-3);border:2px solid var(--kf-line);border-radius:var(--radius)}
.al-fieldset{border:2px solid var(--kf-line);border-radius:var(--radius);padding:var(--space-3) var(--space-4)}.al-fieldset legend{font-weight:800;padding:0 var(--space-2)}
.al-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-2)}
.al-opt{flex-direction:row;align-items:center;gap:var(--space-2);font-weight:600;min-height:44px}.al-opt input{width:22px;min-height:22px;height:22px;padding:0;accent-color:var(--kf-navy)}
.slot-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-bottom:var(--space-2)}
.bo-main code{background:var(--kf-navy-tint);padding:2px 6px;border-radius:6px;overflow-wrap:anywhere}
@media(max-width:767px){.slot-row{grid-template-columns:1fr}.bo-user{margin-left:0;width:100%}.bo-main.wide{padding-inline:0}}

.bo-warn{border:2px solid var(--kf-error);background:var(--kf-error-tint);border-radius:var(--radius);padding:var(--space-3) var(--space-4);display:grid;gap:var(--space-3);margin-top:var(--space-3)}
.btn-danger{background:var(--kf-error);border-color:var(--kf-error);color:#fff}.btn-danger:hover{background:#861f1f;border-color:#861f1f}

.bo-profiles{display:grid;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--kf-navy-tint);border-radius:var(--radius)}

.phone-line{padding:var(--space-2) 0;border-bottom:1px solid var(--kf-line)}
.cu-pay{display:inline-block;font-size:.8125rem;font-weight:800;border-radius:var(--radius-pill);padding:2px 10px}
.cu-pay.ok{background:var(--kf-green-tint);color:var(--kf-green-deep)}
.cu-pay.due{background:#fff3d6;color:#7a4b00;border:1.5px solid #c98a00}
.cu-phone-tag{font-size:.75rem;font-weight:900;border-radius:var(--radius-pill);padding:1px 8px;background:var(--kf-navy-tint);border:1.5px solid var(--kf-navy)}
.cu-paybox{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.cu-paybox select{width:auto;min-height:44px}

.cash-summary .summary-row{display:grid;grid-template-columns:1fr auto 110px;gap:var(--space-3)}.cash-summary .summary-row small{text-align:right;color:var(--kf-navy-soft)}.cash-summary .muted{opacity:.55}
.cash-total{border-top:3px solid var(--kf-navy);margin-top:var(--space-2)}.cash-total strong{font-size:1.6rem}
.cash-table td,.cash-table th{font-size:var(--text-base)!important;text-align:left}
@media print{.bo-header,.bo-datebar{display:none!important}.bo-card{border:1px solid #000;break-inside:avoid}}

/* ───────── Espace équipe : barre latérale gauche avec icônes ───────── */
.bo-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.bo-side{background:var(--kf-navy);color:#fff;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4) var(--space-3);overflow-y:auto}
.bo-brand{display:flex;flex-direction:column;align-items:center;gap:6px;padding-bottom:var(--space-3);border-bottom:1px solid rgba(255,255,255,.18)}
.bo-brand img{height:48px;width:auto;background:var(--kf-cream);border-radius:12px;padding:4px 12px}
.bo-brand span{font-size:.8125rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--kf-green)}
.bo-nav{display:flex;flex-direction:column;gap:4px}
.bo-nav a,.bo-navlink{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;font-weight:700;color:#e3e6f2;min-height:46px;width:100%;text-align:left;font-size:var(--text-sm)}
.bo-nav a:hover,.bo-navlink:hover{background:rgba(255,255,255,.1);color:#fff}
.bo-nav a.active{background:var(--kf-green);color:var(--kf-navy)}
.bo-ico{flex-shrink:0}
.bo-side-foot{margin-top:auto;display:grid;gap:4px;padding-top:var(--space-3);border-top:1px solid rgba(255,255,255,.18)}
.bo-who{display:flex;flex-direction:column;padding:0 12px var(--space-2);line-height:1.3}.bo-who small{color:var(--kf-green);font-weight:700}
.bo-side :focus-visible{outline-color:#fff;box-shadow:none}
.bo-shell .bo-main{max-width:1100px;margin:0;padding:var(--space-5) var(--space-6) var(--space-8);width:100%}
.bo-shell .bo-main.wide{max-width:none;padding:0}
@media(max-width:900px){
  .bo-shell{display:block}
  .bo-side{position:sticky;top:0;z-index:40;height:auto;flex-direction:row;align-items:center;gap:var(--space-2);padding:6px 8px;overflow-x:auto;overflow-y:hidden}
  .bo-brand{flex-direction:row;border:0;padding:0 6px 0 0;flex-shrink:0}.bo-brand span{display:none}.bo-brand img{height:34px;padding:2px 8px}
  .bo-nav{flex-direction:row;gap:2px}
  .bo-nav a,.bo-navlink{flex-direction:column;gap:2px;min-width:74px;padding:6px 6px;font-size:.6875rem;text-align:center;line-height:1.15;min-height:54px;justify-content:center}
  .bo-side-foot{margin:0 0 0 auto;flex-direction:row;display:flex;border:0;padding:0;gap:2px}.bo-who{display:none}
  .bo-shell .bo-main{padding:var(--space-4) var(--gutter) var(--space-7)}
}
@media print{.bo-side{display:none!important}.bo-shell{display:block}}

.acct-list{display:grid;gap:var(--space-2);margin-bottom:var(--space-5)}.acct.off>summary{opacity:.7}
.acct-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-4);padding-top:var(--space-3);border-top:2px solid var(--kf-line)}

/* Deux formulaires qui se suivent (ex. « Enregistrer » puis « Supprimer » / « Tester ») : espace et séparation, jamais collés. */
.bo-form + form,.bo-form + .bo-inline{margin-top:var(--space-5);padding-top:var(--space-4);border-top:2px solid var(--kf-line)}
.bo-inline + .bo-inline{margin-top:var(--space-3)}

/* Connexion : afficher / masquer le mot de passe */
.pw-field{display:flex;flex-direction:column;gap:var(--space-2)}.pw-field>label{font-weight:700}
.pw-wrap{position:relative;display:block;width:100%}.pw-wrap input{padding-right:56px}
.pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;color:var(--kf-navy)}
.pw-toggle:hover{background:var(--kf-green-tint)}
.pw-toggle .ico-hide{display:none}.pw-toggle[aria-pressed="true"] .ico-show{display:none}.pw-toggle[aria-pressed="true"] .ico-hide{display:block}

/* Bibliothèque d’images */
.img-lib{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}
.img-card{margin:0;border:2px solid var(--kf-line);border-radius:var(--radius);overflow:hidden;background:var(--kf-white);display:flex;flex-direction:column}
.img-card img{width:100%;aspect-ratio:4/3;object-fit:cover}.img-card figcaption{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:700;flex:1}
.img-card form{padding:0 var(--space-3) var(--space-3)}.img-card .btn{width:100%;min-height:44px}
.img-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--space-2)}
.img-opt{position:relative;display:flex;flex-direction:column;gap:4px;border:2px solid var(--kf-line);border-radius:var(--radius-sm);padding:6px;cursor:pointer;font-size:.8125rem;font-weight:600}
.img-opt input{position:absolute;opacity:0;width:1px;height:1px}.img-opt img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px}
.img-opt:has(input:checked){border-color:var(--kf-navy);box-shadow:0 0 0 3px var(--kf-green)}.img-opt:has(input:focus-visible){outline:3px solid var(--kf-focus);outline-offset:2px}
.img-none{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;background:var(--kf-navy-tint);border-radius:6px;text-align:center}

/* Pied de page : jours de retrait les uns sous les autres, accolade, horaire */
.pickup-box{margin-top:var(--space-4);color:#fff}
.pickup-title{display:block;font-weight:800;margin-bottom:var(--space-2)}
.pickup-grid{display:flex;align-items:stretch;gap:var(--space-3)}
.pickup-days{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-weight:700}
.pickup-brace{position:relative;width:10px;border:2px solid var(--kf-green);border-left:0;border-radius:0 4px 4px 0;margin:4px 0;flex-shrink:0}
.pickup-brace::after{content:'';position:absolute;top:50%;right:-10px;width:8px;border-top:2px solid var(--kf-green)}
.pickup-hours{align-self:center;margin-left:8px;font-weight:700}

/* Pied de page : crédit « Site e-commerce réalisé par » + logo ReSource 360 (coin gauche) */
.footer-credit{display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center;width:fit-content;margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid rgba(255,255,255,.2)}
.footer-credit span{font-size:.8125rem;color:#cfd3e6}
.footer-top .footer-credit a{display:inline-flex;margin:0;background:#fff;border-radius:10px;padding:4px 8px;min-height:44px;align-items:center}
.footer-credit img{height:60px;width:auto;display:block}
.footer-legal{display:flex;gap:var(--space-4);flex-wrap:wrap;align-items:center}
@media(max-width:767px){.footer-legal{margin-top:var(--space-4)}}
/* ── Visites du site : tuiles, graphique en colonnes (une série, couleur validée #2f4a9a), parts ── */
.vz-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:var(--space-3);margin:0 0 var(--space-5)}
.vz-tile{background:var(--kf-white);border:2px solid var(--kf-navy);border-radius:var(--radius-lg);padding:var(--space-4);display:grid;gap:2px}
.vz-tile strong{font-size:2rem;line-height:1.1;font-weight:900;color:var(--kf-navy)}
.vz-tile span{font-weight:800;color:var(--kf-navy)}
.vz-tile small{color:var(--kf-navy-soft);font-size:var(--text-sm)}
.vz-wrap{position:relative}
.vz{display:block;width:100%;height:auto;overflow:visible}
.vz-grid{stroke:#e6e0c8;stroke-width:1}
.vz-axis{fill:var(--kf-navy-soft);font-size:12px;font-family:var(--font-sans)}
.vz-label{fill:var(--kf-navy);font-size:12px;font-weight:800;font-family:var(--font-sans)}
.vz-bar{fill:#2f4a9a}
.vz-hit{fill:transparent;cursor:pointer}
.vz-col:focus{outline:none}
.vz-col.on .vz-hit,.vz-col:focus-visible .vz-hit{fill:var(--kf-navy-tint)}
.vz-col.on .vz-bar{fill:var(--kf-navy)}
.vz-tip{position:absolute;top:-6px;transform:translate(-50%,-100%);background:var(--kf-navy);color:#fff;font-size:var(--text-sm);font-weight:700;padding:6px 10px;border-radius:8px;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow)}
.vz-data{margin-top:var(--space-4)}
.vz-table{width:100%;border-collapse:collapse}
.vz-table th,.vz-table td{padding:8px 6px;border-bottom:1px solid var(--kf-line);text-align:left;vertical-align:middle}
.vz-table thead th{font-size:var(--text-sm);color:var(--kf-navy-soft)}
.vz-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.vz-table .muted{color:var(--kf-navy-soft);font-size:var(--text-sm)}
.vz-bar-cell{width:38%}
.vz-meter{display:block;height:10px;background:var(--kf-navy-tint);border-radius:999px;overflow:hidden}
.vz-meter span{display:block;height:100%;background:#2f4a9a;border-radius:999px}
.vz-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:var(--space-4)}
.vz-grid2 .bo-card{margin:0}
.bo-datebar .btn[aria-current]{background:var(--kf-navy);color:#fff}
@media (max-width:560px){.vz-bar-cell{width:28%}.vz-tile strong{font-size:1.6rem}}
.vz-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media (max-width:700px){.vz{min-width:600px}.vz-tip{white-space:normal;left:4px!important;right:4px;transform:translateY(-100%);text-align:center}}
/* ── Fenêtre d'information « cookies » (non bloquante, choix aussi simple à refuser qu'à accepter) ── */
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:100;max-width:560px;margin:0 auto;background:var(--kf-white);color:var(--kf-navy);border:3px solid var(--kf-navy);border-radius:var(--radius-lg);box-shadow:0 12px 40px rgba(23,43,100,.25);padding:var(--space-5);display:grid;gap:var(--space-3);max-height:calc(100vh - 32px);overflow-y:auto}
.consent[hidden]{display:none}
.consent h2{font-size:1.3rem;margin:0}
.consent p{margin:0 0 var(--space-2);font-size:var(--text-sm);line-height:1.5;text-align:left}
.consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
.consent-actions .btn{min-height:48px;padding:10px 16px;width:100%}
.consent .text-link{justify-self:start;font-size:var(--text-sm)}
.footer-linkbtn{min-height:32px;display:inline-flex;align-items:center;background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
@media (max-width:420px){.consent{left:8px;right:8px;bottom:8px;padding:var(--space-4)}}
@media print{.consent{display:none!important}}

/* ── En-tête fixe : reste en haut de l'écran ; version compacte pendant le défilement ── */
.header-compact .site-header{box-shadow:0 4px 18px rgba(23,43,100,.14)}
.header-compact .header-inner{min-height:0;padding-top:6px;padding-bottom:6px}
.header-compact .site-header .brand-logo{height:56px}
.header-compact .site-header .brand-tagline{font-size:.95rem}
@media (max-width:720px){.header-compact .site-header .brand-logo{height:42px}.header-compact .site-header .brand-tagline{font-size:.8rem}}
.notice.form-done{text-align:left;margin-top:var(--space-5);font-size:var(--text-base);font-weight:700;color:var(--kf-navy)}
.footer-address{text-align:left}
.footer-pitch{text-align:left}
