/* ============================================================
   MODULE BONS CADEAUX — daverdisse.com
   Chargé uniquement sur /xx/bons-cadeaux.html.
   Toutes les classes commencent par « bc- » : aucun risque de
   conflit avec styles.css (ex. .offre, .section, .carousel…).
   ============================================================ */
.bc {
  --bc-brun:#2C2418; --bc-brun2:#5A5040; --bc-or:#8A7B5C; --bc-or2:#B5A27A;
  --bc-creme:#FAF8F4; --bc-creme2:#F1ECE2; --bc-ligne:#E8E2D5; --bc-err:#A8402F;
  --bc-sans:'Helvetica Neue', Arial, sans-serif;
  --bc-serif:var(--titre, 'Cormorant Garamond', Georgia, serif);
  font-family:var(--bc-sans); color:var(--bc-brun); text-align:left; font-size:15px; line-height:1.55;
}
.bc *, .bc *::before, .bc *::after { box-sizing:border-box; }
:where(.bc) button, :where(.bc) input, :where(.bc) select, :where(.bc) textarea { font:inherit; color:inherit; }
.bc a { color:var(--bc-brun); text-decoration:underline; text-decoration-color:var(--bc-or); text-underline-offset:2px; }
.bc-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.bc-ic { display:inline-block; width:1.1em; height:1.1em; vertical-align:-.2em; color:var(--bc-or); }
.bc-ic svg, .bc-i svg, .bc-offre-ico svg, .bc-merci-ico svg { width:100%; height:100%; display:block; }

/* Progression */
.bc-etapes { display:flex; list-style:none; margin:0 auto 36px; padding:0; max-width:720px; }
.bc-etapes li { flex:1; text-align:center; font-size:11px; letter-spacing:1px; text-transform:uppercase; color:#A69A84; position:relative; }
.bc-pt { display:flex; align-items:center; justify-content:center; width:34px; height:34px; margin:0 auto 8px; border-radius:50%;
  border:0.5px solid var(--bc-or2); background:#fff; font-family:var(--bc-serif); font-size:18px; transition:.3s; }
.bc-etapes li::after { content:""; position:absolute; top:17px; left:calc(50% + 22px); right:calc(-50% + 22px); height:0.5px; background:var(--bc-ligne); }
.bc-etapes li:last-child::after { display:none; }
.bc-etapes li.fait { color:var(--bc-brun2); cursor:pointer; }
.bc-etapes li.fait .bc-pt { background:var(--bc-or); border-color:var(--bc-or); color:#fff; }
.bc-etapes li.fait::after { background:var(--bc-or); }
.bc-etapes li.actif { color:var(--bc-brun); font-weight:600; }
.bc-etapes li.actif .bc-pt { background:var(--bc-brun); border-color:var(--bc-brun); color:#fff; transform:scale(1.08); }

/* Mise en page */
.bc-zone { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:40px; align-items:start; }
.bc-carte { background:#fff; border:0.5px solid var(--bc-ligne); padding:36px; box-shadow:0 2px 12px rgba(60,50,40,0.06); }
.bc-panneau { display:none; animation:bcEntre .45s ease; }
.bc-panneau.actif { display:block; }
@keyframes bcEntre { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
.bc-h2 { font-family:var(--bc-serif); font-weight:500; font-size:30px; line-height:1.2; margin:0 0 6px; }
.bc-sous { color:var(--bc-brun2); margin:0 0 24px; font-size:14px; }
.bc-h3 { font-family:var(--bc-serif); font-weight:500; font-size:21px; margin:28px 0 12px; padding-top:20px; border-top:0.5px solid var(--bc-ligne); }
.bc-h3.premier { border-top:0; padding-top:0; margin-top:4px; }
.bc-h3 small { font-family:var(--bc-sans); font-size:12px; color:#A69A84; font-weight:normal; }

/* Catégories (puces) */
.bc-chips { display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:8px; margin-bottom:14px; }
.bc-chip { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; text-align:center; border:0.5px solid var(--bc-ligne); background:var(--bc-creme); padding:14px 3px 12px; cursor:pointer; font-size:12px; line-height:1.25; min-height:78px; transition:border-color .2s, background .2s, color .2s; }
.bc-chip:hover { border-color:var(--bc-or2); }
.bc-chip-ico { display:flex; width:22px; height:22px; color:var(--bc-or); }
.bc-chip-ico svg { width:100%; height:100%; }
.bc-chip[aria-checked="true"] { background:var(--bc-brun); border-color:var(--bc-brun); color:#fff; }
.bc-chip[aria-checked="true"] .bc-chip-ico { color:var(--bc-or2); }
@media (max-width:600px) {
  .bc-chips { grid-template-columns:1fr 1fr; }
  .bc-chip { flex-direction:row; justify-content:flex-start; gap:8px; min-height:52px; padding:10px 10px; text-align:left; font-size:13px; overflow-wrap:normal; }
  .bc-chip:last-child { grid-column:1 / -1; }
}
.bc-nuits { display:none; align-items:center; flex-wrap:wrap; gap:14px; margin-top:12px; padding:14px 18px; background:var(--bc-creme2); }
.bc-nuits.visible { display:flex; animation:bcEntre .3s; }
.bc-nuits-label { font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--bc-brun2); }
.bc-stepper { display:inline-flex; align-items:center; border:0.5px solid var(--bc-or2); background:#fff; }
.bc-stepper button { width:38px; height:38px; border:0; background:none; cursor:pointer; font-size:20px; line-height:1; color:var(--bc-brun); }
.bc-stepper button:hover:not([disabled]) { background:var(--bc-creme2); }
.bc-stepper button[disabled] { opacity:.35; cursor:default; }
.bc-stepper output { min-width:38px; text-align:center; font-family:var(--bc-serif); font-size:22px; }
.bc-nuits-total { margin-left:auto; font-family:var(--bc-serif); font-size:22px; color:var(--bc-or); }
.bc-prix em { font-size:13px; opacity:.8; }

/* Choix de la formule dans un groupe */
.bc-sous-offres { display:none; margin-top:4px; }
.bc-sous-offres.visible { display:block; animation:bcEntre .35s; }
.bc-sous-titre { font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--bc-brun2); margin-bottom:10px; }
.bc-sous-grille { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.bc-sub { position:relative; text-align:left; border:0.5px solid var(--bc-ligne); background:#fff; padding:14px 14px 12px; cursor:pointer; transition:border-color .2s, box-shadow .2s; }
.bc-sub:hover { border-color:var(--bc-or2); }
.bc-sub[aria-checked="true"] { border-color:var(--bc-or); box-shadow:0 0 0 1px var(--bc-or); }
.bc-sub b { display:block; font-family:var(--bc-serif); font-weight:500; font-size:18px; line-height:1.2; margin-bottom:3px; }
.bc-sub small { display:block; color:var(--bc-brun2); font-size:12px; line-height:1.4; margin-bottom:8px; }
@media (max-width:600px) { .bc-sous-grille { grid-template-columns:1fr; } }

/* Formules */
.bc-offres { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:12px; }
.bc-offre { position:relative; text-align:left; border:0.5px solid var(--bc-ligne); padding:18px 16px 16px; background:var(--bc-creme); cursor:pointer; transition:border-color .25s, transform .25s, box-shadow .25s; }
.bc-offre:hover { border-color:var(--bc-or2); transform:translateY(-2px); box-shadow:0 8px 20px rgba(60,50,40,0.08); }
.bc-offre[aria-checked="true"] { border-color:var(--bc-or); background:#fff; box-shadow:0 0 0 1px var(--bc-or); }
.bc-offre[aria-checked="true"]::before { content:"✓"; position:absolute; top:12px; right:12px; width:20px; height:20px; border-radius:50%; background:var(--bc-or); color:#fff; font-size:11px; display:flex; align-items:center; justify-content:center; }
.bc-offre-ico { display:flex; width:40px; height:40px; border-radius:50%; background:var(--bc-creme2); color:var(--bc-or); padding:10px; margin-bottom:12px; transition:.25s; }
.bc-offre[aria-checked="true"] .bc-offre-ico { background:var(--bc-or); color:#fff; }
.bc-offre b { display:block; font-family:var(--bc-serif); font-weight:500; font-size:20px; line-height:1.2; margin-bottom:4px; }
.bc-offre small { display:block; color:var(--bc-brun2); font-size:12.5px; line-height:1.45; margin-bottom:10px; }
.bc-prix { font-family:var(--bc-serif); font-style:italic; font-size:18px; color:var(--bc-or); }

.bc-libre { margin-top:16px; padding:20px; background:var(--bc-creme2); display:none; }
.bc-libre.visible { display:block; animation:bcEntre .35s; }
.bc-puces { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.bc-puce { border:0.5px solid var(--bc-or2); background:#fff; padding:8px 16px; cursor:pointer; transition:.2s; font-size:13px; letter-spacing:.3px; }
.bc-puce:hover { border-color:var(--bc-or); }
.bc-puce[aria-pressed="true"] { background:var(--bc-brun); border-color:var(--bc-brun); color:#fff; }
.bc-montant { display:flex; align-items:center; gap:10px; }
.bc-montant input { width:150px; font-family:var(--bc-serif); font-size:28px; padding:6px 12px; border:0.5px solid var(--bc-or2); background:#fff; }
.bc-montant span { font-family:var(--bc-serif); font-size:28px; }

/* Champs */
.bc-grille { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.bc-grille .large { grid-column:1/-1; }
.bc-champ label { display:block; font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--bc-brun2); margin-bottom:6px; }
.bc-champ label .opt { text-transform:none; letter-spacing:0; color:#A69A84; }
.bc-champ input, .bc-champ textarea, .bc-champ select { width:100%; padding:12px 13px; border:0.5px solid #D6CDBB; background:#fff; border-radius:0; transition:border-color .2s, box-shadow .2s; font-size:15px; }
.bc-champ input:focus, .bc-champ textarea:focus, .bc-champ select:focus, .bc-montant input:focus { outline:none; border-color:var(--bc-or); box-shadow:0 0 0 3px rgba(138,123,92,.15); }
.bc-champ textarea { resize:vertical; min-height:96px; }
.bc-champ.erreur input, .bc-champ.erreur textarea { border-color:var(--bc-err); }
.bc-msg { display:none; color:var(--bc-err); font-size:12px; margin-top:4px; }
.bc-champ.erreur .bc-msg { display:block; }
.bc-compteur { text-align:right; font-size:11px; color:#A69A84; margin-top:3px; }

/* Choix */
.bc-choix { display:grid; gap:10px; }
.bc-choix.deux { grid-template-columns:1fr 1fr; }
.bc-opt { display:flex; gap:12px; align-items:flex-start; border:0.5px solid var(--bc-ligne); padding:15px; cursor:pointer; transition:.2s; background:var(--bc-creme); }
.bc-opt:hover { border-color:var(--bc-or2); }
.bc-opt input { margin-top:4px; accent-color:var(--bc-or); }
.bc-opt.coche { border-color:var(--bc-or); background:#fff; box-shadow:0 0 0 1px var(--bc-or); }
.bc-opt b { display:block; font-weight:600; font-size:14px; }
.bc-opt small { color:var(--bc-brun2); font-size:12.5px; }
.bc-tag { display:inline-block; margin-left:6px; font-size:10px; letter-spacing:.8px; text-transform:uppercase; padding:2px 7px; background:var(--bc-or); color:#fff; vertical-align:2px; font-weight:normal; }
.bc-sous-choix { margin:10px 0 4px 28px; display:none; }
.bc-sous-choix.visible { display:block; animation:bcEntre .3s; }

/* Designs */
.bc-designs { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.bc-design { border:0.5px solid var(--bc-ligne); padding:8px; cursor:pointer; background:#fff; transition:.2s; text-align:center; font-size:12.5px; }
.bc-design:hover { border-color:var(--bc-or2); }
.bc-design[aria-checked="true"] { border-color:var(--bc-or); box-shadow:0 0 0 1px var(--bc-or); }
.bc-mini { height:58px; margin-bottom:7px; }
.bc-mini.creme { background:linear-gradient(135deg,#FAF8F4,#EAE0CD); border:0.5px solid #DCCFB6; }
.bc-mini.nuit { background:linear-gradient(135deg,#1d1a15,#3a3024); }
.bc-mini.foret { background:linear-gradient(135deg,#2f4a3a,#56735e); }

/* Boutons */
.bc-nav { display:flex; justify-content:space-between; gap:12px; margin-top:30px; }
.bc-btn { border:0; padding:14px 30px; cursor:pointer; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; transition:background .25s, transform .25s, box-shadow .25s; }
.bc-btn-p { background:var(--bc-brun); color:var(--bc-creme); }
.bc-btn-p:hover { background:#1A140C; transform:translateY(-2px); box-shadow:0 8px 20px rgba(44,36,24,.22); }
.bc-btn-s { background:transparent; color:var(--bc-brun2); border:0.5px solid var(--bc-or2); }
.bc-btn-s:hover { border-color:var(--bc-brun); color:var(--bc-brun); }
.bc-btn-or { background:var(--bc-or); color:#fff; font-size:12px; padding:16px 32px; }
.bc-btn-or:hover { background:#776A4D; transform:translateY(-2px); box-shadow:0 10px 24px rgba(138,123,92,.35); }
.bc-btn[disabled] { opacity:.55; cursor:wait; transform:none; box-shadow:none; }
.bc-lien { background:none; border:0; padding:0; color:var(--bc-or); cursor:pointer; font-size:13px; margin-top:6px; }
.bc-lien:hover { color:var(--bc-brun); }

/* Récapitulatif */
.bc-recap { background:var(--bc-creme); padding:18px 20px; margin-bottom:18px; border-top:2px solid var(--bc-or); }
.bc-recap dl { display:grid; grid-template-columns:auto 1fr; gap:7px 16px; font-size:13.5px; margin:0; }
.bc-recap dt { color:var(--bc-brun2); }
.bc-recap dd { text-align:right; margin:0; }
.bc-total { display:flex; justify-content:space-between; align-items:baseline; border-top:0.5px solid var(--bc-ligne); margin-top:12px; padding-top:12px; }
.bc-total span { font-family:var(--bc-serif); font-size:21px; }
.bc-total strong { font-family:var(--bc-serif); font-size:32px; font-weight:500; font-variant-numeric:lining-nums; }
.bc-case { display:flex; gap:10px; align-items:flex-start; font-size:13px; margin:10px 0; color:var(--bc-brun2); line-height:1.5; }
.bc-case input { margin-top:2px; accent-color:var(--bc-or); width:17px; height:17px; flex:none; }
.bc-case.erreur { color:var(--bc-err); }
.bc-conditions { margin:4px 0 8px 27px; font-size:12.5px; color:var(--bc-brun2); }
.bc-conditions summary { cursor:pointer; color:var(--bc-or); }
.bc-conditions ul { margin:8px 0 0; padding-left:18px; line-height:1.6; }
.bc-paiements { display:flex; flex-wrap:wrap; gap:6px; margin:18px 0 4px; font-size:11px; color:#8D8170; }
.bc-paiements span { border:0.5px solid var(--bc-ligne); padding:3px 9px; background:#fff; }
.bc-securite { font-size:12px; color:#8D8170; margin:10px 0 0; }

/* Aperçu du bon */
.bc-apercu { position:sticky; top:100px; }
.bc-apercu-titre { font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--bc-or); text-align:center; margin-bottom:12px; }
.bc-scene { perspective:1400px; }
.bc-bon { position:relative; aspect-ratio:1.45/1; border-radius:6px; overflow:hidden; box-shadow:0 22px 50px rgba(44,36,24,.22);
  transition:transform .8s cubic-bezier(.2,.7,.2,1); transform-style:preserve-3d; container-type:inline-size; }
.bc-bon:hover { transform:rotateY(-4deg) rotateX(3deg); }
.bc-cadre { position:absolute; inset:12px; border:0.5px solid var(--bon-or); }
.bc-cadre::before { content:""; position:absolute; inset:4px; border:0.5px solid var(--bon-or); opacity:.45; }
.bc-contenu { position:absolute; inset:0; padding:7% 8%; display:flex; flex-direction:column; justify-content:space-between; }
.bc-haut { display:flex; justify-content:space-between; align-items:flex-start; }
.bc-marque { font-family:var(--bc-serif); line-height:1.1; }
.bc-marque .nom { font-size:max(15px, 4.4cqi); font-weight:500; }
.bc-marque .et { color:var(--bon-or); letter-spacing:.25em; font-family:var(--bc-sans); font-size:max(8px, 1.9cqi); margin-top:4px; }
.bc-roue { width:max(28px, 8cqi); height:auto; opacity:.85; animation:bcTourne 30s linear infinite; }
@keyframes bcTourne { to { transform:rotate(360deg); } }
.bc-milieu { text-align:center; }
.bc-etiq { font-size:max(8px, 1.8cqi); letter-spacing:.32em; text-transform:uppercase; color:var(--bon-or); }
.bc-val { font-family:var(--bc-serif); font-weight:500; font-size:max(24px, 8.6cqi); line-height:1.08; margin:4px 0 3px; font-variant-numeric:lining-nums; }
.bc-detail { font-size:max(10px, 2.4cqi); opacity:.8; min-height:1.2em; }
.bc-msg-bon { font-family:var(--bc-serif); font-style:italic; font-size:max(11px, 2.9cqi); opacity:.9; margin-top:5px; max-height:3.1em; overflow:hidden; }
.bc-bas { display:flex; justify-content:space-between; align-items:flex-end; font-size:max(8.5px, 2cqi); gap:10px; }
.bc-bas b { display:block; font-weight:600; font-size:1.12em; }
.bc-bas .droite { text-align:right; }
.bc-qr { width:max(32px, 9.5cqi); height:max(32px, 9.5cqi); background:#fff; padding:3px; flex:none; }
.bc-qr svg { width:100%; height:100%; display:block; }
.bc-bon.t-creme { --bon-or:#8A7B5C; background:radial-gradient(circle at 85% 10%,#fff 0,transparent 45%),linear-gradient(135deg,#FAF8F4,#EBE2D0); color:#2C2418; }
.bc-bon.t-nuit  { --bon-or:#C9B48A; background:radial-gradient(circle at 80% 0%,#4a3c2a 0,transparent 55%),linear-gradient(135deg,#191612,#2f271d); color:#F5EEE1; }
.bc-bon.t-foret { --bon-or:#DCC898; background:radial-gradient(circle at 80% 0%,#6f8f76 0,transparent 55%),linear-gradient(135deg,#253b2e,#46624f); color:#F3F0E6; }
.bc-brillance { position:absolute; inset:0; background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.25) 45%,transparent 60%); transform:translateX(-100%); pointer-events:none; }
.bc-bon.flash .bc-brillance { animation:bcBrille 1s ease; }
@keyframes bcBrille { to { transform:translateX(100%); } }
.bc-infos { margin-top:20px; display:grid; gap:9px; font-size:13px; color:var(--bc-brun2); }
.bc-infos div { display:flex; gap:10px; align-items:center; }
.bc-i { width:30px; height:30px; border-radius:50%; background:var(--bc-creme2); color:var(--bc-or); flex:none; padding:7px; }

/* Confirmation */
.bc-merci { text-align:center; padding:10px 0; }
.bc-merci-ico { width:76px; height:76px; margin:0 auto 6px; border-radius:50%; background:var(--bc-creme2); color:var(--bc-or); padding:19px; animation:bcPop .6s cubic-bezier(.2,1.6,.4,1); }
@keyframes bcPop { from { transform:scale(.4); opacity:0; } to { transform:none; opacity:1; } }
.bc-code { display:inline-block; font-family:'Courier New', monospace; font-size:21px; letter-spacing:.12em; background:var(--bc-creme2); padding:10px 18px; margin:14px 0; border:0.5px dashed var(--bc-or); }
.bc-demo { background:#FBF6EA; border:0.5px solid #E5D7B5; color:#76612F; padding:10px 14px; font-size:12.5px; margin-bottom:20px; }
.bc-confettis { position:fixed; inset:0; pointer-events:none; z-index:300; }

@media (max-width: 940px) {
  .bc-zone { grid-template-columns:1fr; }
  .bc-apercu { position:static; order:1; max-width:520px; margin:0 auto; width:100%; }
}
@media (max-width: 600px) {
  .bc-carte { padding:22px 18px; }
  .bc-grille, .bc-choix.deux { grid-template-columns:1fr; }
  .bc-etapes li { font-size:9px; letter-spacing:.5px; }
  .bc-h2 { font-size:26px; }
  .bc-nav .bc-btn { padding:14px 20px; }
  .bc-sous-choix { margin-left:0; }
}
@media (prefers-reduced-motion: reduce) {
  .bc *, .bc { animation:none !important; transition:none !important; }
  .bc-bon:hover { transform:none; }
}

.bc-note{white-space:pre-line;line-height:1.35;font-size:9px;letter-spacing:.02em;text-align:center;opacity:.75;margin-top:6px;font-style:italic}.bc-note:empty{display:none}

.bc-etoile{color:var(--bc-err);font-weight:700}.bc-msg-case{display:none;margin-top:2px;font-size:12px;color:var(--bc-err)}.bc-case.erreur .bc-msg-case{display:block}.bc-case.erreur input{outline:2px solid var(--bc-err);outline-offset:1px}

.bc-legende{font-size:12px;color:var(--bc-brun2);margin:-6px 0 14px}.bc-legende:first-letter{color:var(--bc-err);font-weight:700}
