:root{
    --bg:#FAF7F2;
    --panel:#F1EAE1;
    --panel-2:#EAE1D5;
    --ink:#4A2E2E;
    --ink-dim: rgba(74,46,46,0.72);
    --ink-faint: rgba(74,46,46,0.45);
    --bordeaux:#C4122E;
    --bordeaux-light:#E14D63;
    --brass:#8C6A46;
    --brass-dim: rgba(140,106,70,0.55);
    --line: rgba(74,46,46,0.16);
    --on-dark: #FBF8F4;
    --radius: 2px;
    --promo-height: 0px;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth; background-color:#FAF7F2; color-scheme:light;}
  body{
    background-color:var(--bg);
    color:var(--ink);
    font-family:'Jost', 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji', sans-serif;
    font-weight:300;
    overflow-x:hidden;
    padding-top:var(--promo-height, 0px);
    min-height:100vh;
  }
  h1,h2,h3{
    font-family:'Fraunces', serif;
    font-weight:400;
    letter-spacing:0.01em;
  }
  .eyebrow{
    font-family:'Jost', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.28em;
    font-size:0.72rem;
    color:var(--bordeaux);
    font-weight:500;
  }
  a{color:inherit;text-decoration:none;}
  img{max-width:100%; display:block;}

  /* ---------- Editable placeholder markers ---------- */
  .todo{
    outline:1px dashed var(--brass-dim);
    outline-offset:4px;
    position:relative;
  }
  .todo::after{
    content:"À personnaliser";
    position:absolute;
    top:-1.4rem; left:0;
    font-family:'Jost',sans-serif;
    font-size:0.62rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--brass);
    opacity:0.9;
    white-space:nowrap;
  }

  /* ---------- Signature "fil rouge" motif ---------- */
  .strand-divider{
    width:100%;
    height:80px;
    display:block;
  }
  .strand-path{
    fill:none;
    stroke:url(#strandGradient);
    stroke-width:1.4;
    stroke-linecap:round;
    stroke-dasharray:1400;
    stroke-dashoffset:1400;
    animation:draw 2.4s ease-out forwards;
    animation-play-state:paused;
  }
  .strand-divider.in-view .strand-path{animation-play-state:running;}
  @keyframes draw{ to{ stroke-dashoffset:0; } }

  /* ---------- Skip link (a11y) ---------- */
  .skip-link{
    position:absolute; left:-9999px; top:0;
    background:var(--bordeaux); color:var(--on-dark);
    padding:0.8rem 1.2rem; z-index:1000;
  }
  .skip-link:focus{ left:1rem; top:1rem; }

  /* ---------- Promo bar ---------- */
  .promo-bar{
    position:fixed; top:0; left:0; right:0;
    z-index:101;
    background:var(--bordeaux);
    color:var(--on-dark);
    text-align:center;
    padding:0.7rem 1rem;
    font-size:0.8rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    font-weight:600;
  }
  .promo-bar span{ opacity:0.85; font-weight:300; letter-spacing:0.04em; text-transform:none; margin-left:0.4rem; }
  .promo-countdown{
    display:inline-flex; gap:0.35rem;
    font-weight:600 !important; opacity:1 !important;
    letter-spacing:0.02em !important;
    font-variant-numeric:tabular-nums;
    font-size:0.85rem;
    background:var(--on-dark);
    color:var(--bordeaux);
    padding:0.25rem 0.7rem;
    border-radius:999px;
    margin-left:0.6rem;
  }
  body.no-promo{ padding-top:0; }
  body.no-promo nav{ top:0; }

  /* ---------- Nav ---------- */
  nav{
    position:fixed; top:var(--promo-height, 0px); left:0; right:0;
    display:flex; justify-content:space-between; align-items:center;
    padding:1.6rem clamp(1.5rem,5vw,4rem);
    z-index:100;
    background:rgba(250,247,242,0.88);
    backdrop-filter:blur(6px);
    border-bottom:2px solid var(--bordeaux);
  }
  .logo-mark{
    font-family:'Fraunces', serif;
    font-size:1.15rem;
    letter-spacing:0.04em;
  }
  .logo-mark-img{
    height:44px;
    width:auto;
    display:block;
  }
  .nav-links{display:flex; gap:2.2rem; font-size:0.82rem; letter-spacing:0.05em;}
  .nav-links a{opacity:0.85; transition:opacity 0.3s;}
  .nav-links a:hover{opacity:1;}
  @media (max-width:640px){ .nav-links{display:none;} }

  /* ---------- Menu mobile ---------- */
  .hamburger{
    display:none;
    flex-direction:column; justify-content:center; gap:5px;
    width:30px; height:24px;
    background:none; border:none; cursor:pointer; padding:0;
  }
  .hamburger span{
    display:block; height:2px; width:100%;
    background:var(--ink); border-radius:2px;
    transition:transform 0.3s ease, opacity 0.3s ease;
  }
  .hamburger.is-active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .hamburger.is-active span:nth-child(2){ opacity:0; }
  .hamburger.is-active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  @media (max-width:640px){ .hamburger{display:flex;} }

  .mobile-nav{
    display:none;
    position:absolute; top:100%; left:0; right:0;
    background:var(--bg);
    border-bottom:2px solid var(--bordeaux);
    flex-direction:column;
    padding:0.5rem clamp(1.5rem,5vw,4rem) 1rem;
  }
  .mobile-nav.is-open{ display:flex; }
  .mobile-nav a{
    padding:1rem 0;
    font-size:1rem;
    border-bottom:1px solid var(--line);
  }
  .mobile-nav a:last-child{ border-bottom:none; }

  /* ---------- Hero ---------- */
  .hero{
    min-height:100vh;
    display:flex; flex-direction:column; justify-content:center; align-items:center;
    text-align:center;
    padding:clamp(6rem,16vh,8rem) 2rem 2rem;
    position:relative;
    background:
      radial-gradient(ellipse 70% 55% at 50% 18%, rgba(196,18,46,0.10), transparent 62%),
      var(--bg);
  }
  .hero h1{
    font-size:clamp(3rem, 9vw, 6.4rem);
    line-height:0.98;
    max-width:16ch;
  }
  .hero-logo-img{
    width:clamp(90px, 12vw, 130px);
    height:auto;
    margin-bottom:1.6rem;
  }
  .hero h1 .accent{ color:var(--bordeaux-light); font-style:italic; }
  .hero .tagline{
    margin-top:1.6rem;
    font-size:1.05rem;
    color:var(--ink-dim);
    max-width:32ch;
    font-weight:300;
  }
  .hero .eyebrow{margin-bottom:1.4rem;}
  .scroll-cue{
    position:absolute; bottom:2.4rem; left:50%; transform:translateX(-50%);
    font-size:0.68rem; letter-spacing:0.2em; text-transform:uppercase;
    color:var(--ink-faint);
    display:flex; flex-direction:column; align-items:center; gap:0.6rem;
  }
  .scroll-cue .bar{
    width:1px; height:36px;
    background:linear-gradient(var(--bordeaux-light), transparent);
    animation:pulse 2s ease-in-out infinite;
  }
  @keyframes pulse{ 0%,100%{opacity:0.3;} 50%{opacity:1;} }

  section{ padding:clamp(4rem,10vw,7rem) clamp(1.5rem,6vw,5rem); }

  /* ---------- About ---------- */
  .about{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4rem;
    align-items:center;
    max-width:1200px;
    margin:0 auto;
  }
  .about h2{ font-size:clamp(2.1rem,4vw,2.8rem); margin:0.8rem 0 1.4rem; }
  .about p{ color:var(--ink-dim); line-height:1.75; font-size:1rem; max-width:46ch;}
  .about-visual{
    aspect-ratio:4/5;
    border:1px solid var(--line);
    border-radius:var(--radius);
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(160deg, var(--panel), var(--panel-2));
    position:relative;
    overflow:hidden;
  }
  .about-visual::before{
    content:"";
    position:absolute; inset:0;
    border-left:2px solid var(--bordeaux);
    opacity:0.55;
  }
  .about-visual span{
    font-family:'Fraunces', serif;
    font-size:0.85rem;
    color:var(--ink-faint);
    text-align:center;
    padding:1rem;
    font-style:italic;
  }
  @media (max-width:800px){ .about{grid-template-columns:1fr;} }

  /* ---------- Collection ---------- */
  .collection-head{ text-align:center; max-width:640px; margin:0 auto 2.4rem; }
  .collection-head h2{ font-size:clamp(2.1rem,4vw,2.8rem); margin-top:0.8rem; }
  .collection-head p{ color:var(--ink-dim); margin-top:1rem; }

  .filter-bar{
    max-width:1200px; margin:0 auto 2.6rem;
    display:flex; flex-wrap:wrap; gap:0.7rem;
    justify-content:center;
  }
  .filter-chip{
    font-family:'Jost', sans-serif;
    font-size:0.76rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    padding:0.55rem 1.15rem;
    border:1px solid var(--line);
    border-radius:999px;
    background:transparent;
    color:var(--ink-dim);
    cursor:pointer;
    transition:border-color 0.25s, color 0.25s, background 0.25s;
  }
  .filter-chip:hover{ border-color:var(--brass); color:var(--ink); }
  .filter-chip.active{
    background:var(--bordeaux);
    border-color:var(--bordeaux);
    color:var(--on-dark);
  }

  .grid{
    max-width:1200px; margin:0 auto;
    display:grid; grid-template-columns:repeat(2, 1fr); gap:0.9rem;
  }
  @media (min-width:640px){
    .grid{ grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:1.6rem; }
  }
  /* Cartes plus compactes tant qu'on est sur 2 colonnes (téléphone portrait) */
  @media (max-width:639px){
    .card-img .card-badge{ font-size:0.55rem; padding:0.28rem 0.5rem; top:0.5rem; left:0.5rem; }
    .card-img .card-img-hint{ font-size:0.52rem; padding:0.28rem 0.45rem; bottom:0.5rem; right:0.5rem; gap:0.2rem; }
    .card-img .card-img-hint svg{ width:10px; height:10px; }
    .card-body{ padding:0 0.8rem; }
    .card-body h3{ font-size:0.92rem; margin-bottom:0.2rem; }
    .card-body .price{ font-size:0.78rem; gap:0.4rem; flex-wrap:wrap; }
    .card-body .price .old{ font-size:0.7rem; }
    .discount-percent{ font-size:0.6rem; padding:0.1rem 0.32rem; }
    .add-to-cart-btn{ padding:0.5rem 0.6rem; font-size:0.66rem; margin-top:0.6rem; }
    .in-cart-qty{ font-size:0.6rem; margin-top:0.35rem; }
    .share-btn{ padding:0.4rem 0.6rem; font-size:0.62rem; margin-top:0.4rem; gap:0.3rem; }
    .share-btn svg{ width:11px; height:11px; }
  }
  .card{
    border:1px solid var(--line);
    padding-bottom:1.4rem;
    transition:border-color 0.35s, transform 0.35s, opacity 0.3s;
  }
  .card:hover{ border-color:var(--bordeaux); transform:translateY(-4px); }
  .card.is-hidden{ display:none; }
  .card-img{
    aspect-ratio:3/4;
    background:linear-gradient(160deg, var(--panel), var(--panel-2));
    display:flex; align-items:center; justify-content:center;
    margin-bottom:1.1rem;
    position:relative;
    overflow:hidden;
    cursor:pointer;
  }
  .card-img span{
    font-family:'Fraunces',serif; font-style:italic; font-size:0.78rem;
    color:var(--ink-faint); text-align:center; padding:1rem;
  }
  .card-img .card-img-hint{
    position:absolute; bottom:0.6rem; right:0.6rem;
    display:flex; align-items:center; gap:0.35rem;
    font-family:'Jost', sans-serif;
    font-style:normal;
    font-size:0.62rem; letter-spacing:0.06em; text-transform:uppercase;
    padding:0.35rem 0.6rem;
    background:rgba(74,46,46,0.72);
    color:var(--on-dark);
    border-radius:999px;
  }
  .card-img .card-badge{
    position:absolute; top:0.7rem; left:0.7rem;
    font-family:'Jost', sans-serif;
    font-style:normal;
    font-size:0.62rem; letter-spacing:0.1em; text-transform:uppercase;
    padding:0.35rem 0.7rem;
    border:1px solid var(--bordeaux-light);
    color:var(--on-dark);
    background:rgba(196,18,46,0.88);
    border-radius:2px;
  }
  .card-body{ padding:0 1.2rem; }
  .card-body h3{ font-size:1.15rem; font-weight:400; margin-bottom:0.3rem; cursor:pointer; }
  .card-body .price{ font-size:0.92rem; letter-spacing:0.02em; display:flex; gap:0.6rem; align-items:baseline; }
  .card-body .price .old{ color:var(--ink-faint); text-decoration:line-through; font-size:0.82rem; }
  .card-body .price .now{ color:var(--bordeaux); font-weight:500; }
  .card-body .price.no-sale .now{ color:var(--ink-dim); font-weight:400; }
  .discount-percent{
    font-size:0.68rem; font-weight:500; letter-spacing:0.03em;
    color:var(--on-dark); background:var(--bordeaux);
    padding:0.15rem 0.4rem; border-radius:999px;
    align-self:center;
  }

  /* ---------- Témoignages ---------- */
  .testimonials-grid{
    max-width:1200px; margin:0 auto;
    display:grid; grid-template-columns:repeat(4,1fr); gap:1.6rem;
  }
  @media (max-width:1000px){ .testimonials-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:600px){ .testimonials-grid{ grid-template-columns:1fr; } }
  .testimonial-card{
    border:1px solid var(--line);
    padding:1.6rem 1.5rem;
    display:flex; flex-direction:column; gap:0.9rem;
  }
  .testimonial-stars{ color:var(--bordeaux); font-size:0.85rem; letter-spacing:0.15em; }
  .testimonial-quote{
    font-family:'Fraunces',serif; font-style:italic;
    color:var(--ink-dim); font-size:0.98rem; line-height:1.6;
    flex:1;
  }
  .testimonial-author{
    display:flex; align-items:center; gap:0.7rem;
    padding-top:0.5rem; border-top:1px solid var(--line);
  }
  .testimonial-avatar{
    width:36px; height:36px; border-radius:50%;
    background:linear-gradient(160deg, var(--panel), var(--panel-2));
    display:flex; align-items:center; justify-content:center;
    overflow:hidden; flex:none;
    font-family:'Fraunces',serif; color:var(--bordeaux); font-size:0.9rem;
  }
  .testimonial-avatar img{ width:100%; height:100%; object-fit:cover; }
  .testimonial-name{ font-size:0.85rem; color:var(--ink); }

  /* ---------- Commander ---------- */
  .order{
    max-width:640px; margin:0 auto; text-align:center;
  }
  .order h2{ font-size:clamp(2.1rem,4vw,2.8rem); margin:0.8rem 0 1.2rem; }
  .order p{ color:var(--ink-dim); line-height:1.75; margin-bottom:2.2rem; }
  .order-steps{
    display:flex; flex-direction:column; gap:0.9rem;
    text-align:left; margin:2rem auto 0; max-width:440px;
    font-size:0.92rem; color:var(--ink-dim);
  }
  .order-steps div{ display:flex; gap:0.9rem; align-items:flex-start; }
  .order-steps .dot{
    width:5px;height:5px;border-radius:50%;background:var(--bordeaux-light);
    margin-top:0.55rem; flex:none;
  }
  .returns-hint{
    margin-top:1.4rem;
    text-align:center;
    font-size:0.82rem;
    color:var(--ink-faint);
  }
  .returns-hint button{
    background:none; border:none; padding:0;
    color:var(--bordeaux); text-decoration:underline;
    font-family:'Jost',sans-serif; font-size:0.82rem; cursor:pointer;
  }
  .returns-content{ color:var(--ink-dim); font-size:0.92rem; line-height:1.7; }
  .returns-content h4{
    font-family:'Jost',sans-serif; font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--bordeaux); margin:1.4rem 0 0.6rem;
  }
  .returns-content h4:first-of-type{ margin-top:1.6rem; }
  .returns-content ul, .returns-content ol{ padding-left:1.2rem; }
  .returns-content li{ margin-bottom:0.5rem; }
  .returns-content strong{ color:var(--ink); }

  .order-btn{
    display:inline-flex; align-items:center; gap:0.7rem;
    padding:1.05rem 2.6rem;
    background:transparent;
    color:var(--bordeaux);
    border:1.5px solid var(--bordeaux);
    font-family:'Jost',sans-serif;
    font-weight:500;
    letter-spacing:0.05em;
    font-size:0.92rem;
    text-transform:uppercase;
    border-radius:var(--radius);
    cursor:pointer;
    transition:background 0.3s, color 0.3s, transform 0.3s;
  }
  .order-btn:hover{ background:var(--bordeaux); color:var(--on-dark); transform:translateY(-2px); }

  /* ---------- Fenêtre agrandie (2 vues produit) ---------- */
  .lightbox-modal{ max-width:760px; }
  .lightbox-images{
    display:grid; grid-template-columns:1fr 1fr; gap:1.2rem;
    margin-top:1.4rem;
  }
  .lightbox-images figure{ margin:0; }
  .lightbox-images .lightbox-img-wrap{
    aspect-ratio:3/4;
    background:linear-gradient(160deg, var(--panel), var(--panel-2));
    display:flex; align-items:center; justify-content:center;
    overflow:hidden; border-radius:var(--radius);
  }
  .lightbox-images img{ width:100%; height:100%; object-fit:cover; }
  .lightbox-images figure.is-empty .lightbox-img-wrap::after{
    content:"Photo à venir";
    font-family:'Fraunces',serif; font-style:italic; font-size:0.85rem;
    color:var(--ink-faint); text-align:center; padding:1rem;
  }
  .lightbox-images figcaption{
    margin-top:0.6rem;
    font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--ink-faint); text-align:center;
  }
  @media (max-width:560px){ .lightbox-images{ grid-template-columns:1fr; } }
  .lightbox-description{
    margin-top:1.4rem;
    padding-top:1.2rem;
    border-top:1px solid var(--line);
    color:var(--ink-dim);
    font-size:0.92rem;
    line-height:1.7;
    white-space:pre-line;
  }
  .lightbox-description:empty{ display:none; }

  /* ---------- Recherche ---------- */
  .search-btn{
    display:flex; align-items:center; justify-content:center;
    width:38px; height:38px;
    background:none; border:none; cursor:pointer;
    color:var(--ink);
    padding:0;
  }
  .search-btn svg{ width:20px; height:20px; }

  .search-bar{
    display:none;
    align-items:center; gap:0.8rem;
    position:absolute; top:100%; left:0; right:0;
    background:var(--bg);
    border-bottom:2px solid var(--bordeaux);
    padding:1.1rem clamp(1.5rem,5vw,4rem);
  }
  .search-bar.is-open{ display:flex; }
  .search-bar svg{ width:18px; height:18px; color:var(--ink-faint); flex:none; }
  .search-bar input{
    flex:1; border:none; background:none;
    font-family:'Jost',sans-serif; font-size:1rem; color:var(--ink);
    outline:none;
  }
  .search-bar input::placeholder{ color:var(--ink-faint); }
  #search-close{
    background:none; border:none; cursor:pointer;
    font-size:1.3rem; line-height:1; color:var(--ink-faint);
    padding:0;
  }
  #search-close:hover{ color:var(--bordeaux); }

  .cart-btn{
    position:relative;
    display:flex; align-items:center; justify-content:center;
    width:38px; height:38px;
    background:none; border:none; cursor:pointer;
    color:var(--ink);
    padding:0;
  }
  .cart-btn svg{ width:22px; height:22px; }
  .cart-count{
    position:absolute; top:-4px; right:-4px;
    min-width:18px; height:18px; padding:0 4px;
    display:flex; align-items:center; justify-content:center;
    background:var(--bordeaux); color:var(--on-dark);
    font-size:0.65rem; font-weight:500;
    border-radius:999px;
  }

  /* ---------- Bouton ajouter au panier (carte produit) ---------- */
  .add-to-cart-btn{
    width:100%; margin-top:0.9rem;
    padding:0.6rem 1rem;
    background:transparent;
    border:1px solid var(--bordeaux);
    color:var(--bordeaux);
    font-family:'Jost', sans-serif;
    font-size:0.76rem; letter-spacing:0.06em; text-transform:uppercase;
    border-radius:var(--radius);
    cursor:pointer;
    transition:background 0.25s, color 0.25s;
  }
  .add-to-cart-btn:hover{ background:var(--bordeaux); color:var(--on-dark); }
  .in-cart-qty{
    display:block; margin-top:0.5rem;
    font-size:0.7rem; letter-spacing:0.04em; text-transform:uppercase;
    color:var(--bordeaux); text-align:center;
  }
  .share-btn{
    display:flex; align-items:center; justify-content:center; gap:0.4rem;
    width:100%; margin-top:0.6rem;
    padding:0.5rem 1rem;
    background:none; border:none;
    color:var(--ink-faint);
    font-family:'Jost', sans-serif;
    font-size:0.72rem; letter-spacing:0.05em; text-transform:uppercase;
    cursor:pointer;
    transition:color 0.25s;
  }
  .share-btn svg{ width:14px; height:14px; }
  .share-btn:hover{ color:var(--bordeaux); }
  .share-btn.copied{ color:var(--bordeaux); }

  /* ---------- Panneau panier (drawer) ---------- */
  .cart-overlay{
    display:none;
    position:fixed; inset:0; z-index:210;
    background:rgba(74,46,46,0.45);
  }
  .cart-overlay.is-open{ display:block; }
  .cart-panel{
    position:fixed; top:0; right:0; bottom:0;
    width:min(420px, 100%);
    background:var(--bg);
    display:flex; flex-direction:column;
    transform:translateX(100%);
    transition:transform 0.35s ease;
    box-shadow:-8px 0 30px rgba(74,46,46,0.15);
  }
  .cart-overlay.is-open .cart-panel{ transform:translateX(0); }
  .cart-header{
    display:flex; align-items:center; justify-content:space-between;
    padding:1.6rem 1.6rem 1.2rem;
    border-bottom:1px solid var(--line);
  }
  .cart-header h3{ font-size:1.3rem; }
  .cart-items{
    flex:1; overflow-y:auto;
    padding:1rem 1.6rem;
  }
  .cart-empty{
    text-align:center; color:var(--ink-faint);
    padding:3rem 1rem;
    font-size:0.92rem;
  }
  .cart-empty a{ color:var(--bordeaux); text-decoration:underline; }
  .cart-item{
    display:flex; gap:0.9rem; align-items:flex-start;
    padding:0.9rem 0;
    border-bottom:1px solid var(--line);
  }
  .cart-item-img{
    width:56px; height:70px; flex:none;
    background:linear-gradient(160deg, var(--panel), var(--panel-2));
    border-radius:var(--radius);
    overflow:hidden;
  }
  .cart-item-img img{ width:100%; height:100%; object-fit:cover; }
  .cart-item-info{ flex:1; min-width:0; }
  .cart-item-info h4{ font-family:'Fraunces',serif; font-weight:400; font-size:0.98rem; }
  .cart-item-info .price{ color:var(--ink-faint); font-size:0.8rem; margin-top:0.2rem; }
  .cart-item-line-total{
    font-family:'Fraunces',serif; font-size:0.95rem; color:var(--bordeaux);
    flex:none; padding-top:0.1rem;
  }
  .cart-qty-controls{
    display:flex; align-items:center; gap:0.5rem;
    margin-top:0.5rem;
  }
  .qty-btn{
    width:24px; height:24px;
    display:flex; align-items:center; justify-content:center;
    border:1px solid var(--line); background:var(--bg);
    color:var(--ink); font-size:0.9rem; line-height:1;
    border-radius:var(--radius); cursor:pointer;
  }
  .qty-btn:hover{ border-color:var(--bordeaux); color:var(--bordeaux); }
  .qty-value{ min-width:1.4rem; text-align:center; font-size:0.88rem; }
  .cart-item-remove{
    background:none; border:none; cursor:pointer;
    color:var(--ink-faint); font-size:0.72rem;
    text-decoration:underline; letter-spacing:0.03em;
    padding:0; margin-left:0.4rem;
  }
  .cart-item-remove:hover{ color:var(--bordeaux); }
  .cart-footer{
    padding:1.4rem 1.6rem 1.8rem;
    border-top:1px solid var(--line);
  }
  .promo-form{
    display:flex; gap:0.6rem; margin-bottom:0.6rem;
  }
  .promo-form input{
    flex:1; min-width:0;
    padding:0.6rem 0.8rem;
    border:1px solid var(--line); border-radius:var(--radius);
    background:var(--panel); color:var(--ink);
    font-family:'Jost',sans-serif; font-size:0.85rem;
    text-transform:uppercase; letter-spacing:0.03em;
  }
  .promo-form input:focus{ outline:2px solid var(--bordeaux-light); outline-offset:1px; }
  .promo-form button{
    padding:0.6rem 1.1rem;
    background:transparent; border:1px solid var(--bordeaux);
    color:var(--bordeaux);
    font-family:'Jost',sans-serif; font-size:0.78rem; letter-spacing:0.04em; text-transform:uppercase;
    border-radius:var(--radius); cursor:pointer;
    transition:background 0.25s, color 0.25s;
  }
  .promo-form button:hover{ background:var(--bordeaux); color:var(--on-dark); }
  .promo-message{
    font-size:0.78rem; margin-bottom:0.9rem; min-height:1em;
  }
  .promo-message.is-success{ color:var(--bordeaux); }
  .promo-message.is-error{ color:var(--ink-faint); }

  .cart-subtotal{
    display:flex; justify-content:space-between; align-items:baseline;
    font-size:0.95rem; margin-bottom:1rem;
  }
  .cart-subtotal span:last-child{ font-family:'Fraunces',serif; font-size:1.3rem; color:var(--ink-dim); }
  .cart-discount-row{
    display:flex; justify-content:space-between; align-items:baseline;
    font-size:0.85rem; color:var(--bordeaux); margin-top:0.4rem;
  }
  .cart-total-row{
    display:flex; justify-content:space-between; align-items:baseline;
    font-size:0.95rem; margin-top:0.5rem; padding-top:0.6rem;
    border-top:1px solid var(--line); margin-bottom:1rem;
  }
  .cart-total-row span:last-child{ font-family:'Fraunces',serif; font-size:1.3rem; color:var(--bordeaux); }
  #checkout-btn:disabled{ opacity:0.4; cursor:not-allowed; }

  .order-cart-summary{
    border:1px solid var(--line); border-radius:var(--radius);
    padding:0.9rem 1.1rem; margin-bottom:1.4rem;
  }
  .order-cart-summary-item{
    display:flex; justify-content:space-between;
    font-size:0.85rem; color:var(--ink-dim);
    padding:0.35rem 0;
  }
  .order-cart-summary-total{
    display:flex; justify-content:space-between;
    font-size:0.9rem; font-weight:500; color:var(--ink);
    margin-top:0.5rem; padding-top:0.5rem;
    border-top:1px solid var(--line);
  }

  /* ---------- Fenêtre de commande (modale) ---------- */
  .modal-overlay{
    display:none;
    position:fixed; inset:0; z-index:200;
    background:rgba(74,46,46,0.45);
    align-items:center; justify-content:center;
    padding:1.5rem;
  }
  .modal-overlay.is-open{ display:flex; }
  .modal{
    background:var(--bg);
    border:1px solid var(--line);
    border-radius:var(--radius);
    max-width:480px; width:100%;
    max-height:90vh; overflow-y:auto;
    padding:2.2rem clamp(1.5rem,4vw,2.6rem);
    position:relative;
  }
  .modal h3{ font-size:1.6rem; margin-bottom:0.4rem; }
  .modal p{ color:var(--ink-dim); font-size:0.9rem; margin-bottom:1.6rem; }
  .modal-close{
    position:absolute; top:1.2rem; right:1.4rem;
    background:none; border:none; cursor:pointer;
    font-size:1.4rem; line-height:1; color:var(--ink-faint);
    transition:color 0.25s;
  }
  .modal-close:hover{ color:var(--bordeaux); }
  .form-field{ margin-bottom:1.2rem; text-align:left; }
  .form-field label{
    display:block; font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--brass); margin-bottom:0.5rem;
  }
  .form-field input, .form-field textarea{
    width:100%; padding:0.75rem 0.9rem;
    border:1px solid var(--line); border-radius:var(--radius);
    background:var(--panel); color:var(--ink);
    font-family:'Jost',sans-serif; font-size:0.92rem;
  }
  .form-field input:focus, .form-field textarea:focus{
    outline:2px solid var(--bordeaux-light); outline-offset:1px;
  }
  .form-field textarea{ resize:vertical; min-height:70px; }
  .modal-submit{
    width:100%; margin-top:0.4rem;
    display:inline-flex; align-items:center; justify-content:center; gap:0.6rem;
    padding:1.05rem 1.6rem;
    background:var(--bordeaux);
    color:var(--on-dark);
    border:none;
    font-family:'Jost',sans-serif; font-weight:500; letter-spacing:0.05em;
    font-size:0.92rem; text-transform:uppercase;
    border-radius:var(--radius); cursor:pointer;
    transition:background 0.3s, transform 0.3s;
  }
  .modal-submit:hover:not(:disabled){ background:var(--bordeaux-light); transform:translateY(-2px); }

  /* ---------- Footer ---------- */
  footer{
    padding:3.5rem clamp(1.5rem,6vw,5rem) 3rem;
    display:flex; flex-direction:column; align-items:center; gap:1.6rem;
    border-top:1px solid var(--line);
    text-align:center;
  }
  .footer-logo-img{ width:70px; height:auto; }
  .footer-links{ display:flex; gap:1.8rem; font-size:0.85rem; color:var(--ink-dim); flex-wrap:wrap; justify-content:center; }
  .footer-links a{ transition:color 0.25s; }
  .footer-link-btn{
    background:none; border:none; padding:0;
    font-family:'Jost',sans-serif; font-size:0.85rem; color:var(--ink-dim);
    cursor:pointer; transition:color 0.25s;
  }
  .footer-link-btn:hover{ color:var(--bordeaux); }
  .footer-links a:hover{ color:var(--bordeaux); }
  .footer-note{ font-size:0.72rem; color:var(--ink-faint); letter-spacing:0.03em; }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; }
  }

  a:focus-visible, button:focus-visible{
    outline:2px solid var(--bordeaux-light);
    outline-offset:3px;
  }

  /* ---------- Retour en haut ---------- */
  .back-to-top{
    position:fixed; right:1.4rem; bottom:1.4rem; z-index:150;
    width:46px; height:46px;
    display:flex; align-items:center; justify-content:center;
    background:var(--bordeaux);
    color:var(--on-dark);
    border:none; border-radius:50%;
    cursor:pointer;
    opacity:0; visibility:hidden;
    transform:translateY(10px);
    transition:opacity 0.3s, transform 0.3s, visibility 0.3s, background 0.3s;
  }
  .back-to-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
  .back-to-top:hover{ background:var(--bordeaux-light); }
  .back-to-top svg{ width:20px; height:20px; }
