
  body { padding-top:80px; }

  .breadcrumb { padding:1.5rem 0; font-family:var(--sans); font-size:.75rem; letter-spacing:.08em; color:var(--ink-muted); }
  .breadcrumb a { color:var(--ink-soft); text-decoration:none; transition:color 250ms; }
  .breadcrumb a:hover { color:var(--gold-deep); }
  .breadcrumb span { margin:0 .5rem; color:var(--ink-muted); }

  .cart-header { display:flex; justify-content:space-between; align-items:end; margin-bottom:3rem; flex-wrap:wrap; gap:1rem; padding-bottom:1.5rem; border-bottom:1px solid var(--line); }
  .cart-header h1 { font-family:var(--serif); font-weight:300; font-size:clamp(2.5rem, 4vw, 3.5rem); line-height:1; margin:0; }
  .cart-header .count { font-family:var(--serif); font-style:italic; font-size:1.25rem; color:var(--ink-soft); }

  .cart-grid { display:grid; grid-template-columns:1fr 400px; gap:4rem; align-items:start; }

  /* Lignes panier */
  .cart-line-page {
    display:grid; grid-template-columns:140px 1fr auto; gap:1.75rem;
    padding:2rem 0; border-bottom:1px solid var(--line);
    align-items:start;
  }
  .cart-line-page:first-child { padding-top:0; }
  .cart-line-page .ph { aspect-ratio:1; background-size:cover; background-position:center; }
  .cart-line-page h3 {
    font-family:var(--serif); font-weight:400; font-style:italic; font-size:1.5rem;
    color:var(--ink); margin:0 0 .5rem;
  }
  .cart-line-page .opts {
    font-family:var(--sans); font-size:.8125rem; color:var(--ink-soft);
    margin:0 0 .25rem; line-height:1.6;
  }
  .cart-line-page .opts b { font-weight:500; color:var(--ink); }
  .cart-line-page .availability {
    display:inline-flex; align-items:center; gap:.4rem;
    font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--success);
    margin-top:.5rem;
  }
  .cart-line-page .availability svg { width:12px; height:12px; }
  .cart-line-page .edit {
    display:inline-block; margin-top:.75rem; padding:.3rem 0;
    font-family:var(--sans); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase;
    color:var(--gold-deep); text-decoration:none; border-bottom:1px solid var(--gold);
  }
  .cart-line-page .edit:hover { color:var(--ink); border-color:var(--ink); }
  .cart-line-page .right {
    display:flex; flex-direction:column; align-items:flex-end; gap:1rem;
  }
  .cart-line-page .qty-stepper {
    display:flex; align-items:center; border:1px solid var(--border-strong); height:42px;
  }
  .cart-line-page .qty-stepper a,
  .cart-line-page .qty-stepper button {
    width:34px; height:100%; background:none; border:none; cursor:pointer; color:var(--ink);
    transition: background 250ms; font-size:1.1rem;
    display:flex; align-items:center; justify-content:center;
    text-decoration:none; user-select:none;
  }
  .cart-line-page .qty-stepper a:hover,
  .cart-line-page .qty-stepper button:hover { background:var(--blush-light); }
  .cart-line-page .qty-stepper input {
    width:40px; height:100%; border:none; text-align:center; background:none;
    font-family:var(--serif); font-weight:500; font-size:1rem;
    -webkit-appearance:none; -moz-appearance:textfield; appearance:none;
    padding:0; margin:0;
  }
  .cart-line-page .qty-stepper input::-webkit-outer-spin-button,
  .cart-line-page .qty-stepper input::-webkit-inner-spin-button {
    -webkit-appearance:none; margin:0;
  }
  .cart-line-page .qty-stepper input:focus { outline:none; }
  .cart-line-page .line-total {
    font-family:var(--serif); font-weight:500; font-size:1.375rem;
    color:var(--gold-deep); font-variant-numeric:lining-nums;
  }
  .cart-line-page .remove {
    background:none; border:none; cursor:pointer;
    font-family:var(--sans); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase;
    color:var(--ink-muted); padding:.4rem 0; transition: color 250ms;
    display:flex; align-items:center; gap:.4rem;
  }
  .cart-line-page .remove:hover { color:var(--error); }
  .cart-line-page .remove svg { width:14px; height:14px; }

  /* Bandeau message contact */
  .cart-msg {
    background:var(--blush-light); padding:1.5rem 2rem;
    display:flex; gap:1.25rem; align-items:center;
    margin-top:2rem;
  }
  .cart-msg-icon {
    width:48px; height:48px; flex-shrink:0;
    border-radius:50%; background:var(--ivory); display:flex; align-items:center; justify-content:center;
    color:var(--gold-deep);
  }
  .cart-msg-icon svg { width:22px; height:22px; }
  .cart-msg p { margin:0; font-size:.875rem; color:var(--ink); line-height:1.6; }
  .cart-msg p b { font-family:var(--serif); font-style:italic; font-weight:400; }
  .cart-msg a { color:var(--gold-deep); border-bottom:1px solid; text-decoration:none; }

  /* Summary */
  .summary { position:sticky; top:100px; background:var(--white); border:1px solid var(--line); padding:2rem; }
  .summary h2 {
    font-family:var(--serif); font-weight:400; font-size:1.625rem;
    margin:0 0 1.5rem; color:var(--ink); padding-bottom:1rem; border-bottom:1px solid var(--line);
  }

  .summary-line {
    display:flex; justify-content:space-between; align-items:baseline;
    padding:.6rem 0; font-family:var(--sans); font-size:.9375rem; color:var(--ink-soft);
  }
  .summary-line.note { font-size:.75rem; color:var(--ink-muted); padding:.25rem 0; }
  .summary-line b { font-weight:500; color:var(--ink); }

  /* Promo code */
  .promo-row {
    display:flex; gap:0; margin:1.5rem 0;
    border:1px solid var(--border-strong);
  }
  .promo-row input {
    flex:1; border:none; padding:.85rem 1rem; background:transparent;
    font-family:var(--sans); font-size:.875rem;
  }
  .promo-row input:focus { outline:none; }
  .promo-row button {
    background:var(--ink); color:var(--ivory); border:none; padding:0 1.25rem;
    font-family:var(--sans); font-weight:500; font-size:.7rem; letter-spacing:.12em;
    text-transform:uppercase; cursor:pointer;
    transition: background 250ms var(--ease-elegant);
  }
  .promo-row button:hover { background:var(--gold-deep); }

  /* Delivery choice */
  .delivery { margin:1.5rem 0; padding:1.25rem; background:var(--blush-light); }
  .delivery h4 {
    font-family:var(--sans); font-weight:500; font-size:.7rem; letter-spacing:.15em;
    text-transform:uppercase; color:var(--ink); margin:0 0 .9rem;
  }
  .delivery-opt {
    display:flex; gap:.75rem; align-items:flex-start; padding:.85rem; cursor:pointer;
    background:var(--ivory); margin-bottom:.5rem; border:1px solid transparent;
    transition: border-color 250ms;
  }
  .delivery-opt.is-active { border-color:var(--gold); }
  .delivery-opt input { display:none; }
  .delivery-opt .radio {
    width:18px; height:18px; border:1px solid var(--border-strong); border-radius:50%;
    flex-shrink:0; margin-top:1px; display:flex; align-items:center; justify-content:center;
  }
  .delivery-opt .radio::after { content:""; width:8px; height:8px; border-radius:50%; background:var(--gold); opacity:0; transition:opacity 200ms; }
  .delivery-opt.is-active .radio { border-color:var(--gold); }
  .delivery-opt.is-active .radio::after { opacity:1; }
  .delivery-opt .info {  flex:1; }
  .delivery-opt .info .name { font-family:var(--serif); font-style:italic; font-size:1rem; color:var(--ink); }
  .delivery-opt .info .desc { font-size:.75rem; color:var(--ink-soft); margin-top:.15rem; }
  .delivery-opt .price { font-family:var(--serif); font-weight:500; color:var(--gold-deep); }

  .summary-total {
    display:flex; justify-content:space-between; align-items:baseline;
    padding:1.25rem 0; border-top:1px solid var(--line); margin-top:.5rem;
  }
  .summary-total .lbl { font-family:var(--sans); font-weight:500; font-size:.75rem; letter-spacing:.15em; text-transform:uppercase; color:var(--ink); }
  .summary-total .val { font-family:var(--serif); font-weight:500; font-size:2.25rem; color:var(--gold-deep); font-variant-numeric:lining-nums; line-height:1; }

  .summary-tax { font-size:.7rem; color:var(--ink-muted); text-align:right; }

  /* Réassurance */
  .summary-reassure {
    margin-top:1.5rem; display:flex; flex-direction:column; gap:.5rem;
  }
  .summary-reassure li {
    display:flex; align-items:center; gap:.5rem; font-size:.75rem; color:var(--ink-soft);
  }
  .summary-reassure li svg { width:14px; height:14px; color:var(--success); }

  @media (max-width:1024px) {
    .cart-grid { grid-template-columns:1fr; gap:2rem; }
    .summary { position:static; }
    .cart-line-page { grid-template-columns:100px 1fr; }
    .cart-line-page .right { grid-column:1 / -1; flex-direction:row; justify-content:space-between; align-items:center; }
  }
