/* ══ Bouton acheter (lightbox) ══ */
/* ─── Bouton acheter (lightbox) ──────────────────────────── */
#lb-buy {
  position:absolute; bottom:1.2rem; right:1.4rem;
  background:var(--accent); color:var(--on-accent);
  border:none; border-radius:var(--r); cursor:pointer;
  padding:.5em 1.3em; font-family:var(--sans);
  font-size:.72rem; font-weight:400; letter-spacing:.1em; text-transform:uppercase;
  transition:background var(--t);
}
#lb-buy:hover { background:var(--accent2); }

/* ══ Modale commande ══ */
/* ─── Modal commande ─────────────────────────────────────── */
.buy-modal { max-width:500px; overflow-y:auto; max-height:90vh; }
.buy-modal h3 { margin-bottom:.25rem; }
.buy-photo-ref { font-size:.72rem; color:var(--text-dim); letter-spacing:.1em; margin-bottom:1.5rem; }
.buy-step { margin-bottom:1.1rem; }
.buy-step-lbl { display:block; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); margin-bottom:.4rem; }
.buy-step > label { display:block; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); margin-bottom:.4rem; }
.buy-opts { display:flex; flex-direction:column; gap:.45rem; }
.buy-opt-row { display:flex; align-items:center; gap:.7rem; font-size:.84rem; cursor:pointer; padding:.35rem 0; }
.buy-opt-row input[type=checkbox] { cursor:pointer; accent-color:var(--accent); width:14px; height:14px; flex-shrink:0; }
.buy-opt-price { margin-left:auto; font-size:.8rem; color:var(--accent); white-space:nowrap; font-family:var(--serif); }
.buy-shipping-info { font-size:.72rem; color:var(--text-dim); margin-top:.35rem; font-style:italic; min-height:1em; }
.buy-total-block { margin-top:1.4rem; padding:1rem 0; border-top:1px solid var(--border); display:flex; align-items:baseline; justify-content:space-between; }
.buy-total-lbl { font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--text-mid); }
.buy-total-val { font-family:var(--serif); font-size:2rem; font-weight:300; color:var(--accent2); }
.buy-promo-row { display:flex; gap:.5rem; margin-top:.3rem; }
.buy-promo-row input { flex:1; font-size:.82rem; }
.buy-promo-msg { font-size:.74rem; margin-top:.3rem; min-height:1.1em; }
.buy-promo-msg.ok  { color:var(--success); }
.buy-promo-msg.err { color:var(--error); }

/* ══ Bon cadeau ══ */
/* ─── Bon cadeau ────────────────────────────────────────────── */
.gift-modal { max-width:540px; overflow-y:auto; max-height:92vh; }
.gift-card { position:relative; background:var(--gift-grad); border:2px solid var(--accent); border-radius:14px; padding:2rem 2.2rem 1.6rem; margin-bottom:1.8rem; overflow:hidden; box-shadow:var(--gift-glow); }
.gift-card::before { content:''; position:absolute; inset:8px; border:1px solid var(--accent-soft); border-radius:8px; pointer-events:none; }
.gift-card-corner { position:absolute; font-size:1.1rem; color:var(--accent-soft); }
.gift-card-corner.tl { top:14px; left:14px; }
.gift-card-corner.tr { top:14px; right:14px; }
.gift-card-corner.bl { bottom:14px; left:14px; }
.gift-card-corner.br { bottom:14px; right:14px; }
.gift-card-brand { font-family:var(--serif); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--accent); margin-bottom:.2rem; }
/* La police d'écriture manuscrite « Amsterdam » n'est PAS utilisée ici,
   volontairement : ses jambages débordent et viennent chevaucher le
   montant. Le titre reste en Cormorant, comme depuis l'origine.
   (Le CSS d'avant août 2026 demandait 'Amsterdam 400', un nom de famille
   qui n'existe pas — il retombait donc déjà sur var(--serif). Renommer
   cette valeur « par propreté » a changé l'apparence de la carte.) */
.gift-card-title {
  font-family:var(--serif); font-size:2.15rem; font-weight:400;
  color:var(--text); letter-spacing:.14em; line-height:1.15;
  margin:.5rem 0 .2rem;
}
.gift-card-sep { width:48px; height:1px; background:var(--accent-soft); margin:.9rem 0 .8rem; }
.gift-card-amount { font-family:var(--serif); font-size:2.4rem; font-weight:300; color:var(--accent); letter-spacing:.03em; line-height:1.2; min-height:2.9rem; }
.gift-card-sub { font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--text-mid); margin-top:.9rem; }
.gift-card-validity { font-size:.63rem; color:var(--accent-soft); margin-top:.4rem; letter-spacing:.04em; font-style:italic; }
.gift-amount-chips { display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:.7rem; }
.gift-amount-chip { padding:.32em .85em; border:1px solid var(--border2); border-radius:var(--r); background:var(--bg3); color:var(--text-mid); font-size:.8rem; cursor:pointer; transition:all var(--t); user-select:none; }
.gift-amount-chip:hover { border-color:var(--accent); color:var(--accent); }
.gift-amount-chip.on { border-color:var(--accent); background:var(--accent-bg); color:var(--accent); font-weight:600; }
.gift-delivery-opts { display:flex; flex-direction:column; gap:.45rem; }
.gift-delivery-opts label { display:flex; align-items:center; gap:.7rem; font-size:.84rem; cursor:pointer; padding:.35rem 0; }
.gift-delivery-opts input[type=radio] { cursor:pointer; accent-color:var(--accent); width:14px; height:14px; flex-shrink:0; }

/* ══ Lien FAQ dans la modale commande ══ */
/* ─── Buy opt FAQ link ───────────────────────────────────── */
.buy-opt-faq { color:var(--accent); font-size:.76em; text-decoration:underline; white-space:nowrap; }
.buy-opt-faq:hover { opacity:.7; }
