/* Diagnocine ELISA Product Page - Canonical Theme (external) */

.dcn-bundle, .dcn-bundle *, .dcn-bundle *::before, .dcn-bundle *::after { box-sizing: border-box; }

    .dcn-bundle {
      --dcn-ink:#17141F; --dcn-slate:#55516A; --dcn-slate2:#726C86; --dcn-line:#ECE9F5;
      --dcn-brand:#6D28D9; --dcn-brand2:#7C3AED; --dcn-brand-d:#4C1D95;
      --dcn-tint:#F5F2FE; --dcn-tint2:#E7E0FB;
      --dcn-green:#15803D; --dcn-green-bg:#E7F8EE;
      --dcn-amber:#B45309; --dcn-amber-bg:#FEF6E7; --dcn-amber-line:#F59E0B;

      font-family:'DM Sans', system-ui, -apple-system, sans-serif;
      color:var(--dcn-ink);
      max-width:744px; margin:0 auto 20px; padding:26px;
      background:#FFFFFF; border:1px solid var(--dcn-line); border-radius:16px;
      box-shadow:0 1px 2px rgba(23,20,31,.04), 0 10px 30px rgba(23,20,31,.05);
      line-height:1.6; -webkit-font-smoothing:antialiased;
    }

    /* -- Hero -- */
    .dcn-bundle .dcn-hero {
      position:relative; overflow:hidden;
      background:linear-gradient(135deg,#5B21B6 0%,#7C3AED 55%,#6D28D9 100%);
      border-radius:14px; padding:32px 26px; margin-bottom:20px; text-align:center;
      box-shadow:0 12px 30px rgba(76,29,149,.26);
    }
    .dcn-bundle .dcn-hero::before {
      content:""; position:absolute; inset:0; pointer-events:none;
      background:radial-gradient(120% 90% at 50% -10%, rgba(255,255,255,.20), rgba(255,255,255,0) 60%);
    }
    .dcn-bundle .dcn-hero-title {
      position:relative; margin:0 0 8px; color:#FFFFFF;
      font-size:26px; font-weight:700; letter-spacing:-0.02em; line-height:1.24;
    }
    .dcn-bundle .dcn-hero-line2 {
      position:relative; margin:0 auto 16px; max-width:600px;
      font-size:15px; font-weight:500; color:#EDE7FE; line-height:1.55;
    }
    .dcn-bundle .dcn-hero-count { font-weight:800; font-size:17px; color:#FFFFFF; }
    .dcn-bundle .dcn-hero-sub {
      position:relative; margin:0 auto; max-width:620px; padding-top:14px;
      font-size:13px; font-weight:500; color:#E4D9FB; line-height:1.6;
    }
    .dcn-bundle .dcn-hero-sub::before {
      content:""; display:block; width:44px; height:2px; margin:0 auto 12px;
      background:rgba(255,255,255,.35); border-radius:2px;
    }

    /* -- Credibility callout (stat strip) -- */
    .dcn-bundle .dcn-stat-strip {
      background:var(--dcn-tint); border:1px solid var(--dcn-tint2);
      border-left:3px solid var(--dcn-brand2);
      border-radius:12px; padding:16px 18px; margin-bottom:22px;
    }
    .dcn-bundle .dcn-stat-number { display:none; }
    .dcn-bundle .dcn-badge-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
    .dcn-bundle .dcn-iso-tag {
      display:inline-flex; align-items:center; gap:8px;
      background:#fff; color:var(--dcn-brand-d); border:1px solid var(--dcn-tint2);
      font-size:11px; font-weight:700; letter-spacing:.3px;
      padding:7px 14px; border-radius:20px;
      box-shadow:0 1px 2px rgba(23,20,31,.05);
    }
    .dcn-bundle .dcn-iso-tag::before {
      content:""; width:7px; height:7px; border-radius:50%; flex:0 0 auto;
      background:var(--dcn-green); box-shadow:0 0 0 3px rgba(21,128,61,.14);
    }
    .dcn-bundle .dcn-callout-text {
      margin:0; font-size:13.5px; color:var(--dcn-slate); line-height:1.75;
    }

    /* -- Content blocks / headings -- */
    .dcn-bundle .dcn-block { margin-bottom:24px; }
    .dcn-bundle .dcn-block--last { margin-bottom:0; }
    .dcn-bundle .dcn-h2 {
      margin:0 0 12px; padding-bottom:10px; border-bottom:1px solid var(--dcn-line);
      font-size:18px; font-weight:700; color:var(--dcn-ink); letter-spacing:-0.01em;
    }
    .dcn-bundle .dcn-h2 strong { font-weight:700; }
    .dcn-bundle .dcn-h3 {
      margin:0 0 6px; font-size:15px; font-weight:700; color:var(--dcn-ink);
      display:flex; align-items:center; gap:9px;
    }
    .dcn-bundle .dcn-h3::before {
      content:""; width:8px; height:8px; border-radius:2px; flex:0 0 auto;
      background:var(--dcn-brand2);
    }
    .dcn-bundle .dcn-lead {
      margin:0; font-size:14px; color:var(--dcn-slate); line-height:1.75; text-align:left;
    }
    .dcn-bundle .dcn-checklist {
      display:block; margin-top:12px; padding:14px 16px;
      background:var(--dcn-tint); border:1px solid var(--dcn-tint2); border-radius:10px;
      font-weight:600; color:var(--dcn-brand-d); font-size:13.5px; line-height:1.95;
    }
    .dcn-bundle .dcn-helper {
      margin:0 0 14px; font-size:12.5px; color:var(--dcn-slate2); line-height:1.55;
    }

    /* -- Reagent grid / cards -- */
    .dcn-bundle .dcn-reagent-grid {
      display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-bottom:18px;
    }
    .dcn-bundle .dcn-reagent-card {
      border:1px solid var(--dcn-line); border-radius:12px; padding:16px 14px; background:#fff;
      display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px;
      box-shadow:0 1px 2px rgba(23,20,31,.03);
      transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    }
    .dcn-bundle .dcn-reagent-card:hover {
      transform:translateY(-2px); border-color:var(--dcn-tint2);
      box-shadow:0 8px 22px rgba(76,29,149,.10);
    }
    .dcn-bundle .dcn-code-badge {
      display:inline-block; font-family:'DM Mono','Courier New',monospace;
      font-size:12px; font-weight:500; color:var(--dcn-brand-d);
      background:var(--dcn-tint2); padding:4px 10px; border-radius:6px; letter-spacing:.2px;
    }
    .dcn-bundle .dcn-reagent-desc {
      margin:0; font-size:13.5px; font-weight:500; color:var(--dcn-ink); line-height:1.4;
    }
    .dcn-bundle .dcn-included-tag {
      font-size:10px; font-weight:700; letter-spacing:.4px; text-transform:uppercase;
      color:var(--dcn-green); background:var(--dcn-green-bg); padding:3px 9px; border-radius:20px;
    }
    .dcn-bundle .dcn-included-amber { color:var(--dcn-amber); background:var(--dcn-amber-bg); }
    .dcn-bundle .diagnocine-btn-container { margin-top:2px; text-align:center; }
    .dcn-bundle .btn-view-more {
      display:inline-block; background:var(--dcn-brand2); color:#fff !important;
      font-family:'DM Sans',sans-serif; font-size:12px; font-weight:600; letter-spacing:.2px;
      text-decoration:none !important; padding:8px 18px; border-radius:20px;
      box-shadow:0 2px 8px rgba(124,58,237,.28); transition:all .2s ease; white-space:nowrap;
    }
    .dcn-bundle .btn-view-more:hover {
      background:var(--dcn-brand); transform:translateY(-1px); box-shadow:0 5px 14px rgba(124,58,237,.4);
    }

    /* -- Detection-specific OR choice -- */
    .dcn-bundle .dcn-or-note {
      margin:0 0 10px; text-align:center; font-size:12.5px; font-weight:700; color:var(--dcn-amber);
    }
    .dcn-bundle .dcn-or-row {
      display:grid; grid-template-columns:1fr auto 1fr; gap:10px; align-items:stretch; margin-bottom:18px;
    }
    .dcn-bundle .dcn-or-card {
      border:1px dashed var(--dcn-amber-line); background:var(--dcn-amber-bg); border-radius:12px;
      padding:16px 14px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px;
    }
    .dcn-bundle .dcn-or-card .dcn-code-badge { background:#FADFB4; color:#8A4B08; }
    .dcn-bundle .dcn-or-card .dcn-reagent-desc { color:#7A3E08; }
    .dcn-bundle .dcn-or-divider {
      align-self:center; width:34px; height:34px; border-radius:50%;
      background:var(--dcn-amber-line); color:#fff; font-size:11px; font-weight:800;
      display:flex; align-items:center; justify-content:center;
      box-shadow:0 2px 8px rgba(245,158,11,.35);
    }

    /* -- Contact note -- */
    .dcn-bundle .dcn-contact-note {
      margin:0; text-align:center; font-size:13px; font-weight:700; color:var(--dcn-amber);
      background:var(--dcn-amber-bg); border:1px solid #F6D9A0; border-radius:10px; padding:12px 14px;
      line-height:1.6;
    }
    .dcn-bundle .dcn-contact-note a {
      color:#7A3E08; text-decoration:underline; text-underline-offset:2px; font-weight:700;
    }
    .dcn-bundle .dcn-contact-note a:hover { color:var(--dcn-brand-d); }

    /* -- Key value highlights -- */
    .dcn-bundle .dcn-highlights-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
    .dcn-bundle .dcn-highlight-item {
      position:relative; background:var(--dcn-tint); border:1px solid var(--dcn-tint2);
      border-radius:12px; padding:16px;
    }
    .dcn-bundle .dcn-highlight-item::before {
      content:""; position:absolute; top:0; left:16px; right:16px; height:3px; border-radius:0 0 3px 3px;
      background:linear-gradient(90deg,var(--dcn-brand2),var(--dcn-brand));
    }
    .dcn-bundle .dcn-highlight-title { margin:6px 0 4px; font-size:13.5px; font-weight:700; color:var(--dcn-ink); }
    .dcn-bundle .dcn-highlight-text { margin:0; font-size:12.5px; color:var(--dcn-slate); line-height:1.6; }

    @media (max-width:640px) {
      .dcn-bundle { padding:18px; }
      .dcn-bundle .dcn-reagent-grid { grid-template-columns:1fr; }
      .dcn-bundle .dcn-or-row { grid-template-columns:1fr; }
      .dcn-bundle .dcn-or-divider { margin:0 auto; }
      .dcn-bundle .dcn-highlights-grid { grid-template-columns:1fr; }
      .dcn-bundle .dcn-hero-title { font-size:22px; }
      .dcn-bundle .dcn-hero-line2 { font-size:14px; }
    }

.elisa-product *, .elisa-product *::before, .elisa-product *::after { box-sizing:border-box; }

    .elisa-product {
      --ep-ink:#17141F; --ep-slate:#55516A; --ep-slate2:#726C86; --ep-faint:#A29CB5;
      --ep-line:#ECE9F5; --ep-line-md:#E0DAF0;
      --ep-brand:#6D28D9; --ep-brand2:#7C3AED; --ep-brand-d:#4C1D95;
      --ep-tint:#F5F2FE; --ep-tint2:#E7E0FB;
      --ep-teal:#0F7A5A; --ep-teal-bg:#E8FAF4; --ep-teal-d:#084D38;
      --ep-amber:#B45309; --ep-amber-bg:#FEF6E7;
      --ep-white:#FFFFFF; --ep-page:#FBFAFE;
      --ep-font:'DM Sans', system-ui, -apple-system, sans-serif;
      --ep-mono:'DM Mono','Courier New',monospace;

      font-family:var(--ep-font); font-size:16px; line-height:1.6; color:var(--ep-ink);
      background:var(--ep-page); -webkit-font-smoothing:antialiased;
      max-width:744px; margin:0 auto; padding:6px 2px 36px;
    }

    /* -- Breadcrumb -- */
    .elisa-product .ep-breadcrumb {
      font-size:12px; color:var(--ep-slate); display:flex; align-items:center; gap:7px;
      flex-wrap:wrap; margin:0 0 16px; padding:0 2px;
    }
    .elisa-product .ep-breadcrumb a { color:var(--ep-brand); text-decoration:none; font-weight:500; }
    .elisa-product .ep-breadcrumb a:hover { text-decoration:underline; }
    .elisa-product .ep-breadcrumb .ep-sep { color:var(--ep-faint); }

    /* -- Base card -- */
    .elisa-product .ep-card {
      background:var(--ep-white); border:1px solid var(--ep-line); border-radius:14px;
      padding:22px 24px; margin:0 0 16px;
      box-shadow:0 1px 2px rgba(23,20,31,.03), 0 8px 24px rgba(23,20,31,.04);
    }

    /* -- Category badge -- */
    .elisa-product .ep-cat-badge {
      display:inline-flex; align-items:center; gap:5px; background:var(--ep-tint); color:var(--ep-brand);
      font-size:11px; font-weight:600; padding:4px 12px; border-radius:20px; margin:0 0 12px; letter-spacing:.02em;
    }

    /* -- Product title -- */
    .elisa-product .ep-product-name {
      font-family:var(--ep-font); font-size:24px; font-weight:600; color:var(--ep-ink);
      line-height:1.3; letter-spacing:-0.02em; margin:0 0 8px; padding:0; border:none; background:none;
    }
    .elisa-product .ep-product-subtitle { font-size:13.5px; color:var(--ep-slate); margin:0 0 16px; line-height:1.55; }

    /* -- Size chips -- */
    .elisa-product .ep-size-row { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
    .elisa-product .ep-chip {
      font-size:12px; font-family:var(--ep-font); font-weight:500; padding:6px 15px; border-radius:20px;
      border:1px solid var(--ep-line-md); color:var(--ep-slate); background:var(--ep-white); cursor:default;
    }
    .elisa-product .ep-chip--trial { background:var(--ep-amber-bg); color:var(--ep-amber); border-color:#F3D9AE; }
    .elisa-product .ep-chip--active { background:var(--ep-brand); color:#fff; border-color:var(--ep-brand); font-weight:600; }
    .elisa-product .ep-inline-note { font-size:11.5px; color:var(--ep-amber); margin:10px 0 0; line-height:1.5; }

    /* -- Metric cards -- */
    .elisa-product .ep-metrics-grid {
      display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:0 0 16px;
    }
    .elisa-product .ep-metric {
      background:var(--ep-tint); border:1px solid var(--ep-tint2); border-left:3px solid var(--ep-brand2);
      border-radius:12px; padding:14px 16px;
    }
    .elisa-product .ep-metric-label {
      font-size:10px; color:var(--ep-brand); text-transform:uppercase; letter-spacing:.07em; font-weight:600; margin:0 0 6px;
    }
    .elisa-product .ep-metric-value {
      font-size:21px; font-weight:500; color:var(--ep-brand-d); font-family:var(--ep-mono); line-height:1.2;
    }
    .elisa-product .ep-metric-unit { font-size:12px; color:var(--ep-brand); font-weight:400; font-family:var(--ep-font); }

    /* -- Section title -- */
    .elisa-product .ep-section-title {
      font-size:11px; font-weight:700; color:var(--ep-slate); text-transform:uppercase; letter-spacing:.09em;
      margin:0 0 14px; display:flex; align-items:center; gap:8px;
    }
    .elisa-product .ep-section-title::before { content:""; width:7px; height:7px; border-radius:2px; background:var(--ep-brand2); }

    /* -- Spec table -- */
    .elisa-product .ep-spec-table { width:100%; border-collapse:collapse; font-family:var(--ep-font); }
    .elisa-product .ep-spec-table tr { border-bottom:1px solid var(--ep-line); }
    .elisa-product .ep-spec-table tr:last-child { border-bottom:none; }
    .elisa-product .ep-spec-table td { padding:10px 0; font-size:14px; vertical-align:top; color:var(--ep-ink); }
    .elisa-product .ep-spec-table td:first-child { color:var(--ep-slate); width:46%; padding-right:14px; font-weight:400; }
    .elisa-product .ep-spec-table td:last-child { font-weight:600; }

    /* -- Keyword tags -- */
    .elisa-product .ep-tags-row { display:flex; gap:7px; flex-wrap:wrap; margin:16px 0 0; }
    .elisa-product .ep-tag {
      font-size:11px; padding:4px 11px; border-radius:20px; border:1px solid var(--ep-tint2);
      color:var(--ep-brand); background:var(--ep-tint); font-weight:500;
    }

    /* -- Logistics grid -- */
    .elisa-product .ep-logistics-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0 0 16px; }
    .elisa-product .ep-logistics-card {
      background:var(--ep-white); border:1px solid var(--ep-line); border-radius:14px; padding:16px 18px;
      box-shadow:0 1px 2px rgba(23,20,31,.03);
    }
    .elisa-product .ep-lc-label {
      font-size:10px; color:var(--ep-slate); text-transform:uppercase; letter-spacing:.07em; font-weight:700; margin:0 0 5px;
    }
    .elisa-product .ep-lc-val { font-size:16px; font-weight:600; color:var(--ep-ink); margin:0; }
    .elisa-product .ep-lc-sub { font-size:12px; color:var(--ep-slate); margin:3px 0 0; }

    /* -- Assay principle flow -- */
    .elisa-product .ep-flow { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 16px; }
    .elisa-product .ep-flow br { display:none; }
    .elisa-product .ep-flow-step {
      background:var(--ep-tint2); color:var(--ep-brand-d); font-size:12px; font-weight:600;
      padding:7px 14px; border-radius:20px; white-space:nowrap;
    }
    .elisa-product .ep-principle-desc { font-size:13.5px; color:var(--ep-slate); line-height:1.7; margin:0; }

    /* -- RUO notice bar -- */
    .elisa-product .ep-notice {
      background:var(--ep-teal-bg); border:1px solid rgba(15,122,90,.18); border-left:3px solid var(--ep-teal);
      border-radius:12px; padding:12px 16px; display:flex; gap:9px; align-items:flex-start; margin:0 0 16px;
    }
    .elisa-product .ep-notice-text { font-size:13px; color:var(--ep-teal-d); line-height:1.6; }
    .elisa-product .ep-notice-text strong { font-weight:700; }

    /* -- Citation -- */
    .elisa-product .ep-cite-item { display:flex; gap:12px; align-items:flex-start; }
    .elisa-product .ep-cite-body { flex:1; }
    .elisa-product .ep-cite-title {
      font-size:14px; font-weight:600; color:var(--ep-brand); line-height:1.5; margin:0 0 6px;
      text-decoration:none; display:block;
    }
    .elisa-product .ep-cite-title:hover { color:var(--ep-brand-d); text-decoration:underline; }
    .elisa-product .ep-cite-meta { font-size:12px; color:var(--ep-slate); margin:0; }
    .elisa-product .ep-cite-meta em { font-style:italic; }
    .elisa-product .ep-oa-badge {
      display:inline-flex; align-items:center; gap:3px; font-size:11px; background:var(--ep-teal-bg);
      color:var(--ep-teal); padding:2px 9px; border-radius:20px; margin-left:6px; font-style:normal;
      border:1px solid rgba(15,122,90,.18);
    }

    /* -- Footer note -- */
    .elisa-product .ep-footer-note {
      font-size:12px; color:var(--ep-faint); text-align:center; margin:24px 0 0; padding:16px 0 0;
      border-top:1px solid var(--ep-line);
    }

    /* -- Responsive -- */
    @media (max-width:480px) {
      .elisa-product .ep-logistics-grid { grid-template-columns:1fr; }
      .elisa-product .ep-metrics-grid   { grid-template-columns:1fr 1fr; }
      .elisa-product .ep-product-name   { font-size:20px; }
      .elisa-product .ep-card           { padding:18px; }
    }

/* rich content + more helpers */
.elisa-product .ep-rich{font-size:13.5px;color:var(--ep-slate);line-height:1.7;}
    .elisa-product .ep-rich p{margin:0 0 10px;}
    .elisa-product .ep-rich ul,.elisa-product .ep-rich ol{margin:0 0 10px;padding-left:20px;}
    .elisa-product .ep-rich li{margin:0 0 6px;}
    .elisa-product .ep-rich a{color:var(--ep-brand);text-decoration:none;font-weight:500;}
    .elisa-product .ep-rich a:hover{text-decoration:underline;}
    .elisa-product .ep-rich table{width:100%;border-collapse:collapse;margin:4px 0 10px;font-size:12.5px;}
    .elisa-product .ep-rich td,.elisa-product .ep-rich th{border:1px solid var(--ep-line);padding:6px 8px;vertical-align:top;text-align:left;}
    .elisa-product .ep-rich strong,.elisa-product .ep-rich b{color:var(--ep-ink);font-weight:600;}    .elisa-product .ep-more{display:flex;gap:10px;align-items:flex-start;margin:14px 0 0;padding:12px 14px;background:var(--ep-tint);border:1px dashed var(--ep-tint2);border-radius:12px;}
    .elisa-product .ep-more-plus{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:var(--ep-brand);color:#fff;font-weight:800;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;}
    .elisa-product .ep-more-text{font-size:12.5px;color:var(--ep-slate);line-height:1.6;}
    .elisa-product .ep-more-text strong{color:var(--ep-brand-d);font-weight:700;}
