/*
 * VIEUX CUMET — FINAL73/PATCH43 — ÉDITION CLIENT / EXCELLENCE ERGONOMIQUE
 * Feuille strictement cosmétique. Aucun changement de logique, de DOM, de médias ni de JS.
 * Périmètre: #clientPage, #vcCheeseNav, #checkoutModal et barre documentaire
 * exclusivement en mode public. La zone ADMIN et ses dialogues sont exclus.
 * Les fonds ADMIN FOND, les images fromages, les stocks et les widgets fonctionnels
 * conservent leurs sources, dimensions/positions obligatoires et interactions.
 */

/* 01 | Palette discrète et identitaire, encapsulée à l'espace client. */
#clientPage,
#vcCheeseNav,
#checkoutModal {
  --vcu-bordeaux: #711d23;
  --vcu-bordeaux-nuit: #4b1119;
  --vcu-ivoire: #fff9ee;
  --vcu-encre: #38251f;
  --vcu-or: #ba955e;
  --vcu-or-pale: #e9d7b6;
  --vcu-filet: rgba(130, 81, 51, .36);
  --vcu-ombre: 0 10px 32px rgba(43, 20, 14, .11), 0 2px 6px rgba(43, 20, 14, .07);
  --vcu-ombre-hover: 0 14px 36px rgba(43, 20, 14, .16), 0 4px 10px rgba(43, 20, 14, .09);
}

/* 02 | Lecture et qualité typographique sans modifier la police identitaire. */
#clientPage { color: var(--vcu-encre); line-height: 1.52; -webkit-font-smoothing: antialiased; }
#clientPage :where(p, li) { line-height: 1.55; }
#clientPage :where(.small, .desc, .summary) { line-height: 1.55; }
#clientPage :where(h1, h2, h3, h4) { text-wrap: balance; }
#clientPage :where(.card) { min-width: 0; }

/* 03 | Structure aérée sans déplacer les composants ni toucher aux fonds. */
#clientPage > #start { margin-bottom: clamp(12px, 2vw, 21px); }
#clientPage .layout { gap: clamp(12px, 1.8vw, 23px); align-items: start; }
#clientPage .layout > section > .card,
#clientPage .layout > aside > .card {
  border-color: var(--vcu-filet);
  border-radius: 17px;
  box-shadow: var(--vcu-ombre);
  transition: border-color .22s ease, box-shadow .22s ease;
}
#clientPage .layout > section > .card:hover,
#clientPage .layout > aside > .card:hover {
  border-color: rgba(153, 100, 62, .63);
  box-shadow: var(--vcu-ombre-hover);
}
#clientPage #start { border-radius: 17px; border-color: var(--vcu-filet); box-shadow: var(--vcu-ombre); }

/* 04 | Titres : contraste bordeaux, filet doré et respiration. */
#clientPage .title { color: var(--vcu-bordeaux); letter-spacing: .012em; line-height: 1.23; }
#clientPage #fromages > .title,
#clientPage #plateaux > .title,
#clientPage #special > .title,
#clientPage #start > .title { padding-bottom: .22em; margin-bottom: clamp(12px, 1.6vw, 21px); }
#clientPage .title::after { color: var(--vcu-or); }
#clientPage #panier > h3,
#clientPage #retrait > h3 {
  color: var(--vcu-bordeaux);
  font-size: clamp(17px, 1.6vw, 20px);
  line-height: 1.3;
  letter-spacing: .035em;
  border-bottom: 1px solid var(--vcu-or-pale);
  padding-bottom: 10px;
  margin-top: 0;
}

/* 05 | Identité du bloc client — sobriété sur fond existant. */
#clientPage #start > .card {
  border-radius: 13px;
  border-color: var(--vcu-filet);
  box-shadow: 0 3px 16px rgba(55, 29, 21, .06);
}
#clientPage #start :where(h3, h4) { letter-spacing: .02em; }
#clientPage #start .top-login { gap: clamp(9px, 1.4vw, 15px); }
#clientPage #accountFields { border-top: 1px solid var(--vcu-or-pale); padding-top: 12px; }

/* 06 | Champs : bordure distinguée, feedback focus net, ni largeur ni valeur modifiées. */
#clientPage :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select, textarea),
#checkoutModal :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select, textarea) {
  border-radius: 10px;
  border-color: rgba(138, 91, 59, .5);
  box-shadow: inset 0 1px 2px rgba(70, 40, 24, .04);
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
  min-width: 0;
}
#clientPage :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select, textarea):focus-visible,
#checkoutModal :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select, textarea):focus-visible {
  border-color: var(--vcu-bordeaux) !important;
  outline: 2px solid rgba(176, 119, 54, .56) !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 4px rgba(186, 149, 94, .15);
}
#clientPage .field > label { margin-bottom: 6px; color: #4c3027; letter-spacing: .012em; }
#clientPage input::placeholder,
#checkoutModal input::placeholder { color: #877669; opacity: 1; }

/* 07 | Boutons utilisateur : matière, densité régulière et rétroaction. */
#clientPage .btn,
#vcCheeseNav > .btn,
#checkoutModal .btn {
  border-radius: 11px;
  letter-spacing: .015em;
  line-height: 1.3;
  box-shadow: 0 3px 8px rgba(52, 22, 19, .15), inset 0 1px 0 rgba(255, 255, 255, .12);
  transition: filter .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
#clientPage .btn:not(:disabled):hover,
#vcCheeseNav > .btn:not(:disabled):hover,
#checkoutModal .btn:not(:disabled):hover { filter: brightness(1.055); box-shadow: 0 5px 13px rgba(52, 22, 19, .22); }
#clientPage .btn:not(:disabled):active,
#vcCheeseNav > .btn:not(:disabled):active,
#checkoutModal .btn:not(:disabled):active { transform: translateY(1px); }
#clientPage .btn.light,
#checkoutModal .btn.light { box-shadow: 0 2px 6px rgba(52, 22, 19, .08); }
#clientPage :where(button, a, input, select, textarea):focus-visible,
#vcCheeseNav :where(button, a):focus-visible,
#checkoutModal :where(button, a, input, select, textarea):focus-visible {
  outline: 3px solid #ba955e !important;
  outline-offset: 3px !important;
}
#clientPage button:disabled,
#checkoutModal button:disabled { filter: grayscale(.12); }

/* 08 | Le bouton de commande principal gagne en hiérarchie sans changer sa cible. */
#clientPage #checkout { font-weight: 700; border-color: #5d1820; }
#clientPage #checkout:not(:disabled):hover { box-shadow: 0 6px 18px rgba(82, 13, 24, .3); }

/* 09 | Cartes fromage : relief léger sans toucher aux photos, fonds administrés ou stocks. */
#clientPage #cheeses :where(.cheese, .vc-v3-cheese-card) {
  border-radius: 14px;
  border-color: rgba(140, 103, 73, .45);
  box-shadow: 0 4px 15px rgba(60, 32, 19, .1);
  transition: box-shadow .2s ease, border-color .2s ease;
}
#clientPage #cheeses :where(.cheese, .vc-v3-cheese-card):hover {
  border-color: rgba(173, 125, 70, .8);
  box-shadow: 0 9px 24px rgba(60, 32, 19, .15);
}
#clientPage #cheeses :where(.name, .vc-v3-cheese-name) { text-wrap: pretty; }
#clientPage #cheeses :where(.vc31-stock, .v38-stock) { letter-spacing: .015em; }

/* Les caractères superposés aux fonds photographiques restent distinguables. */
#clientPage #cheeses :where(.vc-v3-cheese-card, .cheese) :where(.name, .vc-v3-cheese-name) {
  text-shadow: 0 1px 3px rgba(39, 21, 12, .52);
}

/* 10 | Sélecteurs quantités : aspect tactile mais aucun changement de hitbox ni de z-index. */
#clientPage #cheeses :where(.qtyrow, .v38-qty) button,
#clientPage #cheeses :where(.vc-v3-info-btn, .icon) {
  border-radius: 9px;
  transition: box-shadow .16s ease, filter .16s ease;
}
#clientPage #cheeses :where(.qtyrow, .v38-qty) button:not(:disabled):hover,
#clientPage #cheeses :where(.vc-v3-info-btn, .icon):not(:disabled):hover {
  box-shadow: 0 2px 8px rgba(77, 31, 26, .18);
  filter: brightness(1.045);
}

/* 11 | Plateaux : lisibilité renforcée, sans recadrage forcé des images. */
#clientPage #plateaux :where(.tray, .vc-v3-public-tray) {
  border-radius: 12px;
  border-color: var(--vcu-filet);
  box-shadow: 0 3px 10px rgba(73, 43, 27, .07);
  transition: border-color .18s ease, box-shadow .18s ease;
}
#clientPage #plateaux :where(.tray, .vc-v3-public-tray):hover {
  border-color: rgba(173, 125, 70, .72);
  box-shadow: 0 6px 17px rgba(73, 43, 27, .12);
}
#clientPage #plateaux :where(.tray, .vc-v3-public-tray) label { line-height: 1.48; }

/* 12 | Panier : chiffres plus lisibles, contenu aéré, sans changer les calculs. */
#clientPage #panier :where(.summary, #recognition) { overflow-wrap: break-word; }
#clientPage #panier .total { color: var(--vcu-bordeaux); font-variant-numeric: tabular-nums; }
#clientPage #panier :where(.row, .history-order) {
  border-radius: 10px;
  border-color: var(--vcu-filet);
}

/* 13 | Livraison et paiement : meilleur contraste, choix visibles et accessibles. */
#clientPage #retrait :where(.field, .paylist) { margin-top: 10px; }
#clientPage #retrait .paylist > label {
  border-color: rgba(136, 94, 58, .48);
  border-radius: 11px;
  box-shadow: 0 2px 8px rgba(70, 38, 26, .05);
  transition: box-shadow .16s ease, border-color .16s ease;
}
#clientPage #retrait .paylist > label:has(input:checked) {
  border-color: #b78c50;
  box-shadow: inset 0 0 0 1px rgba(176, 123, 62, .3), 0 2px 8px rgba(70, 38, 26, .06);
}
#clientPage #retrait .paylist > label:focus-within { outline: 2px solid var(--vcu-or); outline-offset: 2px; }
#clientPage #retrait :where(#deliveryInfo, #deliveryAddressDisplay) { line-height: 1.55; }

/* Le texte des modes de livraison reste lisible dans le panneau étroit. */
html body #clientPage #retrait .paylist > label {
  font-size: clamp(13px, 1.15vw, 15px) !important;
  line-height: 1.45 !important;
}

/* 14 | Commandes spéciales : présentation professionnelle sans changement du bouton. */
#clientPage #special .vc10117-special-sub { line-height: 1.5; letter-spacing: .015em; }
#clientPage #special #contactBtn { margin-top: 7px; }

/* 15 | Barre PRÉCOMMANDER : ponctuation claire et alignement sans déplacement des réseaux. */
#vcCheeseNav { gap: clamp(7px, 1.4vw, 13px); padding-inline: clamp(9px, 1.5vw, 22px); }
#vcCheeseNav > .btn { border: 1px solid rgba(88, 26, 30, .9); }

/* 15bis | Bouton phare : contraste constant sans écraser les fonds personnalisés. */
#vcCheeseNav > #vcPreorderBtn:not(.vc23-boutons2) {
  background: linear-gradient(180deg, #8a2830, #54131d) !important;
  color: #fff9ed !important;
  border-color: #4e151b !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .2);
}

/* 16 | Navigation documentaire publique : le bouton Allergènes reste la référence. */
body:not(.vc23-admin-active):not(.vc31-admin-active) .vc3048-nav .vc3048-doc {
  border-radius: 13px !important;
  box-shadow: 0 3px 10px rgba(18, 13, 12, .19) !important;
  transition: box-shadow .18s ease, border-color .18s ease, filter .18s ease !important;
}
body:not(.vc23-admin-active):not(.vc31-admin-active) .vc3048-nav .vc3048-doc:hover,
body:not(.vc23-admin-active):not(.vc31-admin-active) .vc3048-nav .vc3048-doc:focus-visible {
  box-shadow: 0 5px 15px rgba(18, 13, 12, .26), 0 0 0 2px rgba(186, 149, 94, .26) !important;
  border-color: #d8b477 !important;
  filter: brightness(1.045);
}
body:not(.vc23-admin-active):not(.vc31-admin-active) .vc3048-nav .vc3048-doc:focus-visible {
  outline: 3px solid #e6c07b !important;
  outline-offset: 3px !important;
}
/* Légendes, dimensions d'images et title natif : propriété de PATCH31/42, inchangées. */

/* 17 | Récapitulatif et écran de réussite : dimension et navigation identiques. */
#checkoutModal .modalbox {
  border-radius: 18px;
  border: 1px solid rgba(179, 137, 74, .85);
  box-shadow: 0 19px 50px rgba(22, 11, 11, .3), inset 0 1px 0 rgba(255,255,255,.55);
}
#checkoutModal .title { color: var(--vcu-bordeaux); letter-spacing: .015em; line-height: 1.3; }
#checkoutModal #orderDetails { line-height: 1.55; overflow-wrap: break-word; }
#checkoutModal #checkoutThanks {
  border-color: rgba(179, 137, 74, .85);
  border-radius: 12px;
  box-shadow: 0 3px 12px rgba(79, 40, 18, .07);
}
#checkoutModal #checkoutActions { gap: 9px; }
#checkoutModal #sendOrder { border-color: var(--vcu-bordeaux-nuit); }
#checkoutModal #finishNote { color: #664f40; }

/* 18 | Cohérence des encadrés d'information dans l'espace utilisateur. */
#clientPage :where(.info-card, .info-panel) {
  border-radius: 12px;
  border-color: var(--vcu-filet);
  box-shadow: 0 2px 8px rgba(59, 31, 19, .055);
}
#clientPage :where(.info-panel) { line-height: 1.55; }

/* 19 | Tablettes : marges régulières sans changer le nombre de colonnes. */
@media (max-width: 960px) {
  #clientPage { padding-inline: max(10px, env(safe-area-inset-left)); }
  #clientPage .layout { gap: 13px; }
  #clientPage .layout > section > .card,
  #clientPage .layout > aside > .card { border-radius: 14px; }
}

/* 20 | Smartphone : confort tactile sur boutons principaux seulement. */
@media (max-width: 600px) {
  #clientPage { line-height: 1.52; }
  #clientPage > #start { margin-bottom: 12px; }
  #clientPage .layout > section > .card,
  #clientPage .layout > aside > .card { border-radius: 13px; }
  #clientPage .layout > section > .card > .title { line-height: 1.27; }
  #clientPage #start :where(#customerLogin, #customerRegister, #saveProfile),
  #clientPage #checkout,
  #checkoutModal #sendOrder { min-height: 44px; }
  #clientPage .field > label { margin-bottom: 5px; }
  #checkoutModal .modalbox { border-radius: 13px; }
  #checkoutModal #checkoutActions { gap: 8px; }
  #checkoutModal #checkoutActions .btn { min-height: 44px; }
}

/* 21 | Vision réduite : respecter zoom, focus, texte long, sans recadrer les médias. */
#clientPage :where(.summary, .small, .field, .info-card),
#checkoutModal :where(.small, .info-card) { overflow-wrap: break-word; }

/* 22 | Accessibilité : réduire les animations à la demande. */
@media (prefers-reduced-motion: reduce) {
  #clientPage .btn,
  #clientPage .card,
  #clientPage :where(input, select, textarea),
  #clientPage #cheeses :where(.cheese, .vc-v3-cheese-card),
  #vcCheeseNav > .btn,
  #checkoutModal .btn,
  body:not(.vc23-admin-active):not(.vc31-admin-active) .vc3048-nav .vc3048-doc {
    transition: none !important;
  }
  #clientPage .btn:active,
  #vcCheeseNav > .btn:active,
  #checkoutModal .btn:active { transform: none !important; }
}

/* 23 | Impression : restituer les styles d'impression originaux et éviter les ombres. */
@media print {
  #clientPage .card,
  #clientPage #cheeses :where(.cheese, .vc-v3-cheese-card),
  #checkoutModal .modalbox { box-shadow: none !important; }
}

/* Présentation PATCH64 directement intégrée au propriétaire CSS existant. */
/* FINAL94/PATCH64 — présentation VISITEUR uniquement. Aucun script métier modifié. */
#clientPage,#vcCheeseNav,#checkoutModal{--vc64-ink:#29211f;--vc64-ink-soft:#625650;--vc64-burg:#78242b;--vc64-burg-dark:#51151c;--vc64-gold:#bd985e;--vc64-hairline:rgba(152,105,58,.32);--vc64-ivory:#fffaf1;--vc64-shadow:0 14px 40px rgba(31,17,10,.13),0 2px 7px rgba(31,17,10,.055)}
html body #clientPage{width:min(100% - 28px,1390px);max-width:1390px;margin:0 auto;padding:clamp(12px,1.9vw,25px) 0 clamp(32px,5vw,65px);line-height:1.56;font-family:Georgia,'Times New Roman',serif;color:var(--vc64-ink)}
#clientPage :where(h1,h2,h3,h4,p,fieldset){overflow-wrap:break-word}
#clientPage :where(.card){min-width:0}
#clientPage :where(button,input,select,textarea){accent-color:var(--vc64-burg)}
#clientPage :where(.small,.desc,.summary,label,.vc10117-special-sub){font-size:clamp(13px,1vw,15px);line-height:1.6}
/* Accès rapide : cinq vraies ancres, sans scripts ou états supplémentaires. */
#clientPage .vc64-journey{position:relative;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:9px 12px;padding:14px clamp(14px,2vw,24px);margin:0 0 clamp(16px,2vw,24px);border:1px solid var(--vc64-hairline);border-radius:17px;background:rgba(255,250,241,.97);box-shadow:0 7px 25px rgba(42,24,14,.09)}
#clientPage .vc64-journey__title{color:var(--vc64-burg);font:700 12px/1.4 Arial,sans-serif;letter-spacing:.11em;text-transform:uppercase;margin-right:8px;white-space:nowrap}
#clientPage .vc64-journey__steps{display:flex;align-items:center;justify-content:center;flex:0 1 auto;flex-wrap:wrap;gap:7px;max-width:100%}
#clientPage .vc64-journey__steps a{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:8px 13px;border:1px solid rgba(142,105,77,.28);border-radius:999px;background:#fffdf8;color:#40342e;text-decoration:none;font:700 clamp(12px,.9vw,14px)/1.25 Arial,Helvetica,sans-serif;transition:background-color .16s ease,border-color .16s ease}
#clientPage .vc64-journey__steps a:hover{background:#f4e9d6;border-color:var(--vc64-gold)}
#clientPage .vc64-journey__steps a:focus-visible{outline:3px solid var(--vc64-gold);outline-offset:2px}
#clientPage .vc64-journey__num{display:inline-grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;color:#fff;background:var(--vc64-burg);font-size:12px}
#clientPage .vc64-journey__helper{color:#645247;font:400 12px/1.4 Arial,sans-serif;flex:0 0 100%;padding-left:0;text-align:center}
#clientPage :where(#start,#fromages,#plateaux,#special,#panier,#retrait){scroll-margin-top:24px}
/* Un même langage visuel pour les sections, sans écraser les fonds des fromages. */
html body #clientPage > #start,html body #clientPage .layout > section > .card,html body #clientPage .layout > aside > .card{background:linear-gradient(158deg,rgba(255,251,245,.97),rgba(250,242,226,.93))!important;border:1px solid var(--vc64-hairline)!important;border-radius:20px!important;box-shadow:var(--vc64-shadow)!important;margin-bottom:clamp(16px,2vw,26px)!important;padding:clamp(17px,2.25vw,32px)!important;min-width:0}
#clientPage > #start{margin-bottom:clamp(18px,2.2vw,28px)!important}
#clientPage .layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,340px);gap:clamp(16px,2vw,30px);align-items:start}
#clientPage .layout > section,#clientPage .layout > aside{min-width:0}
/* Titres identitaires, lisibilité nette et une ligne plutôt qu'un doublon graphique. */
html body #clientPage .title,html body #clientPage #panier>h3,html body #clientPage #retrait>h3{color:var(--vc64-burg)!important;font-family:Georgia,'Times New Roman',serif!important;font-weight:700!important;letter-spacing:-.018em;line-height:1.19;text-align:left!important}
html body #clientPage #start>.title,html body #clientPage #fromages>.title,html body #clientPage #plateaux>.title,html body #clientPage #special>.title{font-size:clamp(26px,2.8vw,38px)!important;padding:0 0 14px!important;margin:0 0 clamp(16px,2vw,23px)!important;border-bottom:1px solid var(--vc64-hairline)}
#clientPage .title::after{content:none!important}
html body #clientPage #panier>h3,html body #clientPage #retrait>h3{font-size:clamp(19px,1.6vw,25px)!important;margin:0 0 17px!important;padding:0 0 13px!important;border-bottom:1px solid var(--vc64-hairline)!important}
/* Identité utilisateur : fonction inchangée, plus claire et compacte. */
#clientPage #start>.card{background:rgba(255,255,253,.78)!important;border:1px solid rgba(173,137,95,.31)!important;border-radius:15px!important;box-shadow:none!important;padding:clamp(16px,2vw,25px)!important}
#clientPage #start>.card>h3{font-size:clamp(16px,1.6vw,19px)!important;color:var(--vc64-burg)!important;margin:0 0 16px!important;letter-spacing:.015em}
#clientPage #start .top-login{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(160px,.62fr);align-items:end;gap:clamp(10px,1.3vw,18px)}
#clientPage #start .top-login :where(.field,input,button){min-width:0}
#clientPage #start #customerLogin{min-height:45px;width:100%;background:linear-gradient(180deg,#862a33,#61181f)!important;border:1px solid #57161e!important;color:#fffaf2!important;text-shadow:none!important;font:700 15px/1.3 Arial,Helvetica,sans-serif!important;box-shadow:0 3px 10px rgba(80,25,25,.18)!important}
#clientPage #start #customerLogin:disabled{opacity:.6!important}
#clientPage #start .actions{gap:9px;margin-top:14px!important}
#clientPage #accountFields{margin-top:22px!important;padding-top:22px!important;border-top:1px solid var(--vc64-hairline)}
#clientPage #accountFields .admin-grid{gap:12px}
/* Accessibilité formulaires : focus, contraste, cibles tactiles. */
#clientPage .field>label{font:700 14px/1.4 Arial,sans-serif;color:#473c35;margin-bottom:7px}
#clientPage :where(input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]),select,textarea){min-height:44px;padding:10px 13px;border:1px solid #bca07a;border-radius:10px;background:#fffcf6;color:var(--vc64-ink);box-shadow:inset 0 1px 3px rgba(65,36,17,.035);font-family:Arial,Helvetica,sans-serif;font-size:clamp(14px,1vw,16px)}
#clientPage :where(input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]),select,textarea):focus-visible{border-color:var(--vc64-burg)!important;outline:3px solid rgba(184,135,69,.45)!important;outline-offset:2px}
#clientPage :where(button,a):focus-visible,#vcCheeseNav :where(button,a):focus-visible,#checkoutModal :where(button,a,input,select):focus-visible{outline:3px solid #d4a65c!important;outline-offset:3px!important}
#clientPage .btn,#vcCheeseNav>.btn{min-height:44px;border-radius:11px!important;padding:10px 16px;line-height:1.24;font:700 clamp(14px,1vw,16px)/1.28 Arial,Helvetica,sans-serif;text-decoration:none}
#clientPage .btn.light{background:#f5e9d6!important;color:#28211e!important;border:1px solid #bd985f!important}
#clientPage .btn.light :where(span,strong,b,small){color:#28211e!important}
#clientPage :where(.btn):disabled{opacity:.62;cursor:not-allowed}
/* Fromages : laisser intacts les positionnements/tailles de photos et les stocks. */
#clientPage #cheeses :where(.cheese,.vc-v3-cheese-card){border-radius:17px!important;border-color:rgba(170,132,90,.48)!important;box-shadow:0 6px 18px rgba(35,20,11,.1)!important}
#clientPage #cheeses :where(.cheese,.vc-v3-cheese-card):hover{border-color:#c29c65!important}
#clientPage #cheeses :where(.qtyrow,.v38-qty) button{cursor:pointer}
/* Plateaux : images non déformées, lisibilité homogène. */
#clientPage #plateaux .tray-grid{gap:clamp(12px,1.5vw,20px)}
#clientPage #plateaux :where(.tray,.vc-v3-public-tray){align-items:center;gap:14px;border-radius:15px!important;border:1px solid rgba(157,113,73,.39)!important;background:rgba(255,254,250,.88)!important;padding:13px!important;box-shadow:0 3px 12px rgba(49,29,18,.06)!important}
#clientPage #plateaux :where(.tray,.vc-v3-public-tray) img{object-fit:contain;background:#fffdf8;border-radius:9px}
#clientPage #plateaux :where(.tray,.vc-v3-public-tray) :where(b,strong){color:#682029}
#clientPage #plateaux :where(.tray,.vc-v3-public-tray) input[type="checkbox"]{width:19px;height:19px;vertical-align:middle}
#clientPage #plateaux>.field{margin-top:18px!important}
/* Panier / retrait : tous les montants et calculs restent ceux du site. */
#clientPage .layout>aside.side{align-self:start}
#clientPage #panier{background:linear-gradient(150deg,#fffdf8,#f8ecdc)!important}
#clientPage #panier #summary{font-size:15px;line-height:1.65;overflow-wrap:anywhere}
#clientPage #panier #summary :where(.total,b,strong){font-variant-numeric:tabular-nums}
#clientPage #panier :where(.row,.history-order){border:1px solid rgba(150,105,63,.27);border-radius:11px;background:#fffaf1}
#clientPage #panier #checkout{display:block;width:100%;min-height:52px;margin-top:18px;border:1px solid #5e1a20!important;background:linear-gradient(180deg,#862a33,#61181f)!important;color:#fffaf2!important;text-shadow:none!important;box-shadow:0 5px 14px rgba(72,14,23,.18);font:700 16px/1.25 Arial,sans-serif}
#clientPage #panier #checkout:not(:disabled):hover{background:#67232a!important}
#clientPage #panier #checkout:disabled{opacity:.5!important}
#clientPage #retrait .paylist{display:grid;grid-template-columns:1fr;gap:10px;margin-top:17px}
html body #clientPage #retrait .paylist>label{display:flex;align-items:center;gap:11px;min-height:52px;padding:13px 14px!important;background:#fffcf5!important;border:1px solid #cbb18c!important;border-radius:12px!important;color:#2c2420!important;font:600 14px/1.45 Arial,sans-serif!important;box-shadow:none!important;overflow-wrap:anywhere}
html body #clientPage #retrait .paylist>label:has(input:checked){border-color:#8d3541!important;box-shadow:inset 3px 0 0 var(--vc64-burg)!important;background:#fff4e8!important}
#clientPage #retrait .paylist>label input[type="radio"]{flex:0 0 19px;width:19px;height:19px;margin:0}
#clientPage #retrait #addressBox{margin-top:15px}
#clientPage #retrait :where(#deliveryAddressDisplay,#deliveryInfo){color:#534a43;line-height:1.6}
#clientPage #retrait #vc86MarketStatus{font-size:clamp(13px,1vw,15px)!important}
/* Commandes spéciales : appel discret. */
#clientPage #special{border-left:4px solid var(--vc64-gold)!important}
#clientPage #special .vc10117-special-sub{font-size:clamp(15px,1.2vw,17px);color:#51443d}
#clientPage #special #contactBtn{margin-top:15px}
/* Barre PRÉCOMMANDER et logos sociaux sans déplacement des événements. */
html body #vcCheeseNav{max-width:1390px;width:min(100% - 28px,1390px);margin:14px auto 0!important;padding:10px clamp(12px,2vw,20px)!important;border:1px solid rgba(176,133,80,.36);border-radius:16px;background:rgba(255,250,240,.96)!important;box-shadow:0 8px 22px rgba(30,17,10,.11);align-items:center;gap:10px}
#vcCheeseNav>#vcPreorderBtn{min-height:44px}
#vcCheeseNav .vc3048-banner-social{flex-shrink:0}
/* Récapitulatif : seule la présentation du conteneur, pas les modes de paiement. */
#checkoutModal .modalbox{border-radius:20px;border-color:rgba(187,143,87,.83);box-shadow:0 25px 65px rgba(23,11,10,.3);background:var(--vc64-ivory)}
#checkoutModal #checkoutTitle{text-align:center;color:var(--vc64-burg)}
#checkoutModal #orderDetails{line-height:1.6}
/* Responsive, sans déplacement d'éléments ni modification des handlers. */
@media(min-width:1050px){#clientPage .layout>aside.side{position:sticky;top:16px}}
@media(max-width:1049px){#clientPage .layout{grid-template-columns:minmax(0,1fr);gap:6px}#clientPage .layout>aside.side{position:static}#clientPage #start .top-login{grid-template-columns:1fr 1fr}#clientPage #start .top-login>.btn{grid-column:1/-1}#clientPage #plateaux .tray-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:690px){html body #clientPage{width:calc(100% - 20px);padding:12px 0 38px}html body #vcCheeseNav{width:calc(100% - 20px);margin-top:10px!important}#clientPage .vc64-journey{padding:13px 11px;gap:9px}#clientPage .vc64-journey__title{flex:1 0 100%;font-size:11px}#clientPage .vc64-journey__steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}#clientPage .vc64-journey__steps a{min-height:43px;padding:7px 8px;font-size:12px;gap:7px}#clientPage .vc64-journey__steps a:last-child{grid-column:1/-1}#clientPage .vc64-journey__helper{font-size:11px}html body #clientPage>#start,html body #clientPage .layout>section>.card,html body #clientPage .layout>aside>.card{padding:17px!important;border-radius:15px!important}#clientPage #start .top-login{grid-template-columns:1fr}#clientPage #start .top-login>.btn{grid-column:auto}#clientPage #start .actions>.btn{flex:1}#clientPage #accountFields .admin-grid{grid-template-columns:1fr}#clientPage #plateaux .tray-grid{grid-template-columns:1fr}#clientPage #plateaux .tray{gap:10px}#clientPage #plateaux .tray img{width:clamp(72px,25vw,98px);height:auto;aspect-ratio:1.3/1}#clientPage #retrait .paylist{grid-template-columns:1fr}#vcCheeseNav{flex-wrap:wrap}#vcCheeseNav>#vcPreorderBtn{max-width:100%}#vcCheeseNav .vc3048-banner-social.vc63-social{margin-left:auto!important}}
@media(prefers-reduced-motion:reduce){#clientPage *,#vcCheeseNav *{scroll-behavior:auto!important;transition:none!important}}
/* CONSO DIRECTE — valeurs ADMIN publiées (mêmes variables existantes).
   Les variables --vc-p19-* sont les propriétaires du module PERSONNALISATION existant.
   Aucune palette nouvelle n’est créée côté serveur. */
body.vc-p19-theme-enabled #clientPage,
body.vc-p19-theme-enabled #vcCheeseNav,
body.vc-p19-theme-enabled #checkoutModal {
  --vc64-burg:var(--vc-p19-primary,var(--burg,#78242b));
  --vc64-burg-dark:var(--vc-p19-secondary,var(--burg,#51151c));
  --vc64-gold:var(--vc-p19-accent,var(--gold,#bd985e));
  --vc64-ink:var(--vc-p19-text,var(--ink,#29211f));
  --vc64-hairline:color-mix(in srgb,var(--vc64-gold) 48%,transparent);
  --vc64-ivory:color-mix(in srgb,var(--vc-p19-background,#fffaf1) 22%,white);
}
body.vc-p19-theme-enabled #clientPage {
  color:var(--vc64-ink)!important;
  font-family:inherit!important;
}
body.vc-p19-theme-enabled #clientPage .title,
body.vc-p19-theme-enabled #clientPage #start>.card>h3,
body.vc-p19-theme-enabled #clientPage :where(h1,h2,h3,h4),
body.vc-p19-theme-enabled #checkoutModal #checkoutTitle {
  color:var(--vc64-burg)!important;
  font-family:var(--vc-p19-heading-font,Georgia,'Times New Roman',serif)!important;
}
body.vc-p19-theme-enabled #clientPage .vc64-journey__title { color:var(--vc64-burg)!important; }
body.vc-p19-theme-enabled #clientPage .vc64-journey__num { background:var(--vc64-burg)!important; }
body.vc-p19-theme-enabled #clientPage .vc64-journey__steps a:focus-visible {outline-color:var(--vc64-gold)!important}
body.vc-p19-theme-enabled #clientPage .btn:not(.light),
body.vc-p19-theme-enabled #clientPage #start #customerLogin,
body.vc-p19-theme-enabled #clientPage #panier #checkout {
  background:var(--vc-p19-button,var(--vc64-burg))!important;
  border-color:var(--vc64-burg-dark)!important;
}
body.vc-p19-theme-enabled #clientPage .btn:not(.light):not(:disabled):hover,
body.vc-p19-theme-enabled #clientPage #panier #checkout:not(:disabled):hover{
  background:var(--vc-p19-button-hover,var(--vc-p19-button,var(--vc64-burg-dark)))!important;
}
/* Surfaces : une teinte discrète du fond ADMIN, sans écraser les six fonds de fromages. */
body.vc-p19-theme-enabled #clientPage > #start,
body.vc-p19-theme-enabled #clientPage .layout > section > .card,
body.vc-p19-theme-enabled #clientPage .layout > aside > .card {
  background:color-mix(in srgb,var(--vc-p19-background,#fffaf1) 18%,white)!important;
  border-color:var(--vc64-hairline)!important;
}
body.vc-p19-theme-enabled #clientPage #start>.card,
body.vc-p19-theme-enabled #clientPage #retrait .paylist>label{
  background:color-mix(in srgb,var(--vc-p19-background,#fffaf1) 12%,white)!important;
}
body.vc-p19-theme-enabled #clientPage #plateaux :where(.tray,.vc-v3-public-tray) {
  border-color:var(--vc64-hairline)!important;
}
/* Formulaires légèrement plus accueillants, sans déplacement ni perte de valeurs. */
#clientPage #start .top-login>.field,
#clientPage #accountFields .field{min-width:0}
#clientPage #start .top-login>.field>label{letter-spacing:.012em}
#clientPage :where(input,select,textarea):not([type=hidden]):focus-visible{transition:box-shadow .16s ease}
#clientPage .vc64-journey__helper{font-style:italic;opacity:.88}
/* Apparence verrouillée uniquement lorsque le contrôle est réellement désactivé. */
#clientPage #retrait .paylist>label:has(input[name="deliveryMode"][value="parcel"]:disabled){
  display:flex!important;align-items:center;gap:10px;position:relative;
  background:rgba(231,222,214,.75)!important;color:#50443f!important;
  border:1px dashed var(--vc64-gold)!important;opacity:.8;cursor:not-allowed!important;
}
#clientPage #retrait .paylist>label:has(input[name="deliveryMode"][value="parcel"]:disabled)>input{cursor:not-allowed;accent-color:#85776f}
#clientPage #retrait .paylist>label:has(input[name="deliveryMode"][value="parcel"]:disabled)::after {
  content:"Verrouillé";margin-left:auto;flex:0 0 auto;
  padding:3px 7px;border-radius:999px;background:#f3e9db;
  color:#53443e;font:700 11px/1.25 Arial,sans-serif;
}
/* Les éventuels doublons historiques sont masqués; aucun handler supprimé. */
html body #clientPage #retrait .paylist>label.vc61-parcel-duplicate:has(input[value="parcel"]){display:none!important}
@media(max-width:390px){#clientPage #retrait .paylist>label:has(input[value="parcel"])::after{font-size:10px}}
@media(prefers-reduced-motion:reduce){#clientPage :where(input,select,textarea){transition:none!important}}

/* Le propriétaire historique PATCH61 pilote déjà les doublons. Verrouillage sur sa classe. */
#clientPage #retrait .paylist>label:has(input[name="deliveryMode"][value="parcel"]:disabled){pointer-events:none!important;user-select:none;cursor:not-allowed!important}
#clientPage #retrait .paylist>label:has(input[name="deliveryMode"][value="parcel"]:disabled) input{pointer-events:none!important}

/* FINAL99/PATCH69 — mise en page canonique : pas de seconde couche JS/DOM */
html body #vcCheeseNav, html body .vc3048-nav {
 background:transparent!important;background-image:none!important;border:0!important;box-shadow:none!important;
}
html body .vc3048-nav {
 width:100%!important;max-width:770px!important;margin:9px auto 16px!important;
 display:flex!important;flex-flow:row wrap!important;justify-content:center!important;align-items:center!important;
 gap:12px 15px!important;
}
html body .vc3048-nav .vc3048-doc, html body .vc3048-nav .vc63-doc {
 border:3px solid #d4aa59!important;box-shadow:0 0 0 1px #7a4b21!important;
}
html body #vcCheeseNav {display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;align-items:center!important;gap:8px!important;}
html body #vcCheeseNav #vcPreorderBtn{grid-column:2!important;justify-self:center!important;color:#161616!important;}
html body #vcCheeseNav .vc3048-banner-social{grid-column:3!important;justify-self:end!important;margin:0!important;}
html body #vcCheeseNav .vc3048-nav{grid-column:1/-1!important;}
html body #clientPage :is(#start,#fromages,#plateaux,#special)>.title,
html body #clientPage #retrait>h3 {
 color:#fff!important;font-family:Georgia,'Times New Roman',serif!important;
 font-size:clamp(24px,2.55vw,39px)!important;line-height:1.13!important;
 font-weight:700!important;text-align:center!important;text-shadow:0 2px 3px #271219!important;
}
html body #clientPage #special .vc10117-special-sub{
 color:#fff!important;font:700 clamp(18px,1.55vw,23px)/1.2 Georgia,'Times New Roman',serif!important;text-align:center!important;
 text-shadow:0 1px 3px #1c1310!important;
}
html body #clientPage #special{background:rgba(20,12,9,.28)!important;border:1px solid #bc9354!important;box-shadow:0 0 0 1px rgba(207,172,99,.3)!important;}
/* Ne pas retoucher le bouton Contact. */
html body .vc55-carte-cadeau-badge{transform:translateX(-28px) rotate(20deg)!important;}
html body .vc61-legible-button, html body .btn.light, html body #adminPage .btn.light,
html body #vcPreorderBtn{color:#111!important;}
html body #adminPage button:not(:disabled):where(.btn.light) *{color:#111!important;}
html body #retrait.vc69-delivery-mode .field:has(#market),
html body #retrait.vc69-delivery-mode .field:has(#marketTime),
html body #retrait.vc69-delivery-mode #vc86MarketStatus,
html body #retrait.vc69-delivery-mode .vc60-market-map-row,
html body #retrait.vc69-delivery-mode #vc56MarketHero,
html body #retrait.vc69-delivery-mode .vc61-market-note{display:none!important;}
@media(max-width:760px){html body .vc3048-nav{max-width:99%!important;gap:8px!important}html body #vcCheeseNav{grid-template-columns:1fr auto 1fr!important}html body #clientPage #special .vc10117-special-sub{font-size:17px!important}}

/* ADMIN IBD — choix exclusif du regroupement */
#vc69IbdModes{margin:12px 0;padding:15px 16px;border:1px solid #cba76e;border-radius:14px;background:#fff9ed;color:#281b16}
#vc69IbdModes legend{padding:0 7px;font-weight:700;color:#74252b}
#vc69IbdModes label{display:inline-flex;align-items:center;gap:7px;margin:7px 20px 7px 0;color:#281b16!important}
#vc69IbdModes input{width:18px;height:18px;accent-color:#74252b}
#vc69IbdModes p{font-size:12px;color:#57483e;margin:6px 0}
/* Correction mesurée en navigateur : contraste PRÉCOMMANDER, priorité sur thème antérieur. */
html body #vcCheeseNav > #vcPreorderBtn:not(.vc23-boutons2) {
 background:#fff9ef!important;
 color:#111!important;
 text-shadow:none!important;
}
html body #vcCheeseNav > #vcPreorderBtn:not(.vc23-boutons2) :is(span,small,strong,b,i,em){color:#111!important;text-shadow:none!important}
