*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --cream:#F2EAE0;--cream-d:#E6DDD0;--cream-l:#FAF6F1;
  --noir:#14100C;--charbon:#3C3835;
  --bdx:#6E1828;--bdx-d:#521220;
  --or:#C4A44A;--or-l:#D9BC74;
  --gris:#8A8278;--gris-l:#C0BBB5;
  --green:#2D6A4F;
  --fd:'Cormorant Garamond',Georgia,serif;
  --fb:'DM Sans',system-ui,sans-serif;
  --e:.3s ease;
}
html{scroll-behavior:smooth}
body{font-family:var(--fb);background:var(--cream-l);color:var(--noir);line-height:1.7}
nav{position:fixed;top:0;left:0;right:0;z-index:500;display:flex;align-items:center;justify-content:space-between;padding:1rem 4rem;background:rgba(250,246,241,.97);backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(196,164,74,.2)}
.nl{display:flex;align-items:center;gap:.9rem;text-decoration:none}
.nav-logo-mark{height:50px;width:auto}
.nav-logo-text{height:32px;width:auto}
.nl-name{font-family:var(--fd);font-size:1.1rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--or);display:block}
.nl-sub{font-size:.52rem;letter-spacing:.3em;text-transform:uppercase;color:var(--bdx);display:block;margin-top:.1rem}
.nlinks{display:flex;align-items:center;gap:2.5rem;list-style:none}
.nlinks a{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--charbon);text-decoration:none;transition:color var(--e)}
.nlinks a:hover{color:var(--bdx)}
a.back-link{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);text-decoration:none;display:flex;align-items:center;gap:.4rem;transition:color var(--e)}
a.back-link:hover{color:var(--charbon)}

/* PAGE HEADER */
.page-header{background:var(--charbon);padding:9rem 4rem 4.5rem;text-align:center}
.page-header h1{font-family:var(--fd);font-size:clamp(2.5rem,5vw,4.5rem);font-weight:300;color:var(--cream-l);margin-bottom:.8rem}
.page-header h1 em{font-style:italic;color:var(--or)}
.page-header p{font-size:.9rem;color:rgba(250,246,241,.55);max-width:500px;margin:0 auto}

/* LAYOUT */
.page-body{max-width:1200px;margin:0 auto;padding:4rem;display:grid;grid-template-columns:1fr 380px;gap:3.5rem;align-items:start}

/* PRODUCTS */
.section-title{font-family:var(--fd);font-size:1.6rem;font-weight:300;font-style:italic;color:var(--charbon);margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--cream-d)}
.prod-list{display:flex;flex-direction:column;gap:2px;margin-bottom:3rem}
.prod-item{background:var(--cream-l);border:1px solid var(--cream-d);padding:1.8rem 2rem;display:grid;grid-template-columns:auto 1fr auto;gap:1.8rem;align-items:center;transition:border-color var(--e),box-shadow var(--e)}
.prod-item:hover{border-color:rgba(196,164,74,.3);box-shadow:0 4px 20px rgba(20,16,12,.06)}
.prod-bottle{flex-shrink:0}
.bottle-img{width:auto;object-fit:contain;display:block}
.prod-info .pv{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bdx);margin-bottom:.3rem}
.prod-info .pn{font-family:var(--fd);font-size:1.2rem;font-style:italic;color:var(--charbon);margin-bottom:.2rem}
.prod-info .pb{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gris)}
.prod-info .pd{font-size:.78rem;line-height:1.7;color:var(--gris);margin-top:.6rem;max-width:420px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.prod-right{display:flex;flex-direction:column;align-items:flex-end;gap:1rem}
.prod-px{text-align:right}
.prod-px-val{font-family:var(--fd);font-size:1.6rem;font-weight:400;color:var(--charbon);line-height:1}
.prod-px-old{font-size:.9rem;text-decoration:line-through;color:var(--gris-l);display:block;margin-bottom:.1rem}
.prod-px-lbl{font-size:.56rem;color:var(--gris);display:block;margin-top:.15rem}
.qty-ctrl{display:flex;align-items:center;gap:0;border:1px solid var(--cream-d)}
.qty-btn{background:none;border:none;width:34px;height:34px;cursor:pointer;font-size:1.1rem;color:var(--charbon);display:flex;align-items:center;justify-content:center;transition:background var(--e)}
.qty-btn:hover{background:var(--cream-d)}
.qty-val{width:36px;text-align:center;font-size:.88rem;font-weight:500;color:var(--charbon)}
.badge-promo{background:var(--or);color:#fff;font-size:.5rem;letter-spacing:.14em;text-transform:uppercase;padding:.22rem .6rem;display:inline-block;margin-left:.5rem;vertical-align:middle}

/* CART SUMMARY */
.cart-box{background:var(--cream-l);border:1px solid var(--cream-d);position:sticky;top:5.5rem;padding:2rem}
.cart-box h2{font-family:var(--fd);font-size:1.4rem;font-weight:300;font-style:italic;color:var(--charbon);margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--cream-d)}
.cart-lines{display:flex;flex-direction:column;gap:.8rem;min-height:60px}
.cart-line{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;color:var(--gris)}
.cart-line .cn{color:var(--charbon);font-weight:500}
.cart-line .cpx{font-family:var(--fd);font-size:.95rem;color:var(--charbon)}
.cart-empty-msg{font-family:var(--fd);font-style:italic;color:var(--gris-l);font-size:.95rem;text-align:center;padding:1.5rem 0}
.cart-divider{border:none;border-top:1px solid var(--cream-d);margin:1.2rem 0}
.cart-total-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1.5rem}
.cart-total-row.compact{margin-bottom:.6rem}
.cart-total-row.shipping{margin-bottom:1.2rem}
.cart-total-lbl{font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
.cart-total-val{font-family:var(--fd);font-size:1.8rem;font-weight:400;color:var(--charbon)}
.cart-total-val.subtotal{font-size:1.4rem}
.cart-shipping-val{font-family:var(--fd);font-size:1.1rem;color:var(--gris)}
.cart-grand-row{border-top:1px solid var(--cream-d);padding-top:1rem;display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1.5rem}
.cart-grand-lbl{font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--charbon);font-weight:500}
.cart-sub{font-size:.72rem;color:var(--gris);margin-bottom:1.5rem;line-height:1.6}

/* FORM */
.form-section{margin-bottom:3rem}
.form-section h2{font-family:var(--fd);font-size:1.6rem;font-weight:300;font-style:italic;color:var(--charbon);margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--cream-d)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
.form-row.full{grid-template-columns:1fr}
.form-group{display:flex;flex-direction:column;gap:.4rem}
.form-group label{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gris)}
.form-group input,.form-group select,.form-group textarea{font-family:var(--fb);font-size:.88rem;color:var(--charbon);background:var(--cream-l);border:1px solid var(--cream-d);padding:.75rem 1rem;outline:none;transition:border-color var(--e);width:100%}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--bdx)}
.form-group textarea{resize:vertical;min-height:80px}
.form-note{font-size:.72rem;color:var(--gris);line-height:1.6;margin-top:.5rem}
.form-note a,.text-link{color:var(--bdx)}

/* LIVRAISON */
.livraison-section{margin-bottom:3rem}
.livraison-section h2{font-family:var(--fd);font-size:1.6rem;font-weight:300;font-style:italic;color:var(--charbon);margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--cream-d)}
.liv-options{display:flex;flex-direction:column;gap:.6rem}
.liv-opt{display:flex;align-items:flex-start;gap:1.2rem;padding:1.2rem 1.4rem;border:1.5px solid var(--cream-d);cursor:pointer;transition:border-color var(--e),background var(--e);position:relative}
.liv-opt:hover{border-color:var(--gris-l);background:var(--cream)}
.liv-opt.selected{border-color:var(--bdx);background:rgba(110,24,40,.04)}
.liv-opt.disabled{opacity:.38;cursor:not-allowed;pointer-events:none}
.liv-radio{width:18px;height:18px;border:2px solid var(--gris-l);border-radius:50%;flex-shrink:0;margin-top:.15rem;display:flex;align-items:center;justify-content:center;transition:border-color var(--e)}
.liv-opt.selected .liv-radio{border-color:var(--bdx)}
.liv-radio-dot{width:8px;height:8px;border-radius:50%;background:var(--bdx);display:none}
.liv-opt.selected .liv-radio-dot{display:block}
.liv-body{flex:1}
.liv-title{font-size:.85rem;font-weight:500;color:var(--charbon);margin-bottom:.2rem}
.liv-desc{font-size:.75rem;color:var(--gris);line-height:1.55}
.liv-badge{position:absolute;top:.9rem;right:1rem;font-family:var(--fd);font-size:1rem;font-weight:400;color:var(--charbon)}
.liv-badge.free{color:var(--green);font-size:.72rem;letter-spacing:.06em;font-family:var(--fb);font-weight:600}
.liv-idf-note{font-size:.68rem;color:var(--gris);margin-top:.9rem;padding:.7rem 1rem;background:var(--cream-d);display:none}
.liv-idf-note.visible{display:block}

/* STRIPE */
.stripe-block{background:var(--cream-l);border:1px solid var(--cream-d);padding:1.5rem 2rem;margin-bottom:2rem}
.stripe-block .stripe-hd{font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gris);margin-bottom:1rem;display:flex;align-items:center;gap:.6rem}
.stripe-block .stripe-hd::after{content:'Sécurisé';font-size:.55rem;background:#2D6A4F;color:#fff;padding:.18rem .55rem;border-radius:2px}
.stripe-copy{font-size:.84rem;color:var(--charbon);line-height:1.65;margin-bottom:.7rem}
.stripe-note{font-size:.72rem;color:var(--gris);line-height:1.55}
.payment-element-wrap{border-top:1px solid var(--cream-d);margin-top:1.2rem;padding-top:1.2rem}
#card-errors{color:#C0392B;font-size:.72rem;margin-top:.5rem;min-height:1.2em}

.btn-checkout{width:100%;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cream-l);background:var(--bdx);border:none;padding:1.2rem;cursor:pointer;transition:background var(--e);display:flex;align-items:center;justify-content:center;gap:.8rem;margin-top:1.2rem}
.btn-checkout:hover{background:var(--bdx-d)}
.btn-checkout:disabled{opacity:.4;cursor:not-allowed}
.checkout-secure{font-size:.6rem;color:var(--gris);text-align:center;margin-top:.8rem;display:flex;align-items:center;justify-content:center;gap:.4rem}
.success-msg{display:none;background:#F0F7F4;border:1px solid #2D6A4F;padding:1.5rem 2rem;margin-top:1.5rem}
.success-msg h3{font-family:var(--fd);font-size:1.4rem;color:#2D6A4F;margin-bottom:.5rem}
.success-msg p{font-size:.82rem;color:var(--gris)}
#toast{position:fixed;bottom:2rem;right:2rem;background:var(--bdx);color:var(--cream-l);padding:.75rem 1.5rem;font-size:.68rem;letter-spacing:.06em;z-index:2000;opacity:0;transition:opacity .3s;pointer-events:none}
@media(max-width:960px){
  nav{padding:1rem 1.5rem}.nlinks{display:none}
  .page-body{grid-template-columns:1fr;padding:2rem 1.5rem}
  .cart-box{position:static}
  .form-row{grid-template-columns:1fr}
  .prod-item{grid-template-columns:auto 1fr;grid-template-rows:auto auto}
  .prod-right{flex-direction:row;align-items:center;grid-column:1/-1}
}
@media(max-width:600px){
  nav{padding:1rem 1.2rem}
  .page-header{padding:5.5rem 1.2rem 2rem}
  .page-header h1{font-size:1.8rem}
  .page-body{padding:1.5rem 1.2rem;gap:2rem}
  .cart-box{padding:1.5rem}
  .form-section{padding:1.5rem}
  .form-section h2{font-size:1rem}
  .prod-item{gap:.8rem}
  .prod-qty{flex-wrap:wrap}
  .btn-checkout{font-size:.65rem;padding:.9rem}
}
