  /* ============================================================
     PRODUCTO — Ficha
     ============================================================ */
  .pdp-head { background: var(--cream); padding: 28px 0 24px; border-bottom: 1px solid var(--line); }
  .pdp-head .breadcrumbs { font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); display: flex; gap: 10px; flex-wrap: wrap; }
  .pdp-head .breadcrumbs a:hover { color: var(--paprika); }
  .pdp-head .breadcrumbs .sep { opacity: 0.4; }
  .pdp-head .breadcrumbs .current { color: var(--ink); font-weight: 600; }
  .pdp-head .nav-row { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; gap: 16px; flex-wrap: wrap; }
  .pdp-head .back-link { font-size: 13px; color: var(--ink); display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
  .pdp-head .back-link:hover { color: var(--paprika); }
  .pdp-head .prev-next { display: flex; gap: 4px; font-size: 12px; }
  .pdp-head .prev-next a { padding: 8px 14px; border: 1px solid var(--line-strong); background: var(--paper); display: inline-flex; align-items: center; gap: 8px; font-weight: 500; }
  .pdp-head .prev-next a:hover { border-color: var(--ink); }
  .pdp-head .prev-next .lab { font-size: 10px; color: var(--muted); letter-spacing: 0.1em; text-transform: uppercase; }

  .pdp-main { padding: 56px 0 72px; background: var(--paper); }
  .pdp-layout { display: grid; grid-template-columns: 7fr 5fr; gap: 64px; }

  /* Gallery — single photo, catalog */
  .pdp-gallery { display: flex; flex-direction: column; gap: 16px; align-items: stretch; position: sticky; top: 100px; }
  .pdp-main-img { position: relative; aspect-ratio: 1 / 1; background: #fff; border: 1px solid var(--line); overflow: hidden; }
  .pdp-catalog-tag {
    position: absolute; top: 16px; right: 16px;
    background: rgba(255,255,255,0.95); color: var(--ink);
    font-family: var(--display); font-weight: 800;
    font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
    padding: 8px 10px;
    display: inline-flex; align-items: center; gap: 6px;
    border: 1px solid var(--line);
  }
  .pdp-catalog-tag::before {
    content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--olive);
  }
  .pdp-main-img .ph { font-size: 13px; }
  .pdp-main-img .badge {
    position: absolute; top: 16px; left: 16px;
    background: var(--paprika); color: #fff;
    font-family: var(--display); font-weight: 800; font-size: 14px;
    letter-spacing: 0.04em; padding: 10px 12px;
    display: inline-flex; align-items: center; gap: 6px;
  }
  .pdp-main-img .zoom {
    position: absolute; bottom: 16px; right: 16px;
    width: 40px; height: 40px;
    background: rgba(255,255,255,0.95); display: grid; place-items: center;
    border: 1px solid var(--line); cursor: pointer;
    font-size: 16px; color: var(--ink);
  }
  .pdp-main-img .zoom:hover { background: var(--ink); color: #fff; }
  .pdp-img-caption {
    display: flex; justify-content: space-between; align-items: center;
    font-size: 11px; color: var(--muted);
    letter-spacing: 0.06em; text-transform: uppercase;
    padding: 4px 2px;
  }
  .pdp-img-caption b { font-family: var(--display); font-weight: 800; color: var(--ink); letter-spacing: 0.04em; }

  /* Aside ficha */
  .pdp-aside h1 {
    font-size: clamp(34px, 3.4vw, 52px);
    line-height: 1;
    letter-spacing: -0.03em;
    margin-top: 18px;
  }
  .pdp-aside h1 em { font-family: var(--serif); font-style: italic; font-weight: 400; color: var(--paprika); letter-spacing: -0.02em; }
  .pdp-brand-row { display: flex; align-items: center; gap: 14px; }
  .pdp-brand {
    font-family: var(--display); font-weight: 800;
    font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--paprika);
  }
  .pdp-brand .pipe { color: var(--line-strong); margin: 0 8px; }
  .pdp-refs { color: var(--muted); font-size: 12px; font-family: ui-monospace, "SF Mono", "Menlo", monospace; letter-spacing: 0.04em; }

  .pdp-rating { display: flex; align-items: center; gap: 8px; margin-top: 14px; font-size: 13px; color: var(--muted); }
  .pdp-rating .stars { color: var(--paprika); letter-spacing: 0.04em; font-size: 14px; }
  .pdp-rating a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }

  .pdp-lead { margin-top: 20px; font-size: 16px; line-height: 1.55; color: var(--muted); max-width: 50ch; }
  .pdp-lead strong { color: var(--ink); font-weight: 600; }

  .pdp-price-box {
    margin-top: 28px;
    border: 1px solid var(--line);
    background: var(--cream-soft);
  }
  /* Barra PRO como marquesina animada (CTA "Regístrate como profesional") */
  .pdp-price-pro {
    background: var(--ink); color: #fff;
    padding: 12px 0;
    overflow: hidden; white-space: nowrap;
    display: block; text-decoration: none;
  }
  .pdp-pro-track { display: inline-flex; align-items: center; will-change: transform; animation: pdpProMarquee 26s linear infinite; }
  .pdp-price-pro:hover .pdp-pro-track { animation-play-state: paused; }
  .pdp-pro-track .seg { font-family: var(--display); font-weight: 800; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; padding: 0 22px; }
  .pdp-pro-track .seg .dot { color: var(--paprika); margin-right: 8px; }
  .pdp-pro-track .seg .cta { color: var(--paprika); text-decoration: underline; text-underline-offset: 3px; }
  .pdp-pro-static { background: var(--ink); color: #fff; padding: 14px 20px; font-family: var(--display); font-weight: 800; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; }
  .pdp-pro-static .dot { color: var(--paprika); margin-right: 8px; }
  @keyframes pdpProMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  @media (prefers-reduced-motion: reduce) { .pdp-pro-track { animation: none; } }
  /* Evita que la marquesina (track muy ancho) expanda la columna y descuadre la página */
  .pdp-layout > * { min-width: 0; }
  .pdp-price-box, .pdp-price-pro { min-width: 0; max-width: 100%; }

  .pdp-price-main { padding: 22px 20px; display: flex; align-items: flex-end; gap: 20px; flex-wrap: wrap; }
  .pdp-price-main .now {
    font-family: var(--display); font-weight: 800;
    font-size: 56px; line-height: 0.9; letter-spacing: -0.03em;
    color: var(--paprika);
  }
  .pdp-price-main .now .cur { font-size: 26px; vertical-align: top; margin-right: 4px; }
  .pdp-price-main .now sup { font-size: 22px; font-weight: 800; }
  .pdp-price-main .col { display: flex; flex-direction: column; gap: 6px; padding-bottom: 4px; }
  .pdp-price-main .col .old { font-size: 14px; color: var(--muted); text-decoration: line-through; }
  .pdp-price-main .col .save { font-size: 12px; color: var(--olive); font-weight: 600; letter-spacing: 0.04em; }
  .pdp-price-main .col .save b { font-family: var(--display); font-weight: 800; }
  .pdp-price-main .unit-pill {
    margin-left: auto;
    background: var(--paper);
    border: 1px solid var(--line-strong);
    padding: 8px 12px;
    font-size: 12px;
    color: var(--muted);
    align-self: flex-end;
  }
  .pdp-price-main .unit-pill b { color: var(--ink); font-family: var(--display); font-weight: 800; font-size: 13px; }

  .pdp-price-meta {
    border-top: 1px dashed var(--line-strong);
    padding: 14px 20px;
    display: flex; flex-wrap: wrap; gap: 18px;
    font-size: 12px;
    color: var(--muted);
  }
  .pdp-price-meta .item { display: flex; align-items: center; gap: 8px; }
  .pdp-price-meta .item b { color: var(--ink); font-weight: 600; }
  .pdp-price-meta svg { color: var(--ink); flex-shrink: 0; }

  /* Acciones catálogo (no compra) */
  .pdp-actions {
    margin-top: 22px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .pdp-actions .btn { justify-content: center; padding: 14px 18px; }
  .pdp-actions .btn-fav {
    background: var(--paper); border: 1px solid var(--line-strong);
    color: var(--ink);
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  }
  .pdp-actions .btn-fav:hover { background: var(--cream); color: var(--paprika); border-color: var(--ink); }
  .pdp-actions-note {
    margin-top: 14px;
    font-size: 12px;
    color: var(--muted);
    line-height: 1.55;
    padding: 12px 14px;
    border: 1px dashed var(--line-strong);
    background: var(--cream-soft);
    display: flex; gap: 10px; align-items: flex-start;
  }
  .pdp-actions-note svg { color: var(--paprika); flex-shrink: 0; margin-top: 2px; }
  .pdp-actions-note b { color: var(--ink); font-weight: 600; }

  .pdp-stock {
    display: inline-flex; align-items: center; gap: 8px;
    margin-top: 18px;
    font-size: 13px; font-weight: 600;
    color: var(--olive);
  }
  .pdp-stock::before {
    content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--olive);
    box-shadow: 0 0 0 4px rgba(126,138,75,0.18);
  }
  .pdp-stock .sep { color: var(--line-strong); margin: 0 8px; }
  .pdp-stock .more { color: var(--muted); font-weight: 400; }

  /* Quick services */
  .pdp-services {
    margin-top: 28px;
    border-top: 1px solid var(--line);
    padding-top: 24px;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 8px 24px;
  }
  .pdp-services .svc {
    display: flex; align-items: flex-start; gap: 12px;
    padding: 10px 0;
    font-size: 13px;
  }
  .pdp-services .svc .ico {
    width: 32px; height: 32px;
    border: 1px solid var(--line-strong);
    display: grid; place-items: center;
    flex-shrink: 0;
    color: var(--navy);
  }
  .pdp-services .svc b { display: block; font-size: 13px; color: var(--ink); }
  .pdp-services .svc span { color: var(--muted); font-size: 12px; line-height: 1.4; }

  /* ============================================================
     PRODUCTO — Tabs
     ============================================================ */
  .pdp-tabs-section { background: var(--cream); padding: 80px 0; }
  .pdp-tabs-nav {
    display: flex; gap: 4px;
    border-bottom: 1px solid var(--line-strong);
    margin-bottom: 40px;
    flex-wrap: wrap;
  }
  .pdp-tab-btn {
    padding: 14px 22px;
    font-family: var(--body);
    font-size: 14px;
    font-weight: 600;
    color: var(--muted);
    background: transparent;
    border-bottom: 3px solid transparent;
    margin-bottom: -1px;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
    display: inline-flex; align-items: center; gap: 8px;
  }
  .pdp-tab-btn .n {
    font-family: var(--display); font-weight: 800;
    font-size: 10px; letter-spacing: 0.1em;
    color: var(--line-strong);
  }
  .pdp-tab-btn:hover { color: var(--ink); }
  .pdp-tab-btn.active { color: var(--ink); border-bottom-color: var(--paprika); }
  .pdp-tab-btn.active .n { color: var(--paprika); }
  .pdp-tab-panel { display: none; }
  .pdp-tab-panel.active { display: block; }

  .pdp-prose { display: grid; grid-template-columns: 2fr 1fr; gap: 64px; }
  .pdp-prose h3 { font-family: var(--display); font-weight: 800; font-size: 28px; margin-bottom: 16px; letter-spacing: -0.02em; }
  .pdp-prose p { font-size: 16px; line-height: 1.6; color: var(--muted); margin-bottom: 16px; max-width: 62ch; }
  .pdp-prose p strong { color: var(--ink); }
  .pdp-prose ul { margin: 20px 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; max-width: 62ch; }
  .pdp-prose ul li { position: relative; padding-left: 24px; font-size: 15px; line-height: 1.5; color: var(--ink); }
  .pdp-prose ul li::before { content: ""; position: absolute; left: 0; top: 9px; width: 12px; height: 1.5px; background: var(--paprika); }

  .callout {
    border-left: 3px solid var(--paprika);
    padding: 20px 24px;
    background: var(--paper);
    margin-top: 28px;
  }
  .callout .lab { font-family: var(--display); font-weight: 800; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--paprika); margin-bottom: 8px; }
  .callout p { margin: 0; color: var(--ink); font-size: 14px; }

  .pdp-side-card {
    background: var(--paper);
    border: 1px solid var(--line);
    padding: 24px;
    align-self: start;
  }
  .pdp-side-card h4 {
    font-family: var(--display); font-weight: 800;
    font-size: 11px; letter-spacing: 0.14em;
    text-transform: uppercase; color: var(--paprika);
    margin-bottom: 14px;
  }
  .pdp-side-card .doc {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 0;
    border-top: 1px solid var(--line);
    font-size: 13px;
  }
  .pdp-side-card .doc:first-of-type { border-top: 0; padding-top: 0; }
  .pdp-side-card .doc .ico {
    width: 36px; height: 36px;
    background: var(--cream);
    display: grid; place-items: center;
    font-family: var(--display); font-weight: 800; font-size: 9px;
    color: var(--paprika);
    letter-spacing: 0.05em;
  }
  .pdp-side-card .doc b { display: block; color: var(--ink); font-weight: 600; }
  .pdp-side-card .doc span { font-size: 12px; color: var(--muted); }
  .pdp-side-card .doc:hover b { color: var(--paprika); }

  /* Atributos table */
  .pdp-attrs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 64px;
  }
  .pdp-attrs .row {
    display: grid; grid-template-columns: 1fr 1.2fr;
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
    font-size: 14px;
    gap: 16px;
  }
  .pdp-attrs .row dt {
    color: var(--muted); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600;
    padding-top: 2px;
  }
  .pdp-attrs .row dd { margin: 0; color: var(--ink); font-weight: 500; }
  .pdp-attrs .row dd .mono { font-family: ui-monospace, "SF Mono", "Menlo", monospace; font-size: 13px; }

  /* Logística */
  .pdp-logi {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--line);
    border: 1px solid var(--line);
  }
  .pdp-logi .cell {
    background: var(--paper);
    padding: 24px;
    display: flex; flex-direction: column; gap: 6px;
    min-height: 140px;
  }
  .pdp-logi .lab { font-family: var(--display); font-weight: 800; font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--paprika); }
  .pdp-logi .n { font-family: var(--display); font-weight: 800; font-size: 36px; letter-spacing: -0.03em; line-height: 1; margin-top: auto; color: var(--ink); }
  .pdp-logi .sub { font-size: 12px; color: var(--muted); }
  .pdp-logi .cell.alt { background: var(--ink); color: #fff; }
  .pdp-logi .cell.alt .lab { color: var(--paprika); }
  .pdp-logi .cell.alt .n { color: #fff; }
  .pdp-logi .cell.alt .sub { color: rgba(255,255,255,0.65); }

  /* FAQ */
  .pdp-faq { max-width: 820px; }
  .pdp-faq .q {
    border-bottom: 1px solid var(--line);
    padding: 20px 0;
    cursor: pointer;
  }
  .pdp-faq .q summary {
    list-style: none;
    display: flex; align-items: center; justify-content: space-between;
    font-family: var(--display); font-weight: 800;
    font-size: 18px;
    letter-spacing: -0.01em;
    color: var(--ink);
    gap: 24px;
  }
  .pdp-faq .q summary::-webkit-details-marker { display: none; }
  .pdp-faq .q .plus {
    width: 28px; height: 28px;
    border: 1px solid var(--line-strong);
    display: grid; place-items: center;
    font-size: 16px;
    flex-shrink: 0;
    transition: background 0.15s, color 0.15s, transform 0.2s;
  }
  .pdp-faq .q[open] .plus { background: var(--ink); color: #fff; transform: rotate(45deg); }
  .pdp-faq .q p { margin-top: 14px; color: var(--muted); font-size: 15px; line-height: 1.6; max-width: 70ch; }

  /* ============================================================
     PRODUCTO — Relacionados
     ============================================================ */
  .pdp-rel-head {
    display: flex; align-items: flex-end; justify-content: space-between;
    margin-bottom: 32px; padding-bottom: 20px;
    border-bottom: 1px solid var(--line);
    gap: 24px; flex-wrap: wrap;
  }
  .pdp-rel-head h2 { font-size: clamp(32px, 4vw, 56px); max-width: 14ch; }
  .pdp-rel-head h2 em { font-family: var(--serif); font-style: italic; font-weight: 400; color: var(--paprika); }
  .pdp-rel-head .meta { font-size: 13px; color: var(--muted); display: flex; gap: 24px; }
  .pdp-rel-head .meta b { font-family: var(--display); color: var(--paprika); }

  .pdp-rel-grid { grid-template-columns: repeat(4, 1fr); }
  @media (max-width: 1100px) { .pdp-rel-grid { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 640px) { .pdp-rel-grid { grid-template-columns: 1fr; } }

  /* Sticky mini-bar that appears on scroll */
  .pdp-mini {
    position: fixed; left: 0; right: 0; bottom: 0; top: auto;
    background: var(--paper);
    border-top: 1px solid var(--line);
    box-shadow: 0 -10px 28px -18px rgba(14,42,71,0.28);
    z-index: 950;
    transform: translateY(110%);
    transition: transform 0.25s;
  }
  .pdp-mini.show { transform: translateY(0); }
  .pdp-mini .container {
    display: flex; align-items: center; gap: 20px;
    padding-top: 12px; padding-bottom: 12px;
  }
  .pdp-mini .thumb { width: 48px; height: 48px; flex-shrink: 0; background: var(--cream); }
  .pdp-mini .info { flex: 1; min-width: 0; }
  .pdp-mini .info .br { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--paprika); font-weight: 700; }
  .pdp-mini .info h4 { font-family: var(--body); font-weight: 600; font-size: 14px; letter-spacing: -0.005em; text-transform: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .pdp-mini .price { font-family: var(--display); font-weight: 800; font-size: 22px; color: var(--paprika); letter-spacing: -0.02em; }
  .pdp-mini .price .cur { font-size: 13px; vertical-align: top; margin-right: 2px; }
  .pdp-mini .actions { display: flex; gap: 8px; }
  .pdp-mini .actions .btn { padding: 10px 16px; font-size: 13px; }
  @media (max-width: 720px) { .pdp-mini .info h4 { display: none; } }

  /* Responsive */
  @media (max-width: 1100px) {
    .pdp-layout { grid-template-columns: 1fr; gap: 40px; }
    .pdp-gallery { position: static; }
    .pdp-prose { grid-template-columns: 1fr; gap: 32px; }
    .pdp-logi { grid-template-columns: repeat(2, 1fr); }
    .pdp-attrs { grid-template-columns: 1fr; gap: 0; }
    .pdp-mini { bottom: 0; top: auto; }
  }
  @media (max-width: 640px) {
    .pdp-actions { grid-template-columns: 1fr; }
    .pdp-services { grid-template-columns: 1fr; }
    .pdp-logi { grid-template-columns: 1fr; }
  }
