
  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); }

  .pdp { display:grid; grid-template-columns:60fr 40fr; gap:4rem; align-items:start; }

  /* Galerie produit */
  .gallery-pdp { display:grid; grid-template-columns:80px 1fr; gap:1rem; }
  .thumbs { display:flex; flex-direction:column; gap:.75rem; }
  .thumbs a {
    aspect-ratio:1; background-size:cover; background-position:center;
    cursor:pointer; opacity:.55; transition: opacity 300ms;
    border:1px solid transparent;
  }
  .thumbs a:hover, .thumbs a.is-active { opacity:1; border-color:var(--gold); }
  .main-img {
    aspect-ratio:4/5; background-size:cover; background-position:center;
    position:relative; overflow:hidden; cursor:zoom-in;
  }
  .main-img::before {
    content:""; position:absolute; inset:0; background:rgba(43,37,34,0);
    transition:background 300ms var(--ease-elegant); z-index:1;
  }
  .main-img:hover::before { background:rgba(43,37,34,.08); }
  .main-img .zoom-hint {
    position:absolute; bottom:1rem; right:1rem; z-index:2;
    width:40px; height:40px; border-radius:50%; background:rgba(251,247,242,.92);
    display:flex; align-items:center; justify-content:center;
    color:var(--ink); opacity:0; transform:translateY(8px);
    transition:opacity 300ms var(--ease-elegant), transform 300ms var(--ease-elegant);
    pointer-events:none;
  }
  .main-img:hover .zoom-hint { opacity:1; transform:none; }
  .main-img .zoom-hint svg { width:18px; height:18px; }

  /* Lightbox plein écran */
  .lightbox {
    position:fixed; inset:0; background:rgba(20,17,16,.96);
    z-index:300; opacity:0; pointer-events:none;
    display:flex; align-items:center; justify-content:center;
    transition: opacity 400ms var(--ease-elegant);
  }
  .lightbox.is-open { opacity:1; pointer-events:auto; }
  .lightbox-img-wrap {
    max-width:90vw; max-height:88vh;
    transform:scale(.96); transition:transform 500ms var(--ease-elegant);
  }
  .lightbox.is-open .lightbox-img-wrap { transform:scale(1); }
  .lightbox-img { max-width:90vw; max-height:88vh; display:block; object-fit:contain; }
  .lightbox-close, .lightbox-prev, .lightbox-next {
    position:absolute; background:transparent; border:1px solid rgba(251,247,242,.4);
    color:var(--ivory); width:54px; height:54px; border-radius:50%;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition: background 300ms var(--ease-elegant), border-color 300ms, transform 300ms;
  }
  .lightbox-close { top:1.75rem; right:1.75rem; }
  .lightbox-prev { left:2rem; top:50%; transform:translateY(-50%); }
  .lightbox-next { right:2rem; top:50%; transform:translateY(-50%); }
  .lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover {
    background:rgba(251,247,242,.15); border-color:var(--ivory);
  }
  .lightbox-prev:hover { transform:translate(-4px,-50%); }
  .lightbox-next:hover { transform:translate(4px,-50%); }
  .lightbox svg { width:22px; height:22px; }
  .lightbox-counter {
    position:absolute; bottom:1.75rem; left:50%; transform:translateX(-50%);
    color:var(--ivory); font-family:var(--sans); font-size:.75rem; letter-spacing:.15em;
    opacity:.7;
  }

  .main-img .badge {
    position:absolute; top:1.25rem; left:1.25rem; z-index:2;
    background:var(--ivory); padding:.45rem .9rem;
    font-family:var(--sans); font-size:.65rem; letter-spacing:.15em;
    text-transform:uppercase; color:var(--gold-deep);
  }
  .main-img .like {
    position:absolute; top:1.25rem; right:1.25rem; z-index:2;
    width:44px; height:44px; background:var(--ivory); border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    color:var(--ink); cursor:pointer; transition: color 250ms;
  }
  .main-img .like:hover { color:var(--error); }
  .main-img .like svg { width:20px; height:20px; }

  /* Bloc achat sticky */
  .buy-box { position:sticky; top:100px; }
  .buy-box .eyebrow { color:var(--gold-deep); margin-bottom:.5rem; }
  .buy-box h1 {
    font-family:var(--serif); font-weight:300; font-size:clamp(2rem, 3.5vw, 2.75rem);
    line-height:1.1; letter-spacing:-.005em; margin:0 0 .75rem; color:var(--ink);
  }
  .buy-box .subtitle {
    font-family:var(--serif); font-style:italic; font-weight:400; font-size:1.125rem;
    color:var(--ink-soft); margin:0 0 1rem;
  }
  .rating { display:flex; align-items:center; gap:.5rem; margin:0 0 1.5rem; font-size:.8125rem; color:var(--ink-soft); }
  .rating .stars { display:flex; gap:.1rem; color:var(--gold); }
  .rating .stars svg { width:14px; height:14px; fill:currentColor; }
  .rating a { color:var(--ink-soft); text-decoration:underline; text-underline-offset:3px; }

  .buy-box .desc {
    font-size:.9375rem; line-height:1.7; color:var(--ink-soft);
    margin:0 0 2rem; padding-bottom:1.75rem; border-bottom:1px solid var(--line);
  }

  /* Sélecteur de portions visual */
  .selector-block { margin-bottom:1.75rem; }
  .selector-block h4 {
    font-family:var(--sans); font-weight:500; font-size:.7rem;
    letter-spacing:.15em; text-transform:uppercase; color:var(--ink);
    margin:0 0 .9rem; display:flex; justify-content:space-between; align-items:baseline;
  }
  .selector-block h4 small {
    font-family:var(--serif); font-style:italic; font-size:.9rem;
    letter-spacing:0; text-transform:none; color:var(--ink-soft); font-weight:400;
  }
  /* Slider visuel de parts */
  .portions {
    display:grid; grid-template-columns:repeat(7, 1fr); gap:.5rem;
  }
  .portions input { display:none; }
  .portions label {
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:.35rem; padding:.75rem .25rem; cursor:pointer;
    border:1px solid var(--border-strong); background:var(--white);
    transition: all 250ms var(--ease-elegant);
    position:relative;
  }
  .portions label:hover { border-color:var(--gold); }
  .portions input:checked + label {
    background:var(--ink); color:var(--ivory); border-color:var(--ink);
  }
  .portions label .cake {
    width:24px; height:24px;
    display:flex; align-items:center; justify-content:center;
  }
  .portions label .cake svg { stroke:currentColor; fill:none; stroke-width:1.2; width:100%; height:100%; }
  .portions label .num {
    font-family:var(--serif); font-weight:500; font-size:1.0625rem; line-height:1;
  }
  .portions label .lbl {
    font-family:var(--sans); font-size:.55rem; letter-spacing:.08em;
    text-transform:uppercase; opacity:.7;
  }
  .portions-hint {
    font-size:.75rem; color:var(--ink-muted); margin-top:.6rem;
    display:flex; align-items:center; gap:.4rem;
  }

  /* Sélecteur saveurs */
  .flavors { display:grid; grid-template-columns:repeat(3, 1fr); gap:.6rem; }
  .flavors input { display:none; }
  .flavors label {
    display:flex; flex-direction:column; align-items:center; gap:.4rem;
    padding:1rem .5rem; cursor:pointer; text-align:center;
    border:1px solid var(--border-strong); background:var(--white);
    transition: all 250ms var(--ease-elegant);
  }
  .flavors label:hover { border-color:var(--gold); }
  .flavors input:checked + label { border-color:var(--gold); background:var(--blush-light); }
  .flavors label .dot { width:24px; height:24px; border-radius:50%; }
  .flavors label .name {
    font-family:var(--serif); font-style:italic; font-size:.95rem; color:var(--ink); line-height:1.2;
  }

  /* Date de retrait */
  .date-pick {
    display:flex; align-items:center; gap:.75rem;
    padding:.85rem 1rem; border:1px solid var(--border-strong); background:var(--white);
    cursor:pointer; transition: border-color 250ms;
  }
  .date-pick:hover { border-color:var(--gold); }
  .date-pick svg { width:20px; height:20px; color:var(--gold-deep); }
  .date-pick .val { font-family:var(--sans); font-size:.9375rem; color:var(--ink); flex:1; }
  .date-pick .arr { color:var(--ink-muted); }

  /* Quantity + price + CTA */
  .qty-price-row {
    display:flex; align-items:flex-end; justify-content:space-between; gap:2rem;
    margin:2rem 0 1.25rem;
  }
  .qty-stepper {
    display:flex; align-items:center; gap:0;
    border:1px solid var(--border-strong); height:52px;
  }
  .qty-stepper button {
    width:42px; height:100%; background:none; border:none; cursor:pointer;
    font-size:1.25rem; color:var(--ink); transition: background 250ms;
  }
  .qty-stepper button:hover { background:var(--blush-light); }
  .qty-stepper input {
    width:48px; height:100%; border:none; text-align:center;
    font-family:var(--serif); font-weight:500; font-size:1.0625rem;
    background:none;
  }
  .qty-stepper input:focus { outline:none; }
  .total-price {
    text-align:right;
  }
  .total-price .lbl {
    font-family:var(--sans); font-size:.65rem; letter-spacing:.15em;
    text-transform:uppercase; color:var(--ink-muted); margin:0 0 .15rem;
  }
  .total-price .val {
    font-family:var(--serif); font-weight:500; font-size:2rem;
    color:var(--gold-deep); line-height:1; font-variant-numeric:lining-nums;
  }

  .secondary-cta {
    display:flex; gap:.75rem; margin-top:1rem;
  }
  .secondary-cta .btn { flex:1; }

  .reassure-mini {
    display:grid; grid-template-columns:repeat(3, 1fr); gap:1rem;
    margin-top:1.75rem; padding:1.25rem; background:var(--blush-light);
  }
  .reassure-mini-item {
    display:flex; flex-direction:column; align-items:center; gap:.35rem; text-align:center;
  }
  .reassure-mini-item svg { width:22px; height:22px; color:var(--gold-deep); }
  .reassure-mini-item span { font-size:.7rem; color:var(--ink); line-height:1.3; letter-spacing:.05em; }

  /* Tabs sous PDP */
  .tabs { display:flex; gap:0; border-bottom:1px solid var(--line); margin-bottom:2rem; flex-wrap:wrap; }
  .tabs button {
    background:none; border:none; cursor:pointer;
    padding:1rem 1.5rem; font-family:var(--sans); font-weight:500;
    font-size:.75rem; letter-spacing:.15em; text-transform:uppercase;
    color:var(--ink-muted); border-bottom:2px solid transparent;
    transition: color 300ms, border-color 300ms;
    margin-bottom:-1px;
  }
  .tabs button.is-active { color:var(--ink); border-bottom-color:var(--gold); }
  .tabs button:hover { color:var(--ink); }
  .tab-content { display:none; font-size:.9375rem; line-height:1.75; color:var(--ink-soft); padding-top:.5rem; }
  .tab-content.is-active { display:block; }
  .tab-content h4 { font-family:var(--serif); font-style:italic; font-size:1.25rem; color:var(--ink); margin:0 0 .75rem; font-weight:400; }
  .tab-content ul { padding-left:1.25rem; margin:.5rem 0; }
  .tab-content li { margin-bottom:.5rem; }
  .allergens { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem; }
  .allergens span {
    padding:.4rem .85rem; background:var(--blush-light); color:var(--ink);
    font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;
  }

  /* Conseil pâtissière */
  .baker-tip {
    display:grid; grid-template-columns:120px 1fr; gap:1.5rem;
    padding:2rem; background:var(--white); border-left:2px solid var(--gold);
    align-items:center;
  }
  .baker-tip .avatar {
    width:120px; height:120px; border-radius:50%; overflow:hidden;
    background-image:url('https://images.unsplash.com/photo-1438761681033-6461ffad8d80?auto=format&fit=crop&w=300&q=80');
    background-size:cover; background-position:center;
  }
  .baker-tip blockquote {
    font-family:var(--serif); font-style:italic; font-weight:300;
    font-size:1.125rem; line-height:1.6; color:var(--ink); margin:0 0 .5rem; padding:0; border:none;
  }
  .baker-tip cite { font-family:var(--script); font-size:1.5rem; color:var(--gold-deep); font-style:normal; }
  .baker-tip cite small {
    display:block; font-family:var(--sans); font-size:.65rem; letter-spacing:.15em;
    text-transform:uppercase; color:var(--ink-muted); margin-top:.25rem; font-weight:500;
  }

  @media (max-width:1024px) {
    .pdp { grid-template-columns:1fr; gap:2.5rem; }
    .gallery-pdp { grid-template-columns:1fr; }
    .thumbs { flex-direction:row; }
    .buy-box { position:static; }
    .baker-tip { grid-template-columns:1fr; text-align:center; }
    .baker-tip .avatar { margin:0 auto; }
  }
  @media (max-width:640px) {
    .portions { grid-template-columns:repeat(4, 1fr); }
    .flavors { grid-template-columns:1fr; }
  }

/* Override taille small des labels sélecteurs */
.selector-block h4 small { font-size: 1rem; }
