
    /* Scoped product-page styles. Safe to paste below an existing site header. */
    .zx-grape-hs,
    .zx-grape-hs * { box-sizing: border-box; }
    .zx-grape-hs {
      --zx-ink: #172033;
      --zx-muted: #5d6678;
      --zx-line: #dde2ea;
      --zx-soft: #f5f7fa;
      --zx-white: #fff;
      --zx-purple: #60348b;
      --zx-purple-dark: #382051;
      --zx-grape: #8f59b5;
      --zx-green: #3f7c62;
      --zx-gold: #b88a35;
      --zx-shadow: 0 18px 50px rgba(23,32,51,.10);
      color: var(--zx-ink);
      background: var(--zx-white);
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      font-size: 16px;
      line-height: 1.7;
      overflow: hidden;
    }
    .zx-grape-hs img { display: block; max-width: 100%; }
    .zx-grape-hs a { color: inherit; }
    .zx-grape-hs a:focus-visible,
    .zx-grape-hs summary:focus-visible {
      outline: 3px solid #bda1d4;
      outline-offset: 3px;
    }
    .zx-grape-hs .zx-wrap {
      width: min(1180px, calc(100% - 40px));
      margin-inline: auto;
    }
    .zx-grape-hs .zx-section { padding: 78px 0; }
    .zx-grape-hs .zx-section--soft { background: var(--zx-soft); }
    .zx-grape-hs .zx-section--dark {
      color: var(--zx-white);
      background:
        radial-gradient(circle at 90% 20%, rgba(143,89,181,.35), transparent 30%),
        linear-gradient(135deg, #1c1624, var(--zx-purple-dark));
    }
    .zx-grape-hs .zx-eyebrow {
      display: inline-flex;
      gap: 8px;
      align-items: center;
      margin: 0 0 14px;
      color: var(--zx-purple);
      font-size: .77rem;
      font-weight: 800;
      letter-spacing: .13em;
      text-transform: uppercase;
    }
    .zx-grape-hs .zx-eyebrow::before {
      width: 28px;
      height: 2px;
      background: currentColor;
      content: "";
    }
    .zx-grape-hs .zx-section--dark .zx-eyebrow { color: #d8bee9; }
    .zx-grape-hs h1,
    .zx-grape-hs h2,
    .zx-grape-hs h3 {
      margin: 0;
      line-height: 1.16;
      text-wrap: balance;
    }
    .zx-grape-hs h1 {
      max-width: 760px;
      font-size: clamp(2.35rem, 5vw, 4.65rem);
      letter-spacing: -.055em;
    }
    .zx-grape-hs h2 {
      font-size: clamp(1.85rem, 3vw, 3rem);
      letter-spacing: -.035em;
    }
    .zx-grape-hs h3 {
      font-size: 1.18rem;
      letter-spacing: -.015em;
    }
    .zx-grape-hs p { margin: 0; }
    .zx-grape-hs .zx-lead {
      max-width: 750px;
      color: var(--zx-muted);
      font-size: clamp(1.03rem, 1.6vw, 1.22rem);
    }
    .zx-grape-hs .zx-section--dark .zx-lead { color: #dcd6e1; }
    .zx-grape-hs .zx-heading { display: grid; gap: 16px; margin-bottom: 38px; }
    .zx-grape-hs .zx-btns {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 28px;
    }
    .zx-grape-hs .zx-btn {
      display: inline-flex;
      min-height: 48px;
      padding: 12px 20px;
      align-items: center;
      justify-content: center;
      border: 1px solid var(--zx-purple);
      border-radius: 999px;
      background: var(--zx-purple);
      color: var(--zx-white);
      font-weight: 750;
      text-decoration: none;
      transition: transform .2s ease, background .2s ease;
    }
    .zx-grape-hs .zx-btn:hover { background: var(--zx-purple-dark); transform: translateY(-2px); }
    .zx-grape-hs .zx-btn--ghost { background: transparent; color: var(--zx-purple); }
    .zx-grape-hs .zx-btn--ghost:hover { color: var(--zx-white); }

    .zx-grape-hs .zx-crumbs {
      padding: 16px 0;
      border-bottom: 1px solid var(--zx-line);
      color: var(--zx-muted);
      font-size: .88rem;
    }
    .zx-grape-hs .zx-crumbs ol {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .zx-grape-hs .zx-crumbs li:not(:last-child)::after { margin-left: 8px; content: "/"; }

    .zx-grape-hs .zx-hero {
      color: var(--zx-white);
      background:
        radial-gradient(circle at 75% 15%, rgba(194,155,221,.26), transparent 28%),
        linear-gradient(135deg, #1d1725 0%, #3b2450 58%, #5e337c 100%);
    }
    .zx-grape-hs .zx-hero-grid {
      display: grid;
      min-height: 690px;
      padding: 68px 0;
      grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr);
      gap: 56px;
      align-items: center;
    }
    .zx-grape-hs .zx-hero-copy { display: grid; gap: 23px; }
    .zx-grape-hs .zx-hero .zx-eyebrow { color: #dec4ef; }
    .zx-grape-hs .zx-hero .zx-lead { color: #ebe5ef; }
    .zx-grape-hs .zx-badges {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      padding: 0;
      margin: 0;
      list-style: none;
    }
    .zx-grape-hs .zx-badges li {
      padding: 7px 12px;
      border: 1px solid rgba(255,255,255,.25);
      border-radius: 999px;
      background: rgba(255,255,255,.07);
      color: #f7f2fa;
      font-size: .86rem;
    }
    .zx-grape-hs .zx-hero .zx-btn {
      border-color: var(--zx-white);
      background: var(--zx-white);
      color: var(--zx-purple-dark);
    }
    .zx-grape-hs .zx-hero .zx-btn:hover { background: #eee4f4; }
    .zx-grape-hs .zx-hero .zx-btn--ghost { background: transparent; color: var(--zx-white); }
    .zx-grape-hs .zx-hero-media {
      position: relative;
      padding: 20px;
      border: 1px solid rgba(255,255,255,.16);
      border-radius: 32px;
      background: rgba(255,255,255,.07);
      box-shadow: 0 25px 80px rgba(0,0,0,.28);
      backdrop-filter: blur(8px);
    }
    .zx-grape-hs .zx-hero-media > img {
      width: 100%;
      aspect-ratio: 1/1;
      border-radius: 22px;
      object-fit: cover;
      background: #eee9f2;
    }
    .zx-grape-hs .zx-media-label {
      position: absolute;
      right: 34px;
      bottom: 34px;
      max-width: 230px;
      padding: 12px 15px;
      border-radius: 12px;
      background: rgba(24,18,30,.88);
      color: #fff;
      font-size: .78rem;
      line-height: 1.35;
    }

    .zx-grape-hs .zx-decision {
      position: relative;
      z-index: 2;
      margin-top: -35px;
    }
    .zx-grape-hs .zx-decision-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      border: 1px solid var(--zx-line);
      border-radius: 18px;
      background: var(--zx-white);
      box-shadow: var(--zx-shadow);
      overflow: hidden;
    }
    .zx-grape-hs .zx-decision-item { padding: 24px; }
    .zx-grape-hs .zx-decision-item + .zx-decision-item { border-left: 1px solid var(--zx-line); }
    .zx-grape-hs .zx-decision-item span {
      display: block;
      margin-bottom: 5px;
      color: var(--zx-purple);
      font-size: .72rem;
      font-weight: 800;
      letter-spacing: .09em;
      text-transform: uppercase;
    }
    .zx-grape-hs .zx-decision-item strong { font-size: .98rem; line-height: 1.35; }

    .zx-grape-hs .zx-split {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      gap: 54px;
      align-items: center;
    }
    .zx-grape-hs .zx-copy { display: grid; gap: 19px; }
    .zx-grape-hs .zx-checks {
      display: grid;
      gap: 12px;
      padding: 0;
      margin: 2px 0 0;
      list-style: none;
    }
    .zx-grape-hs .zx-checks li {
      position: relative;
      padding-left: 28px;
      color: var(--zx-muted);
    }
    .zx-grape-hs .zx-checks li::before {
      position: absolute;
      top: .5em;
      left: 0;
      width: 15px;
      height: 15px;
      border-radius: 50%;
      background: var(--zx-purple);
      box-shadow: inset 0 0 0 4px #e8dff0;
      content: "";
    }

    .zx-grape-hs .zx-visual {
      position: relative;
      min-height: 440px;
      border: 1px solid var(--zx-line);
      border-radius: 24px;
      background: #ece6f0;
      box-shadow: var(--zx-shadow);
      overflow: hidden;
    }
    .zx-grape-hs .zx-visual::after {
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(21,14,27,.03) 30%, rgba(21,14,27,.82) 100%);
      content: "";
      pointer-events: none;
    }
    .zx-grape-hs .zx-visual-image {
      width: 100%;
      height: 100%;
      min-height: 440px;
      aspect-ratio: 8 / 5;
      object-fit: cover;
    }
    .zx-grape-hs .zx-visual-head {
      position: absolute;
      z-index: 2;
      right: 26px;
      bottom: 26px;
      left: 26px;
      max-width: 520px;
      color: #fff;
      text-shadow: 0 2px 20px rgba(0,0,0,.35);
    }
    .zx-grape-hs .zx-visual-kicker {
      color: #e6d4f1;
      font-size: .72rem;
      font-weight: 800;
      letter-spacing: .12em;
      text-transform: uppercase;
    }
    .zx-grape-hs .zx-visual h3 { margin-top: 8px; font-size: 1.6rem; }
    .zx-grape-hs .zx-visual-file,
    .zx-grape-hs .zx-visual-cards { display: none; }

    .zx-grape-hs .zx-table-wrap {
      border: 1px solid var(--zx-line);
      border-radius: 18px;
      overflow-x: auto;
      background: var(--zx-white);
    }
    .zx-grape-hs table {
      width: 100%;
      border-collapse: collapse;
      min-width: 760px;
    }
    .zx-grape-hs th,
    .zx-grape-hs td {
      padding: 18px 20px;
      border-bottom: 1px solid var(--zx-line);
      vertical-align: top;
      text-align: left;
    }
    .zx-grape-hs th {
      background: #eee8f2;
      color: var(--zx-purple-dark);
      font-size: .78rem;
      letter-spacing: .055em;
      text-transform: uppercase;
    }
    .zx-grape-hs tbody tr:last-child td { border-bottom: 0; }
    .zx-grape-hs td:first-child { font-weight: 750; }
    .zx-grape-hs .zx-status {
      display: inline-flex;
      padding: 4px 9px;
      border-radius: 999px;
      background: #f2eaf7;
      color: var(--zx-purple);
      font-size: .72rem;
      font-weight: 800;
      white-space: nowrap;
    }

    .zx-grape-hs .zx-cards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 18px;
    }
    .zx-grape-hs .zx-card {
      display: grid;
      gap: 13px;
      min-height: 210px;
      padding: 25px;
      border: 1px solid var(--zx-line);
      border-radius: 16px;
      background: var(--zx-white);
    }
    .zx-grape-hs .zx-num {
      color: var(--zx-grape);
      font-size: .75rem;
      font-weight: 850;
      letter-spacing: .1em;
    }
    .zx-grape-hs .zx-card p { color: var(--zx-muted); font-size: .94rem; }

    .zx-grape-hs .zx-flow {
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      gap: 12px;
      margin-top: 34px;
    }
    .zx-grape-hs .zx-step {
      position: relative;
      min-height: 145px;
      padding: 18px;
      border: 1px solid rgba(255,255,255,.18);
      border-radius: 14px;
      background: rgba(255,255,255,.08);
    }
    .zx-grape-hs .zx-step b {
      display: block;
      margin-bottom: 13px;
      color: #dcbfeb;
      font-size: .75rem;
      letter-spacing: .08em;
    }
    .zx-grape-hs .zx-step span { display: block; color: #f7f3f9; font-weight: 750; line-height: 1.35; }

    .zx-grape-hs .zx-gallery {
      display: grid;
      grid-template-columns: 1.4fr .8fr .8fr;
      gap: 14px;
    }
    .zx-grape-hs .zx-gallery figure {
      margin: 0;
      border-radius: 18px;
      background: #eee9f2;
      overflow: hidden;
    }
    .zx-grape-hs .zx-gallery figure:first-child { grid-row: span 2; }
    .zx-grape-hs .zx-gallery img { width: 100%; height: 100%; min-height: 215px; object-fit: cover; }
    .zx-grape-hs .zx-gallery figure:first-child img { min-height: 444px; }

    .zx-grape-hs .zx-note {
      padding: 20px 22px;
      border-left: 4px solid var(--zx-gold);
      border-radius: 0 12px 12px 0;
      background: #fff8ea;
      color: #554522;
    }
    .zx-grape-hs .zx-note strong { color: #3f331b; }

    .zx-grape-hs .zx-faq { display: grid; gap: 12px; }
    .zx-grape-hs details {
      border: 1px solid var(--zx-line);
      border-radius: 14px;
      background: var(--zx-white);
    }
    .zx-grape-hs summary {
      padding: 20px 54px 20px 22px;
      cursor: pointer;
      font-weight: 780;
      list-style: none;
      position: relative;
    }
    .zx-grape-hs summary::-webkit-details-marker { display: none; }
    .zx-grape-hs summary::after {
      position: absolute;
      top: 18px;
      right: 22px;
      color: var(--zx-purple);
      font-size: 1.3rem;
      content: "+";
    }
    .zx-grape-hs details[open] summary::after { content: "–"; }
    .zx-grape-hs details p { padding: 0 22px 22px; color: var(--zx-muted); }

    .zx-grape-hs .zx-rfq {
      display: grid;
      grid-template-columns: .86fr 1.14fr;
      gap: 48px;
      align-items: start;
    }
    .zx-grape-hs .zx-rfq-list {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 9px;
      padding: 0;
      margin: 28px 0 0;
      list-style: none;
    }
    .zx-grape-hs .zx-rfq-list li {
      padding: 10px 12px;
      border: 1px solid rgba(255,255,255,.16);
      border-radius: 9px;
      background: rgba(255,255,255,.07);
      color: #eee8f1;
      font-size: .86rem;
    }
    .zx-grape-hs .zx-rfq-panel {
      padding: 30px;
      border: 1px solid rgba(255,255,255,.18);
      border-radius: 22px;
      background: rgba(255,255,255,.09);
    }
    .zx-grape-hs .zx-rfq-panel h3 { margin-bottom: 12px; font-size: 1.55rem; }
    .zx-grape-hs .zx-rfq-panel p { color: #ddd5e1; }
    .zx-grape-hs .zx-rfq-panel .zx-btn {
      margin-top: 24px;
      border-color: var(--zx-white);
      background: var(--zx-white);
      color: var(--zx-purple-dark);
    }
    .zx-grape-hs .zx-disclaimer {
      padding: 20px 0;
      border-top: 1px solid var(--zx-line);
      color: var(--zx-muted);
      font-size: .82rem;
    }

    @media (max-width: 980px) {
      .zx-grape-hs .zx-hero-grid,
      .zx-grape-hs .zx-split,
      .zx-grape-hs .zx-rfq { grid-template-columns: 1fr; }
      .zx-grape-hs .zx-hero-grid { min-height: 0; }
      .zx-grape-hs .zx-hero-media { max-width: 650px; }
      .zx-grape-hs .zx-decision-grid { grid-template-columns: repeat(2, 1fr); }
      .zx-grape-hs .zx-decision-item:nth-child(3) { border-left: 0; border-top: 1px solid var(--zx-line); }
      .zx-grape-hs .zx-decision-item:nth-child(4) { border-top: 1px solid var(--zx-line); }
      .zx-grape-hs .zx-cards { grid-template-columns: repeat(2, 1fr); }
      .zx-grape-hs .zx-flow { grid-template-columns: repeat(3, 1fr); }
    }
    @media (max-width: 680px) {
      .zx-grape-hs .zx-wrap { width: min(100% - 28px, 1180px); }
      .zx-grape-hs .zx-section { padding: 58px 0; }
      .zx-grape-hs .zx-hero-grid { padding: 50px 0 72px; gap: 36px; }
      .zx-grape-hs .zx-decision-grid,
      .zx-grape-hs .zx-cards,
      .zx-grape-hs .zx-flow,
      .zx-grape-hs .zx-rfq-list { grid-template-columns: 1fr; }
      .zx-grape-hs .zx-decision-item + .zx-decision-item { border-top: 1px solid var(--zx-line); border-left: 0; }
      .zx-grape-hs .zx-gallery { grid-template-columns: 1fr 1fr; }
      .zx-grape-hs .zx-gallery figure:first-child { grid-column: span 2; grid-row: auto; }
      .zx-grape-hs .zx-gallery figure:first-child img { min-height: 320px; }
      .zx-grape-hs .zx-visual,
      .zx-grape-hs .zx-visual-image { min-height: 330px; }
      .zx-grape-hs .zx-visual-head { right: 20px; bottom: 20px; left: 20px; }
    }
  