/* Boutique : commande, avis, newsletter (variables définies dans index.html) */
.cart-checkout{ padding:0 1.4rem 1.4rem; }
.cart-checkout .btn{ width:100%; text-align:center; cursor:pointer; }
.cart-checkout .btn:disabled{ opacity:.45; cursor:not-allowed; }
.cart-hint{ margin-top:.5rem; font-size:.76rem; color:rgba(42,33,23,.62); }

.nl-signup .wrap{ display:flex; justify-content:center; }
#nl-form{ margin-top:1.3rem; display:flex; gap:.6rem; flex-wrap:wrap; }
#nl-form input[type=email]{ flex:1; min-width:180px; padding:.7rem .8rem; border:1.5px solid rgba(42,33,23,.35); border-radius:2px; font-family:inherit; font-size:.92rem; background:var(--paper-alt); color:var(--ink); }
#nl-form button{ background:var(--ink); color:var(--paper); border:none; padding:.7rem 1.1rem; border-radius:2px; font-size:.9rem; font-weight:600; }
#nl-form button:disabled{ opacity:.5; }
.hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }
.nl-consent{ display:flex; gap:.5rem; align-items:flex-start; margin-top:.8rem; font-size:.8rem; color:rgba(42,33,23,.75); }
.nl-consent input{ margin-top:.2rem; }

.stars{ color:var(--mustard,#c9962b); letter-spacing:1px; white-space:nowrap; }
.stars .off{ opacity:.3; }
.rating-line{ font-size:.8rem; color:rgba(42,33,23,.7); margin:.2rem 0 .1rem; min-height:1.1em; }
.rating-line .stars{ margin-right:.35rem; }

.reviews{ margin-top:1.4rem; padding-top:1rem; border-top:1px solid var(--line); }
.reviews h3{ font-size:1.05rem; margin-bottom:.6rem; }
.review{ padding:.7rem 0; border-bottom:1px solid var(--line); font-size:.9rem; }
.review .who{ font-weight:600; }
.review .meta{ font-size:.75rem; color:rgba(42,33,23,.6); }
.review .badge{ font-size:.7rem; background:var(--sage); color:var(--paper); padding:.05rem .4rem; border-radius:2px; margin-left:.3rem; }
.review p{ margin-top:.3rem; color:var(--ink); }
.review .reply{ margin-top:.4rem; padding:.4rem .6rem; background:var(--paper-alt); border-left:3px solid var(--sage); font-size:.84rem; }
.review-form{ margin-top:.9rem; display:grid; gap:.5rem; }
.review-form input[type=text], .review-form input[type=email], .review-form textarea{ padding:.6rem .7rem; border:1.5px solid rgba(42,33,23,.35); border-radius:2px; font-family:inherit; font-size:.9rem; background:var(--paper-alt); color:var(--ink); width:100%; }
.review-form button[type=submit]{ background:var(--ink); color:var(--paper); border:none; padding:.65rem 1rem; border-radius:2px; font-weight:600; justify-self:start; }
.star-pick{ display:flex; gap:.15rem; }
.star-pick button{ background:none; border:none; font-size:1.6rem; line-height:1; color:rgba(42,33,23,.3); padding:0 .1rem; }
.star-pick button.on{ color:var(--mustard,#c9962b); }

.co-overlay{ position:fixed; inset:0; background:rgba(20,14,8,.6); z-index:120; display:none; }
.co-overlay.open{ display:block; }
.co-dialog{ position:fixed; z-index:121; top:0; right:0; bottom:0; left:0; margin:auto; width:min(640px,100vw); max-height:100dvh; background:var(--paper); color:var(--ink); overflow-y:auto; display:none; border:1.5px solid var(--ink); box-shadow:8px 8px 0 var(--sage); height:fit-content; }
.co-dialog.open{ display:block; }
@media (max-width:680px){ .co-dialog{ height:100dvh; border:none; box-shadow:none; } }
.co-head{ display:flex; justify-content:space-between; align-items:center; padding:1.2rem 1.4rem; border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--paper); z-index:2; }
.co-head h2{ font-size:1.3rem; }
.co-head button{ background:none; border:none; font-size:1.6rem; color:var(--ink); line-height:1; }
.co-body{ padding:1.2rem 1.4rem 1.6rem; display:grid; gap:1rem; }
.co-body fieldset{ border:1px solid var(--line); padding:.8rem 1rem 1rem; display:grid; gap:.6rem; }
.co-body legend{ font-family:'Fraunces',serif; padding:0 .4rem; }
.co-body label{ display:grid; gap:.2rem; font-size:.82rem; font-weight:600; }
.co-body input[type=text], .co-body input[type=email], .co-body input[type=tel], .co-body textarea, .co-body select{ padding:.6rem .7rem; border:1.5px solid rgba(42,33,23,.35); border-radius:2px; font-family:inherit; font-size:.92rem; background:var(--paper-alt); color:var(--ink); width:100%; font-weight:400; }
.co-row{ display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.co-row.npa{ grid-template-columns:110px 1fr; }
@media (max-width:480px){ .co-row{ grid-template-columns:1fr; } .co-row.npa{ grid-template-columns:110px 1fr; } }
.co-body label.inline{ display:flex; gap:.5rem; align-items:flex-start; font-weight:400; font-size:.86rem; }
.co-body label.inline input{ margin-top:.2rem; }
.co-radio{ display:flex; gap:1rem; flex-wrap:wrap; }
.co-sum table{ width:100%; border-collapse:collapse; font-size:.9rem; }
.co-sum td{ padding:.3rem 0; border-bottom:1px solid var(--line); }
.co-sum td.r{ text-align:right; white-space:nowrap; font-family:'Fraunces',serif; }
.co-sum tr.tot td{ font-weight:600; font-size:1.05rem; border-bottom:none; padding-top:.6rem; }
.co-sum .ship-note{ font-size:.78rem; color:rgba(42,33,23,.65); margin-top:.4rem; }
.co-promo{ display:flex; gap:.5rem; }
.co-promo button, .co-submit{ background:var(--ink); color:var(--paper); border:none; padding:.6rem 1rem; border-radius:2px; font-weight:600; }
.co-submit{ background:var(--brick); padding:.85rem 1.2rem; font-size:1rem; }
.co-submit:disabled{ opacity:.5; }
.co-msg{ font-size:.86rem; min-height:1.1em; }
.co-msg.err{ color:var(--brick); } .co-msg.ok{ color:var(--sage); }
.co-done{ padding:1.6rem 1.4rem 2rem; display:grid; gap:.8rem; }
.co-done pre{ white-space:pre-wrap; font-family:inherit; background:var(--paper-alt); padding:.8rem 1rem; border-left:3px solid var(--sage); font-size:.9rem; }
