/*
 * Report Description Page -- Page-Specific CSS
 * Namespace: rd-, report-description-
 * All colors use approved design tokens from variables.css.
 * No :root declarations. No color overrides. No typography overrides.
 */

  /* ══════════════════════════════════════════════════════════
     REPORT DESCRIPTION PAGE — Page-Scoped Styles
     Namespace: report-description-
     Tokens: var(--color), var(--text-*), var(--fw-*), var(--lh-*)
     No :root block. No hardcoded hex. No CDN links.
  ══════════════════════════════════════════════════════════ */

  /* ══════════════════════════════════════════
     REPORT INFO BAR — premium dark card
     inside main content column, top-sticky
  ══════════════════════════════════════════ */
  .rd-info-bar {
    position: sticky;
    top: 68px;
    z-index: 700;
    background: linear-gradient(135deg, var(--navy-deep) 0%, var(--sidebar-dark) 100%);
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(13,71,161,0.18), 0 1px 4px rgba(0,0,0,0.14);
    -webkit-font-smoothing: antialiased;
    overflow: hidden;
    /* hidden by default — takes zero space, reveals after hero scrolls out */
    opacity: 0;
    max-height: 0;
    margin-bottom: 0;
    pointer-events: none;
    transition: opacity 0.28s ease, max-height 0.32s ease, margin-bottom 0.28s ease;
  }
  .rd-info-bar.rd-ib-visible {
    opacity: 1;
    max-height: 100px;
    margin-bottom: 20px;
    pointer-events: auto;
  }
  /* Hide original info bar when header is in report mode (shown in header instead) */
  .site-header.hdr-report-mode ~ .report-description-page .rd-info-bar,
  .hdr-report-mode-active .rd-info-bar {
    visibility: hidden !important;
    pointer-events: none !important;
  }
  /* Fade info bar + drop z-index when site header nav dropdown opens */
  .rd-info-bar.rd-ib-nav-hidden {
    opacity: 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
    transition: opacity 0.18s ease, z-index 0s 0.18s !important;
  }
  .rd-info-bar-inner {
    display: flex;
    align-items: stretch;
    padding: 0;
  }

  /* ── Column base ── */
  .rd-ib-col {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    padding: 11px 18px;
  }
  .rd-ib-col-geo   { flex-shrink: 0; padding: 11px 20px; background: var(--navy-deep); }
  .rd-ib-col-title { flex: 1; min-width: 0; background: var(--blue); }
  .rd-ib-col-ind   { flex-shrink: 0; padding: 11px 16px; min-width: 100px; background: linear-gradient(rgba(255,255,255,0.11), rgba(255,255,255,0.11)), var(--blue); }
  .rd-ib-col-sub   { flex-shrink: 0; padding: 11px 16px; min-width: 130px; background: linear-gradient(rgba(255,255,255,0.11), rgba(255,255,255,0.11)), var(--blue); }

  /* ── Column divider ── */
  .rd-ib-divider {
    width: 1px;
    background: rgba(255,255,255,0.14);
    flex-shrink: 0;
    margin: 10px 0;
  }

  /* ── Row 1: label / heading row ── */
  .rd-ib-r1 {
    display: flex;
    align-items: center;
    gap: 6px;
    line-height: 1;
  }
  .rd-ib-r1-text {
    font-size: 10px;
    font-weight: var(--fw-extrabold);
    color: var(--white);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
  }

  /* ── Row 2: value / meta row ── */
  .rd-ib-r2 {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: nowrap;
    overflow: hidden;
    line-height: 1;
  }
  .rd-ib-r2-text {
    font-size: var(--text-sm);
    font-weight: var(--fw-bold);
    color: var(--white);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .rd-ib-meta-item {
    font-size: 11px;
    font-weight: var(--fw-medium);
    color: var(--white);
    white-space: nowrap;
  }
  .rd-ib-dot {
    font-size: 9px;
    color: var(--white);
    flex-shrink: 0;
  }

  /* ── Geo button ── */
  .rd-ib-geo-btn {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: none;
    cursor: pointer;
    font-family: var(--font-sans);
    padding: 0;
    text-align: left;
    white-space: nowrap;
    animation: rd-ib-geo-zoom 4s ease-in-out infinite;
    transform-origin: center;
  }
  @keyframes rd-ib-geo-zoom {
    0%   { transform: scale(1);    }
    20%  { transform: scale(1.10); }
    40%  { transform: scale(1);    }
    100% { transform: scale(1);    }
  }
  .rd-ib-geo-btn:hover {
    animation: none;
    opacity: 0.78;
    transform: scale(1);
  }
  .rd-ib-geo-top {
    display: flex;
    align-items: center;
    gap: 5px;
  }
  .rd-ib-geo-icon {
    width: 11px; height: 11px;
    stroke: var(--white); fill: none;
    stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
    flex-shrink: 0;
  }
  .rd-ib-geo-label {
    font-size: 10px;
    font-weight: var(--fw-extrabold);
    color: var(--white);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1;
  }
  .rd-ib-geo-chevron {
    width: 8px; height: 8px;
    stroke: var(--white); fill: none;
    stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round;
    transition: transform 0.2s;
    flex-shrink: 0;
  }
  .rd-ib-geo-btn[aria-expanded="true"] .rd-ib-geo-chevron { transform: rotate(180deg); }
  .rd-ib-geo-name {
    font-size: var(--text-xs);
    font-weight: var(--fw-bold);
    color: var(--white);
    white-space: nowrap;
    background: rgba(255,255,255,0.16);
    border: 1px solid rgba(255,255,255,0.28);
    border-radius: 20px;
    padding: 2px 9px;
    line-height: 1.5;
    transition: background 0.15s;
  }
  .rd-ib-geo-btn:hover .rd-ib-geo-name {
    background: rgba(255,255,255,0.24);
  }

  /* ── Title (row 1 of title col) ── */
  .rd-ib-title {
    font-size: 12px;
    font-weight: var(--fw-bold);
    color: var(--white);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
  }

  /* ── Format icons (PDF / Excel) ── */
  .rd-ib-fmt {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex-shrink: 0;
  }
  .rd-ib-fmt-badge {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-size: 10px;
    font-weight: var(--fw-normal);
    line-height: 1;
  }
  .rd-ib-fmt-badge svg {
    width: 11px; height: 11px;
    fill: none; stroke-width: 1.8;
    stroke-linecap: round; stroke-linejoin: round;
    flex-shrink: 0;
  }
  .rd-ib-fmt-pdf { color: var(--av-red); }
  .rd-ib-fmt-pdf svg { stroke: var(--av-red); }
  .rd-ib-fmt-xls { color: var(--av-green); }
  .rd-ib-fmt-xls svg { stroke: var(--av-green); }

  /* ── Industry / Sub-industry labels ── */
  .rd-ib-ind-label {
    font-size: 10px;
    font-weight: var(--fw-normal);
    color: var(--white);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1;
  }
  .rd-ib-ind-value {
    font-size: 12px;
    font-weight: var(--fw-normal);
    color: var(--white);
    white-space: nowrap;
  }

  /* ── Sidebar Overlay (mobile backdrop) ── */
  .report-description-sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 800;
    backdrop-filter: blur(2px);
  }
  .report-description-sidebar-overlay.active { display: block; }

  /* ── Breadcrumb ── */
  .report-description-breadcrumb {
    background: var(--page-bg);
    border-bottom: 1px solid var(--card-border);
    padding: 10px 28px;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--text-xs);
    color: var(--text-muted);
  }
  .report-description-breadcrumb a {
    color: var(--navy);
    text-decoration: none;
    font-weight: var(--fw-medium);
  }
  .report-description-breadcrumb a:hover { text-decoration: underline; }
  .report-description-breadcrumb .report-description-breadcrumb-sep {
    color: var(--text-muted);
    font-size: var(--text-xs);
  }
  .report-description-breadcrumb .report-description-breadcrumb-current {
    color: var(--text-mid);
    font-weight: var(--fw-semibold);
  }

  /* ══════════════════════════════════════
     HERO ROW — hero content + pricing side by side
  ══════════════════════════════════════ */
  .report-description-page { background: var(--page-bg); }

  .report-description-hero-row {
    display: grid;
    grid-template-columns: 19fr 11fr;
    gap: 20px;
    align-items: stretch;
    background: var(--page-bg);
    position: relative;
    overflow: hidden;
    /* Hero auto-fit factor. Stays 1 — i.e. standard sizing, byte-identical to
       before — unless the hero content is taller than the pricing card, in
       which case initializeReportDescriptionHeroAutoFit() lowers it just
       enough for the two columns to match. That is what stops the pricing card
       from growing an empty green band at its bottom. Nothing else reads it. */
    --rd-hero-fit: 1;
    /* Locked row height, written by the same JS. It is the pricing card's
       STANDARD content height — identical on every report, because the card
       always carries the same header, six plans and trust footer. Keeping the
       row pinned to it means every report renders at the Global Cloud
       Computing height, and an optional bundle notice can no longer stretch
       the row. Stays `auto` until JS runs and below the two-column breakpoint. */
    --rd-hero-row-h: auto;
  }
  .report-description-hero-row > * { height: var(--rd-hero-row-h); }

  /* Measurement pass only — lets each column report its natural height instead
     of the stretched/locked row height. JS toggles this for a single frame.
     align-self is reset too: the pricing card carries its own
     align-self:stretch, which would otherwise beat align-items on the row and
     keep reporting the stretched height. The bundle notice is taken out of
     flow here so the measured height is the standard one even on reports that
     show it — that is what makes the locked height identical everywhere. */
  .report-description-hero-row.rd-hero-measuring { align-items: start; }
  .report-description-hero-row.rd-hero-measuring > * { height: auto; align-self: start; }
  .report-description-hero-row.rd-hero-measuring .rd-pc-bundle-notice { display: none; }

  /* Hero left column — wraps hero section only (meta bar moved above) */
  .report-description-hero-left-col {
    display: flex;
    flex-direction: column;
    border-radius: 0;
    overflow: hidden;
    min-width: 0;
    border-right: none;
    background: var(--sidebar-dark);
  }

  .report-description-hero {
    background: transparent;
    color: var(--white);
    padding: 20px 28px 18px;
    position: relative;
    flex: 1;
    min-height: 0;
    -webkit-font-smoothing: antialiased;
    display: flex;
    flex-direction: column;
  }
  .report-description-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
  }

  /* Hero content wrapper */
  .report-description-hero-inner {
    max-width: 960px;
    position: relative;
    z-index: 1;
    flex: 1;
    display: flex;
    flex-direction: column;
  }

  /* Hero left content column */
  .report-description-hero-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  /* H1 — scales down only when the hero has to fit the pricing card height.
     max() keeps it readable (never below 20px) even at the smallest factor. */
  .report-description-hero-content h1 {
    font-size: max(1.25rem, calc(var(--text-3xl) * var(--rd-hero-fit)));
    font-weight: var(--fw-extrabold);
    line-height: var(--lh-tight);
    color: var(--white);
    margin-bottom: 0;
    letter-spacing: -0.3px;
  }

  /* 1px divider after title */
  .report-description-hero-divider {
    width: 100%;
    height: 1px;
    background: rgba(255,255,255,0.18);
    margin: calc(10px * var(--rd-hero-fit)) 0 calc(22px * var(--rd-hero-fit));
    border: none;
    flex-shrink: 0;
  }

  /* ── Rectangular Stats Row ── */
  .report-description-hero-stats-row {
    display: flex;
    gap: 10px;
    margin-bottom: auto;
    margin-top: 0;
  }
  .report-description-hero-stat-rect {
    flex: 1;
    background: transparent;
    border: none;
    border-left: 3px solid rgba(255,255,255,0.35);
    border-radius: 0;
    padding: 6px 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: border-left-color 0.18s;
  }
  .report-description-hero-stat-rect:hover {
    border-left-color: var(--av-teal);
  }
  .report-description-hero-stat-icon {
    width: 28px; height: 28px;
    background: transparent;
    border-radius: 0;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
  }
  .report-description-hero-stat-icon svg {
    width: 18px; height: 18px;
    stroke: rgba(255,255,255,0.55);
    fill: none;
    stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
    transition: stroke 0.18s;
  }
  .report-description-hero-stat-rect:hover .report-description-hero-stat-icon svg {
    stroke: var(--av-teal);
  }
  .report-description-hero-stat-body { display: flex; flex-direction: column; gap: 2px; }
  .report-description-hero-stat-value {
    font-size: max(1rem, calc(var(--text-xl) * var(--rd-hero-fit)));
    font-weight: var(--fw-extrabold);
    color: rgba(255,255,255,0.88);
    line-height: 1.1;
    transition: color 0.18s;
  }
  .report-description-hero-stat-rect:hover .report-description-hero-stat-value {
    color: var(--white);
  }
  .report-description-hero-stat-label {
    font-size: var(--text-xs);
    font-weight: var(--fw-semibold);
    color: rgba(255,255,255,0.45);
    text-transform: uppercase;
    letter-spacing: 0.8px;
    transition: color 0.18s;
  }
  .report-description-hero-stat-rect:hover .report-description-hero-stat-label {
    color: rgba(255,255,255,0.72);
  }

  /* ── Market Overview row ── */
  .report-description-hero-overview {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: calc(18px * var(--rd-hero-fit));
    margin-bottom: 0;
    padding: 8px 0;
    background: transparent;
    border: none;
    border-radius: 0;
    transform: translateY(-10%);
  }
  .report-description-hero-overview-text {
    font-size: var(--text-sm);
    color: rgba(255,255,255,0.72);
    line-height: var(--lh-normal);
    flex: 1;
    align-self: center;
  }
  @keyframes rd-scroll-bounce {
    0%, 100% { transform: translateY(0); opacity: 1; }
    45%       { transform: translateY(5px); opacity: 0.7; }
  }
  @keyframes rd-scroll-pulse-ring {
    0%   { box-shadow: 0 0 0 0 rgba(0,188,162,0.55); }
    70%  { box-shadow: 0 0 0 10px rgba(0,188,162,0); }
    100% { box-shadow: 0 0 0 0 rgba(0,188,162,0); }
  }
  .report-description-btn-hero-teal {
    padding: 9.5px 18px;
    background: var(--av-teal);
    color: var(--white);
    border: none;
    border-radius: 7px;
    font-size: var(--text-sm);
    font-weight: var(--fw-bold);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background 0.18s, transform 0.18s, box-shadow 0.18s;
    font-family: var(--font-sans);
    animation: rd-scroll-pulse-ring 2.2s cubic-bezier(0.4,0,0.6,1) infinite;
    position: relative;
  }
  .report-description-btn-hero-teal:hover {
    background: var(--teal-mid);
    transform: translateY(-2px);
    animation: none;
    box-shadow: 0 6px 20px rgba(0,188,162,0.38);
  }
  .report-description-btn-hero-teal .rd-scroll-icon {
    display: inline-flex;
    align-items: center;
    animation: rd-scroll-bounce 1.5s ease-in-out infinite;
  }
  .report-description-btn-hero-teal:hover .rd-scroll-icon {
    animation: none;
  }
  .report-description-btn-hero-teal svg {
    width: 14px; height: 14px;
    stroke: var(--white); fill: none; stroke-width: 2.2;
    stroke-linecap: round; stroke-linejoin: round;
  }

  /* ── Hero ghost buttons (4 product links) — pinned to bottom of hero ── */
  .report-description-hero-btns {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: auto;
    padding-top: 5px;
  }
  .report-description-btn-hero-ghost {
    padding: 9.5px 16px;
    background: var(--white);
    color: var(--navy);
    border: 1px solid var(--white);
    border-radius: 7px;
    font-size: var(--text-sm);
    font-weight: var(--fw-medium);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.18s;
    font-family: var(--font-sans);
    white-space: nowrap;
  }
  .report-description-btn-hero-ghost:hover {
    background: rgba(255,255,255,0.88);
    border-color: var(--white);
    transform: translateY(-1px);
  }
  .report-description-btn-hero-ghost svg {
    width: 13px; height: 13px;
    stroke: var(--navy); fill: none;
    stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
    flex-shrink: 0;
  }

  /* ── Select Geography button — white fill, navy text/icon ── */
  #rd-hero-geo-btn {
    background: var(--white);
    color: var(--navy);
    border: 2px solid var(--white);
    font-weight: var(--fw-semibold);
  }
  #rd-hero-geo-btn svg { stroke: var(--navy); stroke-width: 2.2; }
  #rd-hero-geo-btn:hover {
    background: rgba(255,255,255,0.88);
    border-color: var(--white);
    transform: translateY(-1px);
  }

  /* ── Tracker button — white fill, white border, navy text, orange icon ── */
  #rd-hero-tracker-btn {
    border: 1px solid var(--white);
    color: var(--navy);
    background: var(--white);
  }
  #rd-hero-tracker-btn svg { stroke: var(--av-orange); stroke-width: 2.4; }
  #rd-hero-tracker-btn:hover {
    background: rgba(255,255,255,0.88);
    border-color: var(--white);
  }

  /* ── Domain Database button — white fill, white border, navy text, blue icon ── */
  #rd-hero-domain-btn {
    border: 1px solid var(--white);
    color: var(--navy);
    background: var(--white);
  }
  #rd-hero-domain-btn svg { stroke: var(--av-blue); stroke-width: 2.4; }
  #rd-hero-domain-btn:hover {
    background: rgba(255,255,255,0.88);
    border-color: var(--white);
  }

  /* ── DataSheet button — white fill, white border, navy text, green icon ── */
  #rd-hero-datasheet-btn {
    border: 1px solid var(--white);
    color: var(--navy);
    background: var(--white);
  }
  #rd-hero-datasheet-btn svg { stroke: var(--av-green); stroke-width: 2.4; }
  #rd-hero-datasheet-btn:hover {
    background: rgba(255,255,255,0.88);
    border-color: var(--white);
  }

  /* ── Hero action buttons currently switched off ───────────────────────────
     Tracker, Domain Database and DataSheet are hidden, not deleted. The markup
     and their JS handlers in report-description.js are untouched, so bringing
     any of them back is a matter of deleting its line below — nothing has to be
     rebuilt. Select Geography stays visible.

     display:none rather than visibility:hidden on purpose: the row is a flex
     container, so a merely invisible button would still hold its width and
     leave a gap next to Select Geography. It also keeps them out of the tab
     order and away from screen readers, which is what "hidden" should mean. */
  #rd-hero-tracker-btn,
  #rd-hero-domain-btn,
  #rd-hero-datasheet-btn { display: none; }

  /* ── Hero right: Pricing card wrapper — no right margin ── */
  .report-description-hero-pricing-wrap {
    background: transparent;
    padding: 20px 0 20px 0;
    display: flex;
    flex-direction: column;
    min-width: 0;
  }
  /* Pricing card fills the wrap height so card bottom aligns with meta bar bottom */
  .report-description-hero-pricing-wrap .report-description-pricing-card {
    flex: 1;
    display: flex;
    flex-direction: column;
  }

  /* ── Report Meta Bar — single row ── */
  .report-description-meta-bar {
    background: rgba(0,0,0,0.22);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 8px;
    padding: 6px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: nowrap;
    overflow: hidden;
    flex-shrink: 0;
    margin-top: calc(18px * var(--rd-hero-fit));
    margin-bottom: 0;
  }
  .report-description-meta-chip {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: rgba(255,255,255,0.55);
    white-space: nowrap;
    flex-shrink: 0;
  }
  .report-description-meta-chip svg { width: 11px; height: 11px; stroke: rgba(255,255,255,0.55); flex-shrink: 0; }
  .report-description-meta-chip strong { color: rgba(255,255,255,0.90); font-weight: var(--fw-semibold); }
  .report-description-meta-sep { color: rgba(255,255,255,0.18); font-size: var(--text-xs); flex-shrink: 0; }
  .rd-author-link {
    color: rgba(255,255,255,0.90);
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.35);
    transition: border-color 0.15s, color 0.15s;
  }
  .rd-author-link:hover { color: var(--white); border-bottom-color: rgba(255,255,255,0.80); }
  .report-description-meta-divider {
    width: 100%;
    height: 1px;
    background: rgba(255,255,255,0.15);
    border: none;
    margin: 8px 0 0;
    flex-shrink: 0;
  }
  .report-description-meta-format-icons {
    display: flex;
    gap: 5px;
    align-items: center;
  }
  /* Format labels — white ghost badges */
  .report-description-fmt-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 7px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: var(--fw-bold);
    color: rgba(255,255,255,0.88);
    letter-spacing: 0.4px;
    line-height: 1.6;
    flex-shrink: 0;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.45);
  }
  .report-description-fmt-pdf  { background: transparent; }
  .report-description-fmt-xls  { background: transparent; }
  .report-description-fmt-pptx { background: transparent; }

  /* ── Dashboard Feed Strip — hidden ── */
  .report-description-feed-strip { display: none; }

  /* ── 2-Column Page Body ── */
  .report-description-page-body {
    display: grid;
    grid-template-columns: 3fr 9fr;
    max-width: 1480px;
    width: 100%;
    margin: 0 auto;
    padding: 20px 20px 40px;
    gap: 18px;
  }

  /* ══════════════════════════════════
     LEFT SIDEBAR
  ══════════════════════════════════ */
  .report-description-left-sidebar {
    background: var(--sidebar-dark);
    border-radius: 14px;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
    max-height: calc(100vh - 100px);
    height: fit-content;
    position: sticky;
    top: 80px;
    -webkit-font-smoothing: antialiased;
    box-shadow: 0 4px 20px rgba(13,71,161,0.18);
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.12) transparent;
  }
  .report-description-left-sidebar::-webkit-scrollbar { width: 4px; }
  .report-description-left-sidebar::-webkit-scrollbar-track { background: transparent; }
  .report-description-left-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.14); border-radius: 4px; }

  /* ── Geography Row (compact single-row, replaces old multi-row card) ── */
  .report-description-geo-row {
    margin: 12px 14px 6px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    background: rgba(255,255,255,0.09);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 8px;
    cursor: pointer;
    backdrop-filter: blur(6px);
    transition: background 0.15s, border-color 0.15s;
  }
  .report-description-geo-row:hover {
    background: rgba(255,255,255,0.14);
    border-color: rgba(255,255,255,0.30);
  }
  .report-description-geo-row-icon {
    width: 15px; height: 15px;
    stroke: rgba(255,255,255,0.70); fill: none;
    stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
    flex-shrink: 0;
  }
  .report-description-geo-row-label {
    font-size: var(--text-xs);
    color: rgba(255,255,255,0.55);
    font-weight: var(--fw-medium);
    white-space: nowrap;
    flex-shrink: 0;
  }
  .report-description-geo-row-selected {
    flex: 1;
    font-size: var(--text-xs);
    font-weight: var(--fw-bold);
    color: var(--white);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .report-description-geo-row-chevron {
    width: 11px; height: 11px;
    stroke: rgba(255,255,255,0.45); fill: none;
    stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
    flex-shrink: 0;
    transition: transform 0.2s;
  }
  .report-description-geo-row[aria-expanded="true"] .report-description-geo-row-chevron {
    transform: rotate(180deg);
  }

  /* ── Sidebar nav section label ── */
  .report-description-nav-section-label {
    font-size: var(--text-xs);
    font-weight: var(--fw-extrabold);
    color: var(--white);
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 14px 18px 8px;
    margin: 0 14px 4px;
    border-bottom: 1px solid var(--blue);
  }

  /* ── Nav items ── */
  .report-description-report-nav { flex: 1; padding: 4px 0 8px; }
  .report-description-nav-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 16px;
    margin: 1px 8px 1px 0;
    border-radius: 0 22px 22px 0;
    font-size: var(--text-sm);
    line-height: 2.2;
    color: rgba(255,255,255,0.55);
    cursor: pointer;
    transition: background 0.14s, color 0.14s;
    user-select: none;
    text-decoration: none;
  }
  .report-description-nav-item svg {
    width: 14px; height: 14px;
    flex-shrink: 0;
    stroke: rgba(255,255,255,0.55);
    fill: none; stroke-width: 1.8;
    stroke-linecap: round; stroke-linejoin: round;
    transition: stroke 0.14s;
  }
  .report-description-nav-item:hover             { background: var(--navy); color: var(--white); }
  .report-description-nav-item:hover svg         { stroke: var(--white); }
  .report-description-nav-item.active            { background: var(--blue); color: var(--white); font-weight: var(--fw-semibold); box-shadow: inset 3px 0 0 var(--av-teal); }
  .report-description-nav-item.active svg        { stroke: var(--white); }

  /* ── CTA nav buttons — same as nav items ── */
  .report-description-nav-item-cta {
    margin: 1px 8px 1px 0;
    border-radius: 0 22px 22px 0;
    padding: 6px 16px;
    justify-content: flex-start;
    font-weight: var(--fw-normal);
    color: rgba(255,255,255,0.55);
    box-shadow: none;
    transition: background 0.14s, color 0.14s;
  }
  .report-description-nav-item-cta:hover { transform: none; background: var(--navy); color: var(--white); }
  .report-description-nav-item-cta.active { background: var(--blue); color: var(--white); font-weight: var(--fw-semibold); box-shadow: inset 3px 0 0 var(--av-teal); }
  .report-description-nav-item-cta svg { stroke: rgba(255,255,255,0.55); transition: stroke 0.14s; }
  .report-description-nav-item-cta:hover svg { stroke: var(--white); }
  .report-description-nav-item-cta.active svg { stroke: var(--white); }

  /* Request Sample */
  .report-description-nav-item-cta.rd-cta-sample { background: transparent; }
  /* Paid Customization */
  .report-description-nav-item-cta.rd-cta-custom { background: transparent; }
  /* Explicit hover overrides — needed because the transparent rules come after the base :hover rule */
  .report-description-nav-item-cta.rd-cta-sample:hover,
  .report-description-nav-item-cta.rd-cta-custom:hover { background: var(--navy); color: var(--white); }
  .report-description-nav-item-cta.rd-cta-sample:hover svg,
  .report-description-nav-item-cta.rd-cta-custom:hover svg { stroke: var(--white); }

  /* ══════════════════════════════════
     REPORT IDENTITY HEADER PANEL
  ══════════════════════════════════ */
  .rd-rih-panel {
    padding: 14px 14px 0;
  }
  .rd-rih-inner {
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.14);
    border-radius: 10px;
    padding: 11px 12px 12px;
  }
  .rd-rih-badge-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
  }
  .rd-rih-category-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    background: rgba(255,152,0,0.14);
    border: 1px solid var(--av-orange);
    border-radius: 4px;
    font-size: 10px;
    font-weight: var(--fw-bold);
    color: var(--av-orange);
    letter-spacing: 0.3px;
    white-space: nowrap;
    text-transform: uppercase;
  }
  .rd-rih-category-badge svg {
    width: 9px; height: 9px;
    stroke: var(--av-orange); fill: none;
    stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
    flex-shrink: 0;
  }
  .rd-rih-title {
    font-size: 11px;
    font-weight: var(--fw-semibold);
    color: rgba(255,255,255,0.88);
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 9px;
  }
  .rd-rih-meta-row {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
  }
  .rd-rih-meta-chip {
    display: flex;
    align-items: center;
    gap: 3px;
    font-size: 10px;
    color: rgba(255,255,255,0.45);
    white-space: nowrap;
  }
  .rd-rih-meta-chip svg {
    width: 9px; height: 9px;
    stroke: rgba(255,255,255,0.38); fill: none;
    stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
    flex-shrink: 0;
  }
  .rd-rih-meta-chip strong {
    font-weight: var(--fw-semibold);
    color: rgba(255,255,255,0.75);
  }
  .rd-rih-meta-sep {
    color: rgba(255,255,255,0.18);
    font-size: 10px;
    flex-shrink: 0;
  }

  /* ══════════════════════════════════
     READING PROGRESS DOTS
  ══════════════════════════════════ */
  .rd-pdot {
    margin-left: auto;
    flex-shrink: 0;
    width: 14px; height: 14px;
    display: flex; align-items: center; justify-content: center;
  }
  .rd-pdot svg {
    width: 14px; height: 14px;
    overflow: visible;
  }
  /* Track ring — always visible, dim gray */
  .rd-pdot-track {
    fill: none;
    stroke: rgba(255,255,255,0.18);
    stroke-width: 1.2;
    transition: stroke 0.3s;
  }
  /* Arc — white progress arc, rotated from 12 o'clock */
  .rd-pdot-arc {
    fill: none;
    stroke: var(--white);
    stroke-width: 1.0;
    stroke-linecap: round;
    transform-origin: 7px 7px;
    transform: rotate(-90deg);
    stroke-dasharray: 31.42;
    stroke-dashoffset: 31.42;   /* fully hidden = unvisited */
    transition: stroke-dashoffset 0.55s cubic-bezier(0.4,0,0.2,1),
                opacity 0.3s;
  }
  /* Center dot — visible only on done state */
  .rd-pdot-center {
    fill: var(--white);
    stroke: none;
    opacity: 0;
    transition: opacity 0.35s ease;
  }

  /* ACTIVE — arc driven by JS scroll progress (no fixed value here) */
  .rd-pdot[data-state="active"] .rd-pdot-track {
    stroke: rgba(255,255,255,0.30);
  }

  /* DONE — full white ring + center dot (bullseye effect) */
  .rd-pdot[data-state="done"] .rd-pdot-arc {
    stroke-dashoffset: 0;
  }
  .rd-pdot[data-state="done"] .rd-pdot-track {
    stroke: var(--white);
    stroke-width: 1.0;
  }
  .rd-pdot[data-state="done"] .rd-pdot-center {
    opacity: 1;
  }

  /* ── Sidebar Research Repository Button ── */
  .rd-repo-btn-wrap {
    margin: 24px 14px 10px;
  }
  .rd-repo-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--teal-mid);
    border: 1.5px solid var(--av-teal);
    border-radius: 10px;
    text-decoration: none;
    transition: background 0.18s, border-color 0.18s;
    -webkit-font-smoothing: antialiased;
  }
  .rd-repo-btn:hover {
    background: var(--av-teal);
    border-color: var(--av-teal);
  }
  .rd-repo-btn-icon {
    flex-shrink: 0;
    width: 34px; height: 34px;
    background: rgba(255,255,255,0.18);
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
  }
  .rd-repo-btn-icon svg {
    width: 17px; height: 17px;
    stroke: var(--white);
    fill: none; stroke-width: 1.8;
    stroke-linecap: round; stroke-linejoin: round;
  }
  .rd-repo-btn-text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  .rd-repo-btn-label {
    font-size: 13px;
    font-weight: var(--fw-semibold);
    color: var(--white);
    line-height: 1.2;
    white-space: nowrap;
  }
  .rd-repo-btn-count {
    font-size: var(--text-xs);
    color: rgba(255,255,255,0.80);
    line-height: 1.2;
    white-space: nowrap;
  }
  .rd-repo-btn-chevron {
    flex-shrink: 0;
    width: 14px; height: 14px;
    stroke: rgba(255,255,255,0.38);
    fill: none; stroke-width: 2;
    stroke-linecap: round; stroke-linejoin: round;
    transition: stroke 0.15s, transform 0.15s;
  }
  .rd-repo-btn:hover .rd-repo-btn-chevron {
    stroke: var(--av-teal);
    transform: translateX(2px);
  }

  /* ── Sidebar Mini Pricing Teaser ── */
  .rd-spt-wrap {
    margin: 6px 14px 10px;
    background: transparent;
    border: 1px solid var(--blue);
    border-radius: 10px;
    padding: 6px 13px;
    -webkit-font-smoothing: antialiased;
  }
  .rd-spt-header-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
    flex-wrap: nowrap;
  }
  .rd-spt-label {
    font-size: 10px;
    font-weight: var(--fw-semibold);
    color: var(--white);
    text-transform: uppercase;
    letter-spacing: 0.8px;
    line-height: 1;
    flex-shrink: 0;
    white-space: nowrap;
  }
  .rd-spt-price-row {
    display: flex;
    align-items: baseline;
    gap: 5px;
    flex-shrink: 0;
  }
  .rd-spt-price {
    font-size: var(--text-xl);
    font-weight: var(--fw-extrabold);
    color: var(--white);
    line-height: 1;
  }
  .rd-spt-original {
    font-size: var(--text-xs);
    color: var(--white);
    text-decoration: line-through;
    font-weight: var(--fw-medium);
  }
  .rd-spt-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    background: var(--tint-teal);
    border-radius: 20px;
    font-size: 10px;
    font-weight: var(--fw-bold);
    color: var(--text-teal-dark);
    letter-spacing: 0.3px;
    line-height: 1.4;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .rd-spt-social {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 10px;
  }
  .rd-spt-stars {
    display: flex;
    align-items: center;
    gap: 1px;
  }
  .rd-spt-stars svg {
    width: 10px; height: 10px;
    fill: var(--av-orange); stroke: none;
  }
  .rd-spt-rating {
    font-size: 11px;
    font-weight: var(--fw-bold);
    color: rgba(255,255,255,0.88);
  }
  .rd-spt-social-sep {
    color: rgba(255,255,255,0.22);
    font-size: 10px;
  }
  .rd-spt-sold {
    font-size: 10px;
    color: var(--white);
  }
  .rd-spt-divider {
    width: 100%;
    height: 1px;
    background: var(--blue);
    border: none;
    margin-bottom: 9px;
  }
  .rd-spt-btn-row {
    display: flex;
    gap: 6px;
    align-items: stretch;
  }
  .rd-spt-btn-buy {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 4px 10px;
    background: var(--av-teal);
    color: var(--white);
    border: none;
    border-radius: 7px;
    font-size: 11px;
    font-weight: var(--fw-bold);
    font-family: var(--font-sans);
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s, transform 0.14s, box-shadow 0.14s;
    box-shadow: 0 2px 8px rgba(0,150,136,0.28);
    white-space: nowrap;
    -webkit-font-smoothing: antialiased;
  }
  .rd-spt-btn-buy:hover {
    background: var(--teal-mid);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,150,136,0.38);
  }
  .rd-spt-btn-buy svg {
    width: 11px; height: 11px;
    stroke: var(--white); fill: none;
    stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  }
  .rd-spt-btn-cart {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 4px 10px;
    background: var(--av-orange);
    color: var(--white);
    border: none;
    border-radius: 7px;
    font-size: 11px;
    font-weight: var(--fw-medium);
    font-family: var(--font-sans);
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s;
    white-space: nowrap;
    -webkit-font-smoothing: antialiased;
  }
  .rd-spt-btn-cart:hover { background: var(--text-warning-dark); }
  .rd-spt-btn-cart svg {
    width: 11px; height: 11px;
    stroke: var(--white); fill: none;
    stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  }

  /* ══════════════════════════════════
     READING PROGRESS FLOAT
  ══════════════════════════════════ */
  .rd-read-progress-float {
    position: fixed;
    bottom: 28px;
    right: 28px;
    z-index: 950;
    display: none;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.3s, transform 0.3s;
    pointer-events: none;
  }
  .rd-read-progress-float.visible {
    opacity: 0;
    transform: translateY(0);
    pointer-events: none;
  }
  .rd-read-progress-btn {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: var(--navy);
    border: none;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    position: relative;
    box-shadow: 0 4px 16px rgba(13,71,161,0.28);
    transition: box-shadow 0.18s, transform 0.18s;
    padding: 0;
  }
  .rd-read-progress-btn:hover {
    box-shadow: 0 6px 22px rgba(13,71,161,0.38);
    transform: scale(1.07);
  }
  .rd-read-progress-svg {
    position: absolute;
    inset: 0;
    width: 36px; height: 36px;
    transform: rotate(-90deg);
    pointer-events: none;
  }
  .rd-read-progress-track {
    fill: none;
    stroke: rgba(255,255,255,0.15);
    stroke-width: 3;
  }
  .rd-read-progress-bar {
    fill: none;
    stroke: var(--av-teal);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 138;
    stroke-dashoffset: 138;
    transition: stroke-dashoffset 0.35s ease;
  }
  .rd-read-progress-pct {
    font-size: 8px;
    font-weight: var(--fw-extrabold);
    color: var(--white);
    line-height: 1;
    position: relative;
    z-index: 1;
    font-family: var(--font-sans);
    -webkit-font-smoothing: antialiased;
    pointer-events: none;
  }
  .rd-read-progress-label {
    font-size: var(--text-xs);
    font-weight: var(--fw-semibold);
    color: var(--text-mid);
    background: var(--white);
    border: 1px solid var(--card-border);
    border-radius: 20px;
    padding: 3px 10px;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  }
  @media (max-width: 639px) {
    .rd-read-progress-float { bottom: 18px; right: 14px; }
  }

  /* ══════════════════════════════════
     GEOGRAPHY MODAL
  ══════════════════════════════════ */
  .report-description-geo-modal {
    display: flex;
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0,0,0,0.55);
    align-items: flex-start;
    justify-content: center;
    padding: 20px 24px 24px;
    backdrop-filter: blur(3px);
    overflow-y: auto;
    /* animation base */
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.28s ease, visibility 0.28s;
  }
  .report-description-geo-modal.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .report-description-geo-panel {
    background: var(--white);
    border-radius: 16px;
    width: 100%;
    max-width: 1100px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 24px 80px rgba(0,0,0,0.40);
    overflow: visible;
    height: fit-content;
    /* panel spring animation */
    transform: scale(0.96) translateY(-18px);
    transition: transform 0.34s cubic-bezier(0.34, 1.56, 0.64, 1);
  }
  .report-description-geo-modal.active .report-description-geo-panel {
    transform: scale(1) translateY(0);
  }

  .report-description-geo-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 20px;
    border-bottom: 1px solid var(--card-border);
    flex-shrink: 0;
    background: var(--page-bg);
    flex-wrap: wrap;
  }
  .rd-geo-head-left { display: flex; flex-direction: column; gap: 2px; flex-shrink: 0; }
  .report-description-geo-panel-title {
    font-size: var(--text-lg);
    font-weight: var(--fw-extrabold);
    color: var(--text-dark);
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .report-description-geo-panel-title svg { width: 18px; height: 18px; stroke: var(--navy); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .report-description-geo-panel-subtitle {
    font-size: var(--text-xs);
    color: var(--text-muted);
    font-weight: var(--fw-normal);
    margin-left: 26px;
    display: block;
  }
  .report-description-geo-close {
    width: 34px; height: 34px;
    border: 1px solid var(--card-border);
    border-radius: 8px;
    background: var(--white);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    transition: background 0.14s;
  }
  .report-description-geo-close:hover { background: var(--tint-danger-mid); }
  .report-description-geo-close svg { width: 16px; height: 16px; stroke: var(--gray); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .report-description-geo-close:hover svg { stroke: var(--text-danger-dark); }

  /* ── Geo Filter Bar — hidden, tabs moved to panel head ── */
  .rd-geo-filter-bar { display: none; }

  /* ── Geo Filter Tabs — rectangular tabs in panel head ── */
  .rd-geo-filter-pill-group {
    display: flex;
    gap: 8px;
    align-items: center;
    flex: 1;
    justify-content: center;
  }
  .rd-geo-filter-card {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 9px 20px;
    border: 1.5px solid var(--card-border);
    border-radius: 8px;
    background: var(--white);
    cursor: pointer;
    font-family: var(--font-sans);
    font-size: var(--text-xs);
    font-weight: var(--fw-semibold);
    color: var(--text-mid);
    white-space: nowrap;
    transition: all 0.15s;
    flex: 1;
    min-width: 100px;
  }
  .rd-geo-filter-card:hover:not(.active) { border-color: var(--navy); color: var(--navy); }
  .rd-geo-filter-card.active {
    background: var(--navy);
    border-color: var(--navy);
    color: var(--white);
    box-shadow: 0 2px 8px rgba(13,71,161,0.28);
  }
  .rd-geo-filter-card svg {
    width: 13px; height: 13px;
    stroke: currentColor; fill: none; stroke-width: 2;
    stroke-linecap: round; stroke-linejoin: round;
    flex-shrink: 0;
  }
  .rd-geo-fc-label { font-size: var(--text-xs); font-weight: var(--fw-semibold); }
  .rd-geo-fc-count {
    display: inline-flex; align-items: center; justify-content: center;
    background: rgba(0,0,0,0.08);
    border-radius: 10px;
    padding: 1px 6px;
    font-size: 10px;
    font-weight: var(--fw-bold);
    color: inherit;
  }
  .rd-geo-filter-card.active .rd-geo-fc-count { background: rgba(255,255,255,0.18); }

  /* Geo body — hosts the views */
  .report-description-geo-body {
    padding: 20px 24px 24px;
  }
  .rd-geo-view { display: none; }
  .rd-geo-view.active { display: block; }

  /* Bird-eye grid — 6-column, vertical (column-first) flow */
  .rd-geo-bird-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: repeat(9, auto);
    grid-auto-flow: column;
    gap: 8px;
  }
  /* Countries view has 41 items → 7 rows */
  .rd-geo-view[data-rd-view="countries"] .rd-geo-bird-grid {
    grid-template-rows: repeat(7, auto);
  }

  /* Geo item card — used in bird-eye grid */
  .report-description-geo-item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 4px;
    border: 1.5px solid var(--card-border);
    border-radius: 7px;
    cursor: pointer;
    text-decoration: none;
    transition: border-color 0.16s, background 0.16s, box-shadow 0.16s, transform 0.13s;
    background: var(--white);
    text-align: center;
    min-height: 40px;
    position: relative;
    overflow: hidden;
  }
  .report-description-geo-item::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at center, rgba(13,71,161,0.18) 0%, transparent 70%);
    opacity: 0;
    transition: opacity 0.25s;
    pointer-events: none;
  }
  .report-description-geo-item:hover::after { opacity: 1; }
  .report-description-geo-item[data-type="region"] {
    border-color: var(--card-border);
    background: var(--white);
  }
  .report-description-geo-item:hover {
    border-color: var(--navy);
    background: var(--tint-navy);
    box-shadow: 0 4px 12px rgba(13,71,161,0.18);
    transform: translateY(-2px) scale(1.03);
  }
  .report-description-geo-item:active { transform: scale(0.96); transition-duration: 0.08s; }
  .report-description-geo-item.active {
    border-color: var(--av-teal);
    background: var(--tint-teal);
    box-shadow: 0 3px 10px rgba(0,150,136,0.20);
    transform: none;
  }
  .report-description-geo-item.active .report-description-geo-item-name {
    color: var(--text-teal-dark);
    font-weight: var(--fw-bold);
  }
  .report-description-geo-item.is-current {
    border-color: var(--navy);
    background: var(--tint-navy);
    box-shadow: 0 3px 10px rgba(13,71,161,0.18);
    pointer-events: none;
    transform: none;
  }
  .report-description-geo-item.is-current .report-description-geo-item-name {
    color: var(--navy);
    font-weight: var(--fw-bold);
  }
  .report-description-geo-item.rd-geo-no-report {
    opacity: 0.38;
    cursor: not-allowed;
    pointer-events: auto;
    box-shadow: none;
    transform: none;
  }
  .report-description-geo-item.rd-geo-no-report:hover {
    opacity: 0.58;
    border-color: var(--card-border);
  }
  .rd-geo-no-report .report-description-geo-item-name {
    display: inline-flex;
    align-items: center;
    gap: 4px;
  }
  .rd-geo-no-report .report-description-geo-item-name::before {
    content: '';
    display: inline-block;
    width: 10px;
    height: 11px;
    flex-shrink: 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3E%3Crect x='0.5' y='5.5' width='9' height='6' rx='1.5' fill='%230D47A1'/%3E%3Cpath d='M2.5 5.5V4a2.5 2.5 0 0 1 5 0v1.5' stroke='%230D47A1' stroke-width='1.4' stroke-linecap='round' fill='none'/%3E%3C/svg%3E") center / contain no-repeat;
    opacity: 0;
    transition: opacity 0.18s;
  }
  .rd-geo-no-report:hover .report-description-geo-item-name::before { opacity: 1; }
  .report-description-geo-item-name {
    font-size: var(--text-xs);
    font-weight: var(--fw-semibold);
    color: var(--text-dark);
    text-align: center;
    line-height: 1.3;
    position: relative;
    z-index: 1;
  }
  .report-description-geo-item[data-type="region"] .report-description-geo-item-name {
    color: var(--navy);
    font-weight: var(--fw-bold);
  }

  /* Regions view — large region cards (2 rows × 4 cols) */
  .rd-geo-region-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
  }
  .rd-geo-region-bigcard {
    background: var(--tint-navy);
    border: 1.5px solid var(--card-border);
    border-radius: 12px;
    padding: 20px 12px 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
    text-decoration: none;
    transition: background 0.18s, border-color 0.18s, box-shadow 0.18s, transform 0.14s;
    min-height: 90px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
  }
  .rd-geo-region-bigcard::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 0%, rgba(255,255,255,0.15) 0%, transparent 70%);
    opacity: 0;
    transition: opacity 0.22s;
    pointer-events: none;
  }
  .rd-geo-region-bigcard:hover {
    background: var(--navy);
    border-color: var(--navy);
    box-shadow: 0 6px 20px rgba(13,71,161,0.30);
    transform: translateY(-3px);
  }
  .rd-geo-region-bigcard:hover::before { opacity: 1; }
  .rd-geo-region-bigcard:active { transform: scale(0.97); transition-duration: 0.08s; }
  .rd-geo-region-bigcard svg {
    width: 36px; height: 36px;
    stroke: var(--navy);
    fill: rgba(13,71,161,0.08);
    stroke-width: 1.2;
    stroke-linecap: round; stroke-linejoin: round;
    flex-shrink: 0;
    transition: stroke 0.18s, fill 0.18s;
    position: relative; z-index: 1;
  }
  .rd-geo-region-bigcard:hover svg { stroke: rgba(255,255,255,0.90); fill: rgba(255,255,255,0.12); }
  .rd-geo-rbc-name {
    font-size: var(--text-sm);
    font-weight: var(--fw-bold);
    color: var(--navy);
    line-height: 1.3;
    transition: color 0.18s;
    position: relative; z-index: 1;
  }
  .rd-geo-region-bigcard:hover .rd-geo-rbc-name { color: var(--white); }
  .rd-geo-region-bigcard.is-current {
    background: var(--navy);
    border-color: var(--navy);
    box-shadow: 0 4px 14px rgba(13,71,161,0.28);
    pointer-events: none;
    transform: none;
  }
  .rd-geo-region-bigcard.is-current svg { stroke: rgba(255,255,255,0.90); fill: rgba(255,255,255,0.12); }
  .rd-geo-region-bigcard.is-current .rd-geo-rbc-name { color: var(--white); }
  .rd-geo-region-bigcard.rd-geo-no-report {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: auto;
    box-shadow: none;
    transform: none;
  }
  .rd-geo-region-bigcard.rd-geo-no-report:hover { opacity: 0.52; }
  .rd-geo-region-bigcard.rd-geo-no-report .rd-geo-rbc-name {
    display: inline-flex;
    align-items: center;
    gap: 5px;
  }
  .rd-geo-region-bigcard.rd-geo-no-report .rd-geo-rbc-name::before {
    content: '';
    display: inline-block;
    width: 12px;
    height: 13px;
    flex-shrink: 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3E%3Crect x='0.5' y='5.5' width='9' height='6' rx='1.5' fill='%23ffffff'/%3E%3Cpath d='M2.5 5.5V4a2.5 2.5 0 0 1 5 0v1.5' stroke='%23ffffff' stroke-width='1.4' stroke-linecap='round' fill='none'/%3E%3C/svg%3E") center / contain no-repeat;
    opacity: 0;
    transition: opacity 0.18s;
  }
  .rd-geo-region-bigcard.rd-geo-no-report:hover .rd-geo-rbc-name::before { opacity: 1; }

  /* ══════════════════════════════════
     MAIN CONTENT COLUMN
  ══════════════════════════════════ */
  .report-description-main {
    display: flex;
    flex-direction: column;
    gap: 0;         /* sections handle own spacing */
    min-width: 0;
  }

  /* ══════════════════════════════════
     SCROLL-VISIBLE SECTIONS
     Each section = standalone card
  ══════════════════════════════════ */
  .report-description-section {
    display: block;
    background: transparent;
    border-radius: 14px;
    border: none;
    margin-bottom: 18px;
    overflow: hidden;
    scroll-margin-top: 92px;
  }
  .report-description-section:last-child { margin-bottom: 0; }

  /* Section header bar */
  .report-description-section-header {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 24px 14px;
    border-bottom: 1.5px solid var(--card-border);
    position: relative;
  }
  /* Left color stripe per section */
  .report-description-section-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    border-radius: 0;
  }

  /* Section number badge */
  .report-description-section-num {
    font-size: var(--text-xs);
    font-weight: var(--fw-extrabold);
    color: rgba(255,255,255,0.90);
    width: 26px; height: 26px;
    border-radius: 6px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    letter-spacing: 0.3px;
  }

  /* Section icon box */
  .report-description-section-icon {
    width: 46px; height: 46px;
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
  }
  .report-description-section-icon svg {
    width: 22px; height: 22px;
    fill: none; stroke-width: 1.8;
    stroke-linecap: round; stroke-linejoin: round;
  }

  /* Section title + sub-label */
  .report-description-section-title-wrap { flex: 1; min-width: 0; }
  .report-description-section-title {
    font-size: var(--text-xl);
    font-weight: var(--fw-bold);
    color: var(--text-dark);
    line-height: var(--lh-tight);
    margin-bottom: 3px;
  }
  .report-description-section-meta {
    font-size: var(--text-xs);
    color: var(--text-muted);
    font-weight: var(--fw-medium);
    letter-spacing: 0.1px;
  }
  .rd-section-edition-link {
    color: var(--navy);
    font-weight: var(--fw-semibold);
    text-decoration: none;
    border-bottom: 1px solid var(--card-border);
    transition: color 0.15s, border-color 0.15s;
  }
  .rd-section-edition-link:hover {
    color: var(--av-teal);
    border-bottom-color: var(--av-teal);
  }

  /* Right tag chip */
  .report-description-section-tag {
    font-size: var(--text-xs);
    font-weight: var(--fw-bold);
    padding: 3px 10px;
    border-radius: 20px;
    white-space: nowrap;
    flex-shrink: 0;
    letter-spacing: 0.3px;
    text-transform: uppercase;
  }

  /* Section body padding */
  .report-description-section-body {
    padding: 24px 24px 20px;
  }

  /* ── Market Outlook — single column body ── */
  .rd-outlook-body {
    display: block;
  }
  .rd-outlook-content { min-width: 0; }

  /* ── Rows 1-5: 70/30 nested split ── */
  .rd-outlook-split {
    display: grid;
    grid-template-columns: 55fr 45fr;
    gap: 20px;
    align-items: stretch;
    margin-bottom: 16px;
  }
  .rd-outlook-split-left {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }
  .rd-outlook-split-left > *:last-child { margin-bottom: 0; }
  .rd-outlook-chart-panel {
    background: var(--white);
    border: 1px solid var(--card-border);
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    align-self: flex-start;
    overflow: hidden;
    position: relative;
    padding: 16px;
    min-height: 260px;
  }
  .rd-outlook-chart-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: var(--text-muted);
    font-size: var(--text-xs);
    font-weight: var(--fw-semibold);
    text-align: center;
    padding: 20px;
  }
  .rd-outlook-chart-placeholder svg {
    width: 40px; height: 40px;
    stroke: var(--card-border); fill: none;
    stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;
  }

  /* ── Market Outlook Data Grid section labels ── */
  .rd-outlook-grid-label {
    grid-column: 1 / -1;
    font-size: var(--text-xs);
    font-weight: var(--fw-extrabold);
    text-transform: uppercase;
    letter-spacing: 0.9px;
    color: var(--text-muted);
    padding: 12px 0 6px;
    border-bottom: 1px solid var(--card-border);
    margin-bottom: 2px;
    display: flex;
    align-items: center;
    gap: 7px;
  }
  .rd-outlook-grid-label:first-child { padding-top: 0; }
  .rd-outlook-grid-label svg { width: 12px; height: 12px; stroke: var(--text-muted); fill: none; stroke-width: 2; flex-shrink: 0; }
  .rd-outlook-grid-label .rd-glabel-dot {
    width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
  }

  /* ── Market Outlook 4-column Data Grid ── */
  .rd-outlook-data-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-top: 20px;
  }
  .rd-outlook-data-cell {
    background: var(--page-bg);
    border: 1px solid var(--card-border);
    border-radius: 8px;
    padding: 10px 8px;
    text-align: center;
    transition: border-color 0.15s;
  }
  .rd-outlook-data-cell:hover { border-color: var(--navy); }
  .rd-outlook-data-cell.rd-dc-historical { border-top: 2px solid var(--navy); }
  .rd-outlook-data-cell.rd-dc-forecast { border-top: 2px solid var(--av-orange); }
  .rd-outlook-data-cell.rd-dc-cagr { border-top: 2px solid var(--av-teal); }
  .rd-outlook-data-cell-year {
    font-size: var(--text-xs);
    color: var(--text-muted);
    font-weight: var(--fw-medium);
    margin-bottom: 4px;
  }
  .rd-outlook-data-cell-value {
    font-size: var(--text-sm);
    font-weight: var(--fw-extrabold);
    color: var(--navy);
    line-height: 1.2;
  }
  .rd-outlook-data-cell.rd-dc-forecast .rd-outlook-data-cell-value { color: var(--av-orange); }
  .rd-outlook-data-cell.rd-dc-cagr .rd-outlook-data-cell-value { color: var(--av-teal); }

  /* ── BD intro block — reused across sections ── */
  .rd-bd-intro {
    display: flex; gap: 14px; align-items: flex-start;
    background: var(--page-bg); border: 1px solid var(--card-border);
    border-left: 3px solid var(--navy); border-radius: 0 8px 8px 0;
    padding: 16px 18px; margin-bottom: 22px;
  }
  .rd-bd-intro-avatar {
    width: 36px; height: 36px; border-radius: 50%;
    background: var(--navy); display: flex; align-items: center;
    justify-content: center; flex-shrink: 0;
  }
  .rd-bd-intro-avatar svg { width: 18px; height: 18px; stroke: var(--white); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .rd-bd-intro-body { flex: 1; min-width: 0; }
  .rd-bd-intro-label { font-size: 10px; font-weight: var(--fw-extrabold); text-transform: uppercase; letter-spacing: 0.8px; color: var(--navy); margin-bottom: 5px; }
  .rd-bd-intro-text { font-size: var(--text-sm); color: var(--text-mid); line-height: var(--lh-loose); margin: 0; }
  .rd-bd-intro-sig { font-size: 11px; color: var(--text-muted); margin-top: 8px; font-style: italic; }

  /* ── Per-section colour themes ── */
  /* 01 Market Outlook — Navy/Blue */
  #rd-section-outlook .report-description-section-header { background: var(--white); }
  #rd-section-outlook .report-description-section-header::before { background: var(--navy); }
  #rd-section-outlook .report-description-section-num   { background: var(--navy); }
  #rd-section-outlook .report-description-section-icon  { background: var(--navy); border: none; }
  #rd-section-outlook .report-description-section-icon svg { stroke: var(--white); }
  #rd-section-outlook .report-description-section-tag   { background: var(--blue-light); color: var(--navy); }

  /* 02 Market Scope — Teal */
  #rd-section-scope .report-description-section-header { background: var(--white); }
  #rd-section-scope .report-description-section-header::before { background: var(--av-teal); }
  #rd-section-scope .report-description-section-num   { background: var(--av-teal); }
  #rd-section-scope .report-description-section-icon  {
    background: linear-gradient(135deg, var(--av-teal) 0%, var(--teal-mid) 100%);
    border: none;
    box-shadow: 0 4px 14px rgba(0,150,136,0.35), inset 0 1px 0 rgba(255,255,255,0.18);
  }
  #rd-section-scope .report-description-section-icon svg {
    stroke: var(--white);
    stroke-width: 1.7;
  }
  #rd-section-scope .report-description-section-tag   { background: var(--tint-teal); color: var(--text-teal-dark); }

  /* 03 FAQs — Orange/Warning */
  #rd-section-faqs .report-description-section-header { background: var(--white); }
  #rd-section-faqs .report-description-section-header::before { background: var(--av-orange); }
  #rd-section-faqs .report-description-section-num   { background: var(--av-orange); }
  #rd-section-faqs .report-description-section-icon  { background: var(--av-orange); border: none; }
  #rd-section-faqs .report-description-section-icon svg { stroke: var(--white); }
  #rd-section-faqs .report-description-section-tag   { background: var(--tint-warning); color: var(--text-warning-dark); }

  /* 04 Related Reports — Sidebar Dark / Navy */
  #rd-section-related .report-description-section-header { background: var(--white); }
  #rd-section-related .report-description-section-header::before { background: var(--sidebar-dark); }
  #rd-section-related .report-description-section-num   { background: var(--sidebar-dark); }
  #rd-section-related .report-description-section-icon  { background: var(--sidebar-dark); border: none; }
  #rd-section-related .report-description-section-icon svg { stroke: var(--white); }
  #rd-section-related .report-description-section-tag   { background: var(--tint-navy); color: var(--navy); }

  /* 05 Request Sample — Green */
  #rd-section-sample .report-description-section-header { background: var(--white); }
  #rd-section-sample .report-description-section-header::before { background: var(--av-green); }
  #rd-section-sample .report-description-section-num   { background: var(--av-green); }
  #rd-section-sample .report-description-section-icon  { background: var(--av-green); border: none; }
  #rd-section-sample .report-description-section-icon svg { stroke: var(--white); }
  #rd-section-sample .report-description-section-tag   { background: var(--tint-teal); color: var(--text-teal-dark); }

  /* 06 Table of Contents — Blue */
  #rd-section-toc .report-description-section-header { background: var(--white); }
  #rd-section-toc .report-description-section-header::before { background: var(--blue); }
  #rd-section-toc .report-description-section-num   { background: var(--blue); }
  #rd-section-toc .report-description-section-icon  { background: var(--blue); border: none; }
  #rd-section-toc .report-description-section-icon svg { stroke: var(--white); }
  #rd-section-toc .report-description-section-tag   { background: var(--blue-light); color: var(--navy); }

  /* 07 Paid Customization — Teal/CTA */
  #rd-section-customization .report-description-section-header { background: var(--white); }
  #rd-section-customization .report-description-section-header::before { background: var(--av-teal); }
  #rd-section-customization .report-description-section-num   { background: var(--av-teal); }
  #rd-section-customization .report-description-section-icon  { background: var(--av-teal); border: none; }
  #rd-section-customization .report-description-section-icon svg { stroke: var(--white); }
  #rd-section-customization .report-description-section-tag   { background: var(--tint-teal); color: var(--text-teal-dark); }

  /* Body text inside sections */
  .report-description-report-text {
    font-size: var(--text-sm);
    line-height: var(--lh-loose);
    color: var(--text-mid);
    margin-bottom: 16px;
  }
  .report-description-milestone-card {
    background: var(--page-bg);
    border-left: 4px solid var(--av-orange);
    border-radius: 0 8px 8px 0;
    padding: 14px 18px;
    margin-bottom: 16px;
  }
  .report-description-milestone-icon-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
  }
  .report-description-milestone-dot {
    width: 28px; height: 28px;
    background: var(--av-orange);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    margin-top: 2px;
  }
  .report-description-milestone-dot svg { width: 13px; height: 13px; stroke: var(--white); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .report-description-milestone-title {
    font-size: var(--text-sm);
    font-weight: var(--fw-bold);
    color: var(--text-dark);
    line-height: var(--lh-normal);
    margin-bottom: 12px;
  }
  .report-description-milestone-desc {
    font-size: var(--text-sm);
    color: var(--text-faint);
    line-height: var(--lh-normal);
  }

  .report-description-milestone-desc.dcr-rich-content,
  .report-description-milestone-desc.dcr-rich-content p,
  .report-description-milestone-desc.dcr-rich-content li {
    font-size: var(--text-sm);
    color: var(--text-faint);
  }

  /* ── Chart Wrapper ── */
  .report-description-chart-block {
    margin-top: 20px;
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    overflow: hidden;
  }
  .report-description-chart-block + .report-description-chart-block { margin-top: 16px; }
  .report-description-chart-title {
    font-size: var(--text-xs);
    font-weight: var(--fw-bold);
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.8px;
    margin-bottom: 12px;
  }
  .report-description-chart-svg { width: 100%; height: auto; display: block; }

  /* ── Market Scope Matrix Table ── */
  .rd-scope-above-table {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
    gap: 12px;
    flex-wrap: wrap;
  }
  .rd-scope-above-title {
    font-size: var(--text-sm);
    color: var(--text-muted);
    line-height: var(--lh-normal);
  }
  .rd-scope-method-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 16px;
    border: 1.5px solid var(--av-teal);
    border-radius: 7px;
    background: var(--white);
    font-size: var(--text-sm);
    font-weight: var(--fw-semibold);
    color: var(--av-teal);
    text-decoration: none;
    cursor: pointer;
    font-family: var(--font-sans);
    transition: background 0.15s, color 0.15s;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .rd-scope-method-btn svg { width: 14px; height: 14px; stroke: var(--av-teal); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: stroke 0.15s; }
  .rd-scope-method-btn:hover { background: var(--av-teal); color: var(--white); }
  .rd-scope-method-btn:hover svg { stroke: var(--white); }
  .rd-global-attr {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: var(--text-xs, 12px);
    color: var(--text-muted);
    line-height: var(--lh-normal);
    padding: 8px 0;
  }
  .rd-global-attr svg {
    width: 14px;
    height: 14px;
    min-width: 14px;
    flex-shrink: 0;
    margin-top: 2px;
    stroke: var(--text-muted);
    fill: none;
  }
  .rd-scope-table-wrap {
    border: 1px solid var(--card-border);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  }
  /* Table header */
  .rd-scope-table-head {
    display: grid;
    grid-template-columns: 210px 1fr;
    background: var(--av-teal);
    color: var(--white);
    -webkit-font-smoothing: antialiased;
  }
  .rd-scope-th {
    padding: 13px 16px;
    font-size: var(--text-sm);
    font-weight: var(--fw-bold);
    letter-spacing: 0.2px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .rd-scope-th-items {
    border-left: 1px solid rgba(255,255,255,0.18);
    text-align: center;
    align-items: center;
  }
  .rd-scope-th-sub {
    font-size: var(--text-xs);
    font-weight: var(--fw-normal);
    color: rgba(255,255,255,0.72);
    margin-top: 3px;
  }
  .rd-scope-th-count { text-align: center; align-items: center; }
  /* Table rows */
  .rd-scope-row {
    display: grid;
    grid-template-columns: 210px 1fr;
    border-top: 1px solid var(--card-border);
    background: var(--white);
    transition: background 0.15s;
  }
  .rd-scope-row:hover { background: #fafcff; }
  .rd-scope-dim-cell {
    padding: 16px;
    display: flex;
    align-items: center;
    gap: 11px;
    border-right: 1px solid var(--card-border);
  }
  .rd-scope-dim-icon {
    flex-shrink: 0;
    width: 38px; height: 38px;
    background: var(--tint-teal);
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
  }
  .rd-scope-dim-icon svg { width: 18px; height: 18px; stroke: var(--av-teal); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .rd-scope-dim-name {
    font-size: var(--text-sm);
    font-weight: var(--fw-bold);
    color: var(--text-dark);
    line-height: 1.3;
  }
  .rd-scope-dim-desc {
    font-size: var(--text-xs);
    color: var(--text-muted);
    line-height: 1.45;
  }
  .rd-scope-items-cell {
    padding: 14px 16px;
    display: flex;
    flex-wrap: wrap;
    align-content: center;
    gap: 6px;
  }
  .rd-scope-chip {
    display: inline-block;
    padding: 4px 11px;
    border: 1px solid var(--av-teal);
    border-radius: 20px;
    font-size: var(--text-xs);
    font-weight: var(--fw-medium);
    color: var(--text-teal-dark);
    background: var(--white);
    white-space: nowrap;
    transition: background 0.15s;
  }
  .rd-scope-row:hover .rd-scope-chip { background: var(--tint-teal); }
  /* Child chip — smaller, muted */
  .rd-scope-chip--child {
    font-size: 11px;
    padding: 3px 9px;
    border-color: rgba(0,150,136,0.40);
    color: var(--text-teal-dark);
    opacity: 0.90;
  }

  /* Child row — tinted background, dashed separator */
  .rd-scope-row--child {
    background: rgba(0,150,136,0.04);
    border-top: 1px dashed rgba(0,150,136,0.20) !important;
  }

  /* Child dim cell — content right-aligned */
  .rd-scope-dim-cell--child {
    justify-content: flex-end;
    text-align: right;
    gap: 8px;
  }
  .rd-scope-dim-icon--child {
    flex-shrink: 0;
    width: 28px; height: 28px;
    background: rgba(0, 150, 136, 0.10);
    border-radius: 6px;
    display: flex; align-items: center; justify-content: center;
  }
  .rd-scope-dim-icon--child svg {
    width: 14px; height: 14px;
    stroke: var(--av-teal);
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  /* Child count cell — softer colors */
  .rd-scope-count-cell--child .rd-scope-count-num {
    color: var(--text-teal-dark);
    font-size: 1.25rem;
  }
  .rd-scope-count-cell--child .rd-scope-count-label {
    color: var(--text-muted);
    font-size: 9px;
  }
  .rd-scope-count-cell {
    padding: 14px 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    text-align: center;
  }
  .rd-scope-count-num {
    font-size: var(--text-2xl);
    font-weight: var(--fw-extrabold);
    color: var(--av-teal);
    line-height: 1;
  }
  .rd-scope-count-label {
    font-size: 10px;
    color: var(--text-muted);
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1.3;
  }
  /* Stats footer bar */
  .rd-scope-stats-bar {
    display: flex;
    align-items: center;
    justify-content: space-around;
    flex-wrap: wrap;
    gap: 8px;
    background: var(--page-bg);
    border-top: 1px solid var(--card-border);
    padding: 16px 20px;
  }
  .rd-scope-stat-item {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .rd-scope-stat-icon {
    flex-shrink: 0;
    width: 34px; height: 34px;
    background: var(--tint-teal);
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
  }
  .rd-scope-stat-icon svg { width: 16px; height: 16px; stroke: var(--av-teal); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .rd-scope-stat-body { display: flex; align-items: baseline; gap: 5px; }
  .rd-scope-stat-text-wrap {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  .rd-scope-stat-num {
    font-size: var(--text-lg);
    font-weight: var(--fw-extrabold);
    color: var(--av-teal);
    line-height: 1;
    white-space: nowrap;
  }
  .rd-scope-stat-label {
    font-size: 10px;
    color: var(--text-muted);
    font-weight: var(--fw-medium);
    line-height: 1.35;
  }
  .rd-scope-stat-divider {
    width: 1px;
    height: 36px;
    background: var(--card-border);
    flex-shrink: 0;
  }
  /* Responsive */
  @media (max-width: 1023px) {
    .rd-scope-table-head,
    .rd-scope-row { grid-template-columns: 160px 1fr; }
  }
  @media (max-width: 639px) {
    .rd-scope-table-head { display: none; }
    .rd-scope-row { display: block; border-top: 2px solid var(--av-teal); margin-bottom: 8px; border-radius: 8px; overflow: hidden; }
    .rd-scope-dim-cell { border-right: none; border-bottom: 1px solid var(--card-border); }
    .rd-scope-items-cell { border-right: none; border-bottom: 1px solid var(--card-border); }
    .rd-scope-dim-cell--child { justify-content: flex-start; text-align: left; }
  }

  /* ── Scope Infographic (legacy - hidden) ── */
  .report-description-scope-infographic {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 20px;
  }
  .report-description-scope-info-card {
    background: var(--page-bg);
    border: 1px solid var(--card-border);
    border-top: 3px solid var(--navy);
    border-radius: 8px;
    padding: 14px 12px;
    text-align: center;
  }
  .report-description-scope-info-card.accent { border-top-color: var(--av-orange); }
  .report-description-scope-info-card.teal   { border-top-color: var(--av-teal); }
  .report-description-scope-info-card.purple { border-top-color: var(--blue); }
  .report-description-scope-info-icon {
    width: 32px; height: 32px;
    background: var(--navy);
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 8px;
  }
  .report-description-scope-info-card.accent .report-description-scope-info-icon { background: var(--av-orange); }
  .report-description-scope-info-card.teal   .report-description-scope-info-icon { background: var(--av-teal); }
  .report-description-scope-info-card.purple .report-description-scope-info-icon { background: var(--blue); }
  .report-description-scope-info-icon svg { width: 16px; height: 16px; stroke: var(--white); }
  .report-description-scope-info-value {
    font-size: var(--text-base);
    font-weight: var(--fw-extrabold);
    color: var(--text-dark);
    line-height: 1.2;
    margin-bottom: 3px;
  }
  .report-description-scope-info-label {
    font-size: var(--text-xs);
    color: var(--text-muted);
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: 0.5px;
  }
  .report-description-scope-segment-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 4px;
  }
  .report-description-scope-seg-block {
    background: var(--white);
    border: 1px solid var(--card-border);
    border-radius: 8px;
    padding: 14px 16px;
  }
  .report-description-scope-seg-title {
    font-size: var(--text-xs);
    font-weight: var(--fw-extrabold);
    letter-spacing: 0.7px;
    text-transform: uppercase;
    color: var(--navy);
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 6px;
  }
  .report-description-scope-seg-title svg { width: 13px; height: 13px; stroke: var(--navy); }
  .report-description-scope-tag-list { display: flex; flex-wrap: wrap; gap: 6px; }
  .report-description-scope-tag {
    background: var(--tint-navy);
    color: var(--navy);
    font-size: var(--text-xs);
    font-weight: var(--fw-semibold);
    padding: 3px 9px;
    border-radius: 20px;
  }
  .report-description-scope-tag.orange  { background: var(--tint-warning); color: var(--text-warning-dark); }
  .report-description-scope-tag.teal    { background: var(--tint-teal); color: var(--text-teal-dark); }
  .report-description-scope-tag.purple  { background: var(--blue-light); color: var(--navy); }

  /* ── FAQ Accordion — Premium Numbered Card ── */
  .report-description-faq-list { display: flex; flex-direction: column; gap: 10px; }
  .report-description-faq-item {
    border: 1px solid var(--card-border);
    border-radius: 10px;
    overflow: hidden;
    background: var(--white);
    transition: border-color 0.22s, box-shadow 0.22s;
    box-shadow: 0 1px 4px rgba(0,0,0,0.05);
  }
  .report-description-faq-item:hover {
    border-color: #b6c8e8;
    box-shadow: 0 3px 12px rgba(13,71,161,0.09);
  }
  .report-description-faq-item.open {
    border-color: var(--av-orange);
    box-shadow: -4px 0 0 var(--av-orange), 0 4px 18px rgba(255,152,0,0.14);
  }
  .report-description-faq-question {
    width: 100%;
    background: var(--white);
    border: none;
    padding: 15px 18px;
    display: flex;
    align-items: center;
    gap: 14px;
    cursor: pointer;
    text-align: left;
    font-family: var(--font-sans);
    transition: background 0.15s;
  }
  .report-description-faq-item.open .report-description-faq-question { background: var(--tint-navy); }
  .report-description-faq-question:hover { background: var(--page-bg); }
  .report-description-faq-num-badge {
    flex-shrink: 0;
    width: 36px; height: 36px;
    background: var(--av-orange);
    color: var(--white);
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    font-size: 11px;
    font-weight: var(--fw-extrabold);
    letter-spacing: 0.4px;
    font-family: var(--font-sans);
    transition: background 0.2s;
  }
  .report-description-faq-item.open .report-description-faq-num-badge { background: var(--text-warning-dark); }
  .report-description-faq-question-text {
    flex: 1;
    font-size: var(--text-sm);
    font-weight: var(--fw-semibold);
    color: var(--text-dark);
    line-height: var(--lh-normal);
  }
  .report-description-faq-chevron {
    width: 18px; height: 18px;
    stroke: var(--text-muted);
    flex-shrink: 0;
    transition: transform 0.25s;
  }
  .report-description-faq-item.open .report-description-faq-chevron { transform: rotate(180deg); stroke: var(--av-orange); }
  .report-description-faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.32s ease;
    background: var(--white);
  }
  .report-description-faq-item.open .report-description-faq-answer { max-height: 400px; }
  .report-description-faq-answer-inner {
    padding: 14px 20px 16px 68px;
    font-size: var(--text-sm);
    color: var(--text-mid);
    line-height: var(--lh-loose);
    border-top: 1px solid var(--card-border);
  }

  /* ── Contact Analyst Modal ── */
  .rd-ca-panel { max-width: 860px; }
  .rd-ca-header {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--card-border);
  }
  .rd-ca-header-icon {
    flex-shrink: 0;
    width: 42px; height: 42px;
    background: var(--blue-light);
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
  }
  .rd-ca-header-icon svg { width: 22px; height: 22px; stroke: var(--navy); }
  .rd-ca-subtitle {
    font-size: var(--text-xs);
    color: var(--text-muted);
    margin-top: 3px;
    line-height: var(--lh-normal);
  }

  /* ── FAQ Contact Strip ── */
  .report-description-faq-contact-strip {
    display: flex;
    align-items: center;
    gap: 16px;
    background: var(--tint-warning);
    border: 1px solid rgba(255,152,0,0.3);
    border-radius: 10px;
    padding: 16px 20px;
    margin-top: 14px;
  }
  .report-description-faq-contact-icon-wrap {
    flex-shrink: 0;
    width: 42px; height: 42px;
    background: var(--white);
    border: 1px solid rgba(255,152,0,0.3);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
  }
  .report-description-faq-contact-icon-wrap svg {
    width: 20px; height: 20px;
    stroke: #ff9800;
  }
  .report-description-faq-contact-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  .report-description-faq-contact-title {
    font-size: var(--text-sm);
    font-weight: var(--fw-bold);
    color: var(--text-dark);
  }
  .report-description-faq-contact-sub {
    font-size: var(--text-xs);
    color: var(--text-mid);
  }
  .report-description-faq-contact-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 18px;
    background: var(--white);
    border: 1.5px solid #ff9800;
    border-radius: 7px;
    font-size: var(--text-sm);
    font-weight: var(--fw-semibold);
    color: #ff9800;
    text-decoration: none;
    font-family: var(--font-sans);
    transition: background 0.15s, color 0.15s;
    white-space: nowrap;
  }
  .report-description-faq-contact-btn svg {
    width: 13px; height: 13px;
    stroke: #ff9800;
    transition: stroke 0.15s;
  }
  .report-description-faq-contact-btn:hover {
    background: #ff9800;
    color: var(--white);
  }
  .report-description-faq-contact-btn:hover svg { stroke: var(--white); }

  /* ── Related Reports ── */
  /* ── Related Reports — Cover-Style Bookshelf Tiles ── */
  .report-description-related-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
  }
  .report-description-related-card {
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--card-border);
    background: var(--white);
    display: flex;
    flex-direction: column;
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
    cursor: pointer;
  }
  .report-description-related-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 28px rgba(0,0,0,0.15);
    border-color: transparent;
  }
  /* Cover area */
  .rd-rel-cover {
    padding: 14px 12px 16px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 150px;
    position: relative;
  }
  .rd-rel-cover-logo {
    position: absolute;
    top: 9px; left: 10px;
    font-size: 8px;
    font-weight: var(--fw-extrabold);
    text-transform: uppercase;
    letter-spacing: 1px;
    color: rgba(255,255,255,0.45);
  }
  .rd-rel-cover-icon {
    position: absolute;
    top: 8px; right: 10px;
  }
  .rd-rel-cover-icon svg {
    width: 17px; height: 17px;
    stroke: rgba(255,255,255,0.45);
    fill: none; stroke-width: 1.8;
    stroke-linecap: round; stroke-linejoin: round;
  }
  .rd-rel-cover-cat {
    font-size: 9px;
    font-weight: var(--fw-extrabold);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: rgba(255,255,255,0.55);
    margin-bottom: 5px;
  }
  .rd-rel-cover-title {
    font-size: 14px;
    font-weight: var(--fw-bold);
    color: var(--white);
    line-height: 1.35;
    margin-bottom: 5px;
  }
  .rd-rel-cover-year {
    font-size: 9px;
    color: rgba(255,255,255,0.4);
  }
  /* Footer */
  .report-description-related-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
    background: var(--white);
    border-top: 1px solid var(--card-border);
  }
  .rd-rel-price {
    font-size: 10px;
    color: var(--text-mid);
    font-weight: var(--fw-semibold);
  }
  .rd-rel-view {
    font-size: 11px;
    font-weight: var(--fw-bold);
    color: var(--navy);
  }
  /* Keep old btn class for any fallback */
  .report-description-related-btn {
    padding: 6px 14px;
    background: var(--navy);
    color: var(--white);
    border: none;
    border-radius: 6px;
    font-size: var(--text-xs);
    font-weight: var(--fw-bold);
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: background 0.15s;
    font-family: var(--font-sans);
  }
  .report-description-related-btn:hover { background: var(--blue); }
  .report-description-related-btn svg  { width: 11px; height: 11px; stroke: var(--white); }

  /* ── Request Sample Form ── */
  /* ══════════════════════════════════════════════════
     SAMPLE SECTION — BD content + CTA
  ══════════════════════════════════════════════════ */
  .rd-sample-content { display: flex; flex-direction: column; gap: 12px; }
  .rd-sample-lead-text {
    font-size: var(--text-sm); line-height: var(--lh-loose);
    color: var(--text-mid); max-width: 780px;
  }
  .rd-sample-value-grid {
    display: grid; grid-template-columns: repeat(3,1fr); gap: 16px;
  }
  .rd-sample-value-card {
    display: flex; gap: 14px; padding: 18px 16px;
    background: var(--page-bg); border: 1px solid var(--card-border);
    border-radius: 10px;
  }
  .rd-sample-value-icon {
    width: 36px; height: 36px; border-radius: 8px;
    background: var(--tint-teal); display: flex;
    align-items: center; justify-content: center; flex-shrink: 0;
  }
  .rd-sample-value-icon svg { width: 16px; height: 16px; stroke: var(--av-green); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .rd-sample-value-title { font-size: var(--text-sm); font-weight: var(--fw-bold); color: var(--text-dark); margin-bottom: 8px; }
  .rd-sample-value-list { list-style: none; display: flex; flex-direction: column; gap: 5px; }
  .rd-sample-value-list li { font-size: var(--text-xs); color: var(--text-mid); line-height: var(--lh-normal); padding-left: 14px; position: relative; }
  .rd-sample-value-list li::before { content: '✓'; position: absolute; left: 0; color: var(--av-teal); font-weight: var(--fw-bold); font-size: 10px; }
  .rd-sample-bd-note {
    display: flex; gap: 16px; align-items: flex-start;
    background: linear-gradient(135deg, var(--tint-navy) 0%, rgba(227,242,253,0.4) 100%);
    border: 1px solid rgba(13,71,161,0.12); border-radius: 10px;
    padding: 20px 22px;
  }
  .rd-sample-bd-avatar {
    width: 44px; height: 44px; border-radius: 50%;
    background: var(--navy); display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  }
  .rd-sample-bd-avatar svg { width: 22px; height: 22px; stroke: var(--white); fill: none; }
  .rd-sample-bd-quote { margin: 0; }
  .rd-sample-bd-quote p { font-size: var(--text-sm); color: var(--text-dark); line-height: var(--lh-loose); font-style: italic; margin-bottom: 10px; }
  .rd-sample-bd-quote p::before { content: '\201C'; }
  .rd-sample-bd-quote p::after  { content: '\201D'; }
  .rd-sample-bd-footer { display: flex; flex-direction: column; gap: 2px; }
  .rd-sample-bd-footer strong { font-size: var(--text-sm); color: var(--navy); font-weight: var(--fw-bold); }
  .rd-sample-bd-footer span { font-size: var(--text-xs); color: var(--text-muted); }

  /* CTA row */
  .rd-sample-cta-wrap { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 14px 0 8px; }
  .rd-sample-cta-sub { font-size: var(--text-xs); color: var(--text-muted); }
  .rd-sample-cta-btn {
    display: inline-flex; align-items: center; gap: 9px;
    padding: 13px 32px; background: #4CAF50; color: var(--white);
    border: none; border-radius: 8px; font-size: var(--text-base);
    font-weight: var(--fw-bold); cursor: pointer; font-family: var(--font-sans);
    transition: background 0.18s, transform 0.18s;
    box-shadow: 0 4px 18px rgba(76,175,80,0.28);
  }
  .rd-sample-cta-btn:hover { background: #388E3C; transform: translateY(-2px); }
  .rd-sample-cta-btn svg { width: 17px; height: 17px; stroke: var(--white); fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
  .rd-sample-trust-row { display: flex; gap: 20px; flex-wrap: wrap; justify-content: center; }
  .rd-sample-trust-row span { display: flex; align-items: center; gap: 5px; font-size: var(--text-xs); color: var(--text-muted); }
  .rd-sample-trust-row span svg { width: 12px; height: 12px; stroke: var(--av-teal); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

  /* ══════════════════════════════════════════════════
     SAMPLE QUERY MODAL — overlay + panel
  ══════════════════════════════════════════════════ */
  .rd-sq-overlay {
    position: fixed; inset: 0; z-index: 2000;
    background: rgba(6,15,40,0.72); backdrop-filter: blur(4px);
    display: flex; align-items: center; justify-content: center;
    padding: 20px;
    animation: rdFadeIn 0.2s ease;
  }
  .rd-sq-overlay[hidden] { display: none; }
  @keyframes rdFadeIn { from { opacity: 0; } to { opacity: 1; } }

  .rd-sq-panel {
    background: var(--white); border-radius: 14px;
    width: 60%; max-width: 860px; max-height: 90vh;
    overflow-y: auto; padding: 28px 28px 24px;
    position: relative;
    animation: rdSlideUp 0.22s ease;
    box-shadow: 0 24px 60px rgba(0,0,0,0.28);
  }
  @keyframes rdSlideUp { from { transform: translateY(18px); opacity: 0; } to { transform: none; opacity: 1; } }

  .rd-sq-close {
    position: absolute; top: 14px; right: 14px;
    width: 32px; height: 32px; border-radius: 50%; border: none;
    background: var(--page-bg); cursor: pointer; display: flex;
    align-items: center; justify-content: center;
    transition: background 0.15s;
  }
  .rd-sq-close:hover { background: var(--card-border); }
  .rd-sq-close svg { width: 16px; height: 16px; stroke: var(--text-mid); fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

  .rd-sq-header { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 22px; padding-bottom: 18px; border-bottom: 1px solid var(--card-border); }
  .rd-sq-header-icon { width: 42px; height: 42px; border-radius: 10px; background: var(--tint-navy); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .rd-sq-header-icon svg { width: 18px; height: 18px; stroke: var(--navy); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .rd-sq-title { font-size: var(--text-lg); font-weight: var(--fw-bold); color: var(--text-dark); margin: 0 0 4px; }
  .rd-sq-subtitle { font-size: var(--text-xs); color: var(--text-muted); margin: 0; }
  .rd-sq-subtitle span { color: var(--av-red); }

  /* form grid */
  .rd-sq-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
  .rd-sq-field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px; }
  .rd-sq-field.rd-sq-full { grid-column: 1 / -1; }
  .rd-sq-label { font-size: var(--text-xs); font-weight: var(--fw-semibold); color: var(--text-dark); }
  .rd-sq-label span { color: var(--av-red); margin-left: 2px; }
  .rd-sq-input {
    width: 100%; padding: 9px 12px; border: 1.5px solid var(--card-border);
    border-radius: 7px; font-size: var(--text-sm); font-family: var(--font-sans);
    color: var(--text-dark); background: var(--white);
    transition: border-color 0.15s, box-shadow 0.15s;
    outline: none;
  }
  .rd-sq-input:focus { border-color: var(--navy); box-shadow: 0 0 0 3px rgba(13,71,161,0.10); }
  .rd-sq-input:focus::placeholder { opacity: 0; transition: opacity 0.15s; }
  .rd-sq-input.rd-sq-invalid { border-color: var(--av-red); box-shadow: 0 0 0 3px rgba(244,67,54,0.10); }
  textarea.rd-sq-input { resize: vertical; min-height: 88px; line-height: var(--lh-normal); }

  /* phone split */
  .rd-sq-phone-wrap { display: flex; gap: 8px; }
  .rd-sq-phone-code { width: 200px; flex-shrink: 0; padding-right: 6px; }
  .rd-sq-phone-num  { flex: 1; }

  /* error messages */
  .rd-sq-error { font-size: var(--text-xs); color: var(--av-red); display: flex; align-items: center; gap: 4px; margin-top: 2px; }
  .rd-sq-error[hidden] { display: none; }

  /* captcha */
  .rd-sq-captcha-wrap { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
  .rd-sq-captcha-canvas { border: 1.5px solid var(--card-border); border-radius: 6px; background: var(--page-bg); display: block; }
  .rd-sq-captcha-refresh {
    width: 36px; height: 36px; border-radius: 7px; border: 1.5px solid var(--card-border);
    background: var(--page-bg); cursor: pointer; display: flex;
    align-items: center; justify-content: center; flex-shrink: 0;
    transition: border-color 0.15s, background 0.15s;
  }
  .rd-sq-captcha-refresh:hover { border-color: var(--navy); background: var(--tint-navy); }
  .rd-sq-captcha-refresh svg { width: 16px; height: 16px; stroke: var(--navy); fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
  .rd-sq-captcha-input-wrap { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 140px; }
  .rd-sq-captcha-label { font-size: var(--text-xs); font-weight: var(--fw-semibold); color: var(--text-dark); }
  .rd-sq-captcha-input { font-size: var(--text-sm); letter-spacing: 2px; }

  /* submit row */
  .rd-sq-submit-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 18px; border-top: 1px solid var(--card-border); flex-wrap: wrap; }
  .rd-sq-privacy-note { display: flex; align-items: flex-start; gap: 6px; font-size: 11px; color: var(--text-muted); max-width: 340px; line-height: var(--lh-normal); margin: 0; flex: 1; }
  .rd-sq-privacy-note svg { width: 12px; height: 12px; stroke: var(--av-teal); fill: none; flex-shrink: 0; margin-top: 1px; }
  .rd-sq-submit-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 11px 26px; background: var(--navy); color: var(--white);
    border: none; border-radius: 8px; font-size: var(--text-sm);
    font-weight: var(--fw-bold); cursor: pointer; font-family: var(--font-sans);
    transition: background 0.18s, transform 0.15s;
    white-space: nowrap;
  }
  .rd-sq-submit-btn:hover { background: var(--blue); transform: translateY(-1px); }
  .rd-sq-submit-btn:disabled { background: var(--text-muted); cursor: not-allowed; transform: none; }
  .rd-sq-submit-btn svg { width: 14px; height: 14px; stroke: var(--white); fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

  /* success state inside modal */
  .rd-sq-success {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 14px; padding: 32px 20px; text-align: center;
  }
  .rd-sq-success-icon { width: 56px; height: 56px; border-radius: 50%; background: var(--tint-teal); display: flex; align-items: center; justify-content: center; }
  .rd-sq-success-icon svg { width: 26px; height: 26px; stroke: var(--av-teal); fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
  .rd-sq-success h4 { font-size: var(--text-lg); font-weight: var(--fw-bold); color: var(--text-dark); margin: 0; }
  .rd-sq-success p { font-size: var(--text-sm); color: var(--text-mid); margin: 0; max-width: 380px; line-height: var(--lh-loose); text-align: center; }
  .rd-sq-success-meta { width: 100%; max-width: 420px; background: var(--page-bg); border: 1px solid var(--card-border); border-radius: 10px; text-align: left; overflow: hidden; }
  .rd-sq-success-row { display: flex; align-items: flex-start; gap: 10px; padding: 11px 16px; border-bottom: 1px solid var(--card-border); font-size: var(--text-sm); color: var(--text-mid); line-height: 1.5; }
  .rd-sq-success-row:last-child { border-bottom: none; }
  .rd-sq-success-row svg { width: 15px; height: 15px; flex-shrink: 0; margin-top: 2px; stroke: var(--av-teal); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .rd-sq-success-row strong { color: var(--text-dark); font-weight: var(--fw-semibold); }
  .rd-sq-preview-btn {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 9px 20px; border: 1.5px solid var(--navy); border-radius: 7px;
    background: transparent; color: var(--navy); font-size: var(--text-sm);
    font-weight: var(--fw-semibold); cursor: pointer; font-family: var(--font-sans);
    transition: background 0.15s;
  }
  .rd-sq-preview-btn:hover { background: var(--tint-navy); }
  .rd-sq-preview-btn svg { width: 14px; height: 14px; stroke: var(--navy); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

  /* ══════════════════════════════════════════
     REQUEST CUSTOMIZATION MODAL
  ══════════════════════════════════════════ */
  .rd-rc-overlay {
    position: fixed; inset: 0; z-index: 1100;
    background: rgba(6,26,64,0.74); backdrop-filter: blur(3px);
    display: flex; align-items: flex-start; justify-content: center;
    padding: 20px 16px; overflow-y: auto;
  }
  .rd-rc-overlay[hidden] { display: none; }
  .rd-rc-panel {
    background: var(--white); border-radius: 16px;
    width: 60%; max-width: 860px;
    box-shadow: 0 28px 80px rgba(0,0,0,0.42);
    position: relative; padding: 32px 36px 28px;
    margin: auto; overflow: hidden;
  }
  .rd-rc-close {
    position: absolute; top: 14px; right: 14px;
    width: 34px; height: 34px; border-radius: 50%;
    background: var(--page-bg); border: 1.5px solid var(--card-border);
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: background 0.15s, border-color 0.15s; flex-shrink: 0;
  }
  .rd-rc-close:hover { background: var(--tint-navy); border-color: var(--navy); }
  .rd-rc-close svg { width: 16px; height: 16px; stroke: var(--text-dark); fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
  .rd-rc-head { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 22px; padding-right: 44px; }
  .rd-rc-head-icon {
    flex-shrink: 0; width: 46px; height: 46px; border-radius: 12px;
    background: var(--tint-navy); display: flex; align-items: center; justify-content: center;
  }
  .rd-rc-head-icon svg { width: 22px; height: 22px; stroke: var(--navy); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .rd-rc-title { font-size: var(--text-xl); font-weight: var(--fw-extrabold); color: var(--text-dark); margin: 0 0 4px; line-height: 1.2; }
  .rd-rc-subtitle { font-size: var(--text-xs); color: var(--text-mid); margin: 0; line-height: var(--lh-normal); }
  .rd-rc-subtitle span { color: var(--av-red); }
  /* checkbox grid */
  .rd-rc-check-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 10px;
  }
  .rd-rc-check-item {
    display: flex; align-items: flex-start; gap: 10px;
    padding: 10px 12px; border: 1.5px solid rgba(13,71,161,0.3);
    border-radius: 8px; cursor: pointer; user-select: none;
    transition: border-color 0.14s, background 0.14s; background: var(--white);
  }
  .rd-rc-check-item:hover { border-color: var(--navy); background: var(--tint-navy); }
  .rd-rc-check-item input[type="checkbox"] { position: absolute; opacity: 0; width: 0; height: 0; }
  .rd-rc-check-box {
    width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px;
    border: 2px solid rgba(13,71,161,0.4); border-radius: 4px;
    display: flex; align-items: center; justify-content: center;
    transition: border-color 0.14s, background 0.14s; background: var(--white);
  }
  .rd-rc-check-item.rd-rc-checked { border-color: var(--navy); background: var(--tint-navy); }
  .rd-rc-check-item.rd-rc-checked .rd-rc-check-box { background: var(--navy); border-color: var(--navy); }
  .rd-rc-check-box svg { display: none; width: 10px; height: 9px; }
  .rd-rc-check-item.rd-rc-checked .rd-rc-check-box svg { display: block; }
  .rd-rc-check-label { font-size: var(--text-xs); color: var(--text-dark); line-height: var(--lh-normal); }
  .rd-rc-check-section-err .rd-rc-check-grid { border: 1.5px solid var(--av-red); border-radius: 8px; padding: 4px; }
  @media (max-width: 540px) { .rd-rc-check-grid { grid-template-columns: 1fr; } }
  /* existing scope toggle */
  .rd-rc-scope-toggle { display: flex; user-select: none; }
  .rd-rc-scope-toggle input[type="checkbox"] { position: absolute; opacity: 0; width: 0; height: 0; }
  .rd-rc-scope-btn {
    display: flex; align-items: center; gap: 10px;
    padding: 11px 16px; width: 100%;
    border: 1.5px solid rgba(13,71,161,0.3);
    border-radius: 8px; background: var(--white);
    transition: border-color 0.14s, background 0.14s;
  }
  .rd-rc-scope-btn-box {
    width: 20px; height: 20px; flex-shrink: 0;
    border: 2px solid rgba(13,71,161,0.4); border-radius: 5px;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: background 0.14s, border-color 0.14s; background: var(--white);
  }
  .rd-rc-scope-btn-box:hover { border-color: var(--navy); background: var(--tint-navy); }
  .rd-rc-scope-btn-box svg { display: none; width: 11px; height: 10px; }
  .rd-rc-scope-btn-text { font-size: var(--text-sm); color: var(--text-dark); line-height: var(--lh-normal); cursor: default; }
  /* checked state */
  .rd-rc-scope-toggle input:checked ~ .rd-rc-scope-btn { border-color: var(--navy); background: var(--tint-navy); }
  .rd-rc-scope-toggle input:checked ~ .rd-rc-scope-btn .rd-rc-scope-btn-box { background: var(--navy); border-color: var(--navy); }
  .rd-rc-scope-toggle input:checked ~ .rd-rc-scope-btn .rd-rc-scope-btn-box svg { display: block; }
  .rd-rc-scope-toggle input:checked ~ .rd-rc-scope-btn .rd-rc-scope-btn-text { font-weight: var(--fw-semibold); }
  /* expand button + label row */
  .rd-rc-other-label-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 5px; }
  .rd-rc-expand-btn {
    flex-shrink: 0; width: 26px; height: 26px; border-radius: 6px;
    border: 1.5px solid var(--card-border); background: var(--page-bg);
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: border-color 0.14s, background 0.14s;
  }
  .rd-rc-expand-btn:hover { border-color: var(--navy); background: var(--tint-navy); }
  .rd-rc-expand-btn svg { width: 13px; height: 13px; stroke: var(--navy); }
  /* expanded overlay — absolute, covers form, sits on top */
  .rd-rc-expand-overlay {
    position: absolute; inset: 0 0 auto 0; z-index: 10;
    height: 50%;
    background: rgba(255,255,255,0.97); backdrop-filter: blur(2px);
    border-radius: 16px 16px 0 0;
    border-bottom: 2px solid var(--card-border);
    padding: 20px 28px 18px;
    display: flex; flex-direction: column;
    box-shadow: 0 8px 24px rgba(0,0,0,0.10);
  }
  .rd-rc-expand-overlay[hidden] { display: none; }
  .rd-rc-expand-panel { display: flex; flex-direction: column; gap: 12px; height: 100%; }
  .rd-rc-expand-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .rd-rc-expand-title { font-size: var(--text-base); font-weight: var(--fw-bold); color: var(--text-dark); }
  .rd-rc-expand-close {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 14px; border: 1.5px solid var(--card-border);
    border-radius: 7px; background: var(--page-bg); cursor: pointer;
    font-size: var(--text-xs); font-weight: var(--fw-semibold);
    color: var(--text-dark); font-family: var(--font-sans);
    transition: border-color 0.14s, background 0.14s;
  }
  .rd-rc-expand-close:hover { border-color: var(--navy); background: var(--tint-navy); }
  .rd-rc-expand-close svg { width: 13px; height: 13px; stroke: var(--navy); }
  .rd-rc-expand-ta { flex: 1; resize: none; min-height: 200px; font-size: var(--text-sm); line-height: var(--lh-loose); }
  .rd-rc-expand-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .rd-rc-expand-counter { font-size: var(--text-xs); color: var(--text-muted); }
  /* validation alert banner */
  .rd-rc-alert-banner {
    display: flex; align-items: flex-start; gap: 10px;
    background: #FFF3F3; border: 1.5px solid var(--av-red);
    border-radius: 8px; padding: 12px 16px; margin-bottom: 18px;
    font-size: var(--text-sm); color: #C62828; font-weight: var(--fw-semibold);
    line-height: var(--lh-normal);
  }
  .rd-rc-alert-banner[hidden] { display: none; }
  .rd-rc-alert-banner svg { width: 18px; height: 18px; stroke: var(--av-red); flex-shrink: 0; margin-top: 1px; }
  /* email preview panel */
  .rd-ep-panel { max-width: 620px; }
  .rd-ep-email-frame {
    border: 1px solid var(--card-border); border-radius: 8px; overflow: hidden;
    font-family: 'Segoe UI', Arial, sans-serif; font-size: 13px; color: #333;
    max-height: 70vh; overflow-y: auto;
  }

  /* responsive */
  @media (max-width: 1023px) {
    .rd-sq-panel { width: 92%; }
    .rd-rc-panel { width: 92%; }
  }
  @media (max-width: 640px) {
    .rd-sample-value-grid { grid-template-columns: 1fr; }
    .rd-sq-row { grid-template-columns: 1fr; }
    .rd-sq-panel { width: 95%; padding: 20px 16px 18px; }
    .rd-rc-panel { width: 95%; }
    .rd-sq-submit-row { flex-direction: column; align-items: stretch; }
    .rd-sq-submit-btn { justify-content: center; }
  }

  .report-description-sample-form-wrap {
    background: var(--page-bg);
    border: 1px solid var(--card-border);
    border-radius: 10px;
    padding: 24px;
  }
  .report-description-sample-form-intro {
    font-size: var(--text-sm);
    color: var(--text-mid);
    line-height: var(--lh-loose);
    margin-bottom: 20px;
  }
  .report-description-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 14px;
  }
  .report-description-form-group { display: flex; flex-direction: column; gap: 5px; }
  .report-description-form-group.full { grid-column: 1 / -1; }
  .report-description-form-label {
    font-size: var(--text-sm);
    font-weight: var(--fw-medium);
    color: var(--text-mid);
    letter-spacing: 0.3px;
  }
  .report-description-form-label span { color: var(--av-red); margin-left: 2px; }
  .report-description-form-input,
  .report-description-form-select,
  .report-description-form-textarea {
    padding: 9px 12px;
    border: 1.5px solid var(--card-border);
    border-radius: 7px;
    background: var(--white);
    font-size: var(--text-sm);
    color: var(--text-dark);
    font-family: var(--font-sans);
    outline: none;
    transition: border-color 0.15s;
  }
  .report-description-form-input:focus,
  .report-description-form-select:focus,
  .report-description-form-textarea:focus {
    border-color: var(--navy);
    box-shadow: 0 0 0 3px rgba(21,101,192,0.12);
  }
  .report-description-form-textarea { resize: vertical; min-height: 90px; }
  .report-description-form-submit {
    padding: 11px 28px;
    background: var(--navy);
    color: var(--white);
    border: none;
    border-radius: 7px;
    font-size: var(--text-sm);
    font-weight: var(--fw-bold);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: background 0.15s, transform 0.15s;
    font-family: var(--font-sans);
  }
  .report-description-form-submit:hover { background: var(--blue); transform: translateY(-1px); }
  .report-description-form-submit svg  { width: 15px; height: 15px; stroke: var(--white); }
  .report-description-form-note {
    font-size: var(--text-xs);
    color: var(--text-muted);
    margin-top: 10px;
    display: flex;
    align-items: center;
    gap: 5px;
  }
  .report-description-form-note svg { width: 12px; height: 12px; stroke: var(--text-muted); flex-shrink: 0; }

  /* ── Table of Contents — Chapter Cards ── */
  .report-description-toc-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .report-description-toc-chapter-row { display: block; }
  .report-description-toc-chapter {
    border: 1px solid var(--card-border);
    border-radius: 10px;
    overflow: hidden;
    background: var(--white);
    transition: border-color 0.22s, box-shadow 0.22s;
    box-shadow: 0 1px 4px rgba(0,0,0,0.05);
    scroll-margin-top: calc(var(--header-height, 64px) + 12px);
  }
  .report-description-toc-chapter:hover {
    border-color: #b6c8e8;
    box-shadow: 0 3px 12px rgba(13,71,161,0.08);
  }
  .report-description-toc-chapter.open {
    border-color: var(--navy);
    box-shadow: -4px 0 0 var(--navy), 0 4px 16px rgba(13,71,161,0.10);
  }
  .report-description-toc-chapter-btn {
    width: 100%;
    background: var(--white);
    border: none;
    padding: 17px 19px;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    text-align: left;
    transition: background 0.15s;
    font-family: var(--font-sans);
  }
  .report-description-toc-chapter.open .report-description-toc-chapter-btn { background: var(--tint-navy); }
  .report-description-toc-chapter-btn:hover { background: var(--page-bg); }

  /* Chapter badge — "Chapter 1" single row */
  .report-description-toc-num {
    flex-shrink: 0;
    background: var(--navy);
    color: var(--white);
    border-radius: 5px;
    padding: 6px 9px;
    font-size: 11px;
    font-weight: var(--fw-bold);
    white-space: nowrap;
    font-family: var(--font-sans);
    letter-spacing: 0.2px;
    transition: background 0.2s;
  }
  .report-description-toc-chapter.open .report-description-toc-num { background: var(--blue); }

  /* Title group — name + sub-count inline */
  .report-description-toc-title-group {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
  }
  .report-description-toc-chapter-name {
    font-size: var(--text-sm);
    font-weight: var(--fw-semibold);
    color: var(--text-dark);
    line-height: var(--lh-normal);
  }
  .report-description-toc-chapter.open .report-description-toc-chapter-name { color: var(--navy); }
  .report-description-toc-pages {
    font-size: var(--text-xs);
    color: var(--text-muted);
    white-space: nowrap;
    flex-shrink: 0;
  }
  .report-description-toc-sub-count {
    flex-shrink: 0;
    font-size: 10px;
    font-weight: var(--fw-semibold);
    color: var(--text-muted);
    background: var(--page-bg);
    border: 1px solid var(--card-border);
    border-radius: 20px;
    padding: 2px 8px;
    white-space: nowrap;
    font-family: var(--font-sans);
  }
  .report-description-toc-chapter.open .report-description-toc-sub-count {
    background: var(--blue-light);
    color: var(--navy);
    border-color: #c7d9f5;
  }
  .report-description-toc-chevron {
    width: 16px; height: 16px;
    stroke: var(--text-muted);
    flex-shrink: 0;
    transition: transform 0.25s;
  }
  .report-description-toc-chapter.open .report-description-toc-chevron { transform: rotate(180deg); stroke: var(--navy); }

  /* Sub-sections */
  .report-description-toc-sub {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--page-bg);
  }
  .report-description-toc-chapter.open .report-description-toc-sub { border-top: 1px solid var(--card-border); }
  .report-description-toc-sub-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 19px 10px 22px;
    font-size: var(--text-sm);
    color: var(--text-mid);
    border-bottom: 1px solid var(--card-border);
    transition: background 0.15s;
  }
  .report-description-toc-sub-item:last-child { border-bottom: none; }
  .report-description-toc-sub-item:hover { background: var(--blue-light); }
  .report-description-toc-sub-dot {
    flex-shrink: 0;
    width: 6px; height: 6px;
    border-radius: 50%;
    border: 1.5px solid var(--text-muted);
    background: var(--white);
    transition: background 0.15s, border-color 0.15s;
  }
  .report-description-toc-sub-item:hover .report-description-toc-sub-dot { background: var(--navy); border-color: var(--navy); }
  .report-description-toc-sub-num {
    font-size: var(--text-xs);
    color: var(--text-muted);
    font-weight: var(--fw-semibold);
    min-width: 26px;
    flex-shrink: 0;
  }
  .report-description-toc-sub-name { flex: 1; }
  .report-description-toc-sub-pg  { font-size: var(--text-xs); color: var(--text-muted); flex-shrink: 0; }

  /* ── L2: Section — stronger number, clear title ── */
  .report-description-toc-level-2 { padding-left: 22px; }
  .report-description-toc-level-2 .report-description-toc-sub-num {
    color: var(--navy);
    font-weight: var(--fw-bold);
    font-size: var(--text-sm);
    min-width: 32px;
  }
  .report-description-toc-level-2 .report-description-toc-sub-name {
    font-weight: var(--fw-medium);
    color: var(--text);
  }

  /* ── L3: Sub-section — indented ── */
  .report-description-toc-level-3 {
    padding-left: 40px;
    background: var(--surface);
    font-size: 13px;
  }
  .report-description-toc-level-3 .report-description-toc-sub-num {
    color: var(--navy);
    font-weight: var(--fw-semibold);
    font-size: 12px;
    min-width: 40px;
  }
  .report-description-toc-level-3 .report-description-toc-sub-name { color: var(--text); }

  /* ── L4: Category — further indented ── */
  .report-description-toc-level-4 {
    padding-left: 58px;
    background: var(--page-bg);
    font-size: 12px;
    color: var(--text);
  }
  .report-description-toc-level-4 .report-description-toc-sub-num {
    color: var(--navy);
    font-size: 11px;
    min-width: 46px;
  }
  .report-description-toc-level-4 .report-description-toc-sub-name { color: var(--text); }

  /* ── L5: Sub-category — deepest indent, lightest ── */
  .report-description-toc-level-5 {
    padding-left: 76px;
    background: var(--page-bg);
    font-size: 11.5px;
    color: var(--text-muted);
  }
  .report-description-toc-level-5 .report-description-toc-sub-num {
    color: #b0c4de;
    font-size: 11px;
    min-width: 54px;
  }
  .report-description-toc-level-5 .report-description-toc-sub-name { color: var(--text-muted); }

  /* ── Paid Customization ── */
  .report-description-custom-intro {
    background: linear-gradient(135deg, var(--teal-mid) 0%, var(--av-teal) 100%);
    border-radius: 10px;
    padding: 16px 20px;
    color: var(--white);
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
    -webkit-font-smoothing: antialiased;
  }
  .report-description-custom-intro-icon {
    width: 40px; height: 40px;
    background: rgba(255,255,255,0.15);
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
  }
  .report-description-custom-intro-icon svg { width: 20px; height: 20px; stroke: var(--white); }
  .report-description-custom-intro-text h3 { font-size: var(--text-sm); font-weight: var(--fw-extrabold); margin-bottom: 3px; color: var(--white); }
  .report-description-custom-intro-text p  { font-size: var(--text-xs); color: rgba(255,255,255,0.70); line-height: var(--lh-normal); }
  /* ── Paid Customizations — Horizontal Plan-Row List ── */
  .report-description-custom-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-bottom: 20px;
  }
  .report-description-custom-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    background: var(--white);
    border: 1px solid var(--card-border);
    border-radius: 10px;
    transition: border-color 0.15s, box-shadow 0.15s;
    cursor: pointer;
  }
  .report-description-custom-item:hover {
    border-color: var(--av-teal);
    box-shadow: 0 3px 12px rgba(0,150,136,0.10);
  }
  .report-description-custom-lock {
    width: 36px; height: 36px;
    background: var(--tint-teal);
    border-radius: 9px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    margin-bottom: 0;
  }
  .report-description-custom-lock svg { width: 16px; height: 16px; stroke: var(--av-teal); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .report-description-custom-item-body { flex: 1; min-width: 0; margin-bottom: 0; }
  .report-description-custom-item-name {
    font-size: var(--text-sm);
    font-weight: var(--fw-bold);
    color: var(--text-dark);
    line-height: 1.35;
    margin-bottom: 2px;
  }
  .report-description-custom-item-desc {
    font-size: var(--text-xs);
    color: var(--text-muted);
    line-height: var(--lh-normal);
  }
  .report-description-custom-item-badge {
    font-size: 10px;
    font-weight: var(--fw-extrabold);
    background: var(--tint-teal);
    color: var(--text-teal-dark);
    padding: 3px 9px;
    border-radius: 20px;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    white-space: nowrap;
    flex-shrink: 0;
    align-self: center;
    margin-top: 0;
  }
  .report-description-custom-item-badge.addon {
    background: var(--tint-warning);
    color: var(--text-warning-dark);
  }
  .report-description-custom-item-badge.advisory {
    background: var(--tint-danger);
    color: var(--text-danger-dark);
  }
  .report-description-custom-cta {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px;
    background: var(--page-bg);
    border: 1.5px dashed var(--av-teal);
    border-radius: 10px;
  }
  .report-description-custom-cta-text { flex: 1; font-size: var(--text-sm); color: var(--text-mid); line-height: var(--lh-normal); }
  .report-description-custom-cta-text strong { color: var(--text-dark); display: block; font-size: var(--text-sm); margin-bottom: 3px; font-weight: var(--fw-bold); }
  .report-description-proposal-btn {
    padding: 11px 22px;
    background: var(--av-teal);
    color: var(--white);
    border: none;
    border-radius: 7px;
    font-size: var(--text-sm);
    font-weight: var(--fw-bold);
    cursor: pointer;
    white-space: nowrap;
    display: flex; align-items: center; gap: 7px;
    transition: background 0.15s, transform 0.15s;
    font-family: var(--font-sans);
  }
  .report-description-proposal-btn:hover { background: var(--teal-mid); transform: translateY(-1px); }
  .report-description-proposal-btn svg { width: 14px; height: 14px; stroke: var(--white); }

  /* Right sidebar — removed; pricing moved to hero */
  .report-description-right-sidebar { display: none; }

  /* ══════════════════════════════════
     PRICING OPTIONS CARD — enhanced
     Lives in .report-description-hero-pricing-wrap
  ══════════════════════════════════ */
  /* ── Pricing card — transparent with CSS pattern behind ── */
  .report-description-pricing-card {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.18);
    box-shadow: 0 8px 32px rgba(0,0,0,0.36);
    display: flex;
    flex-direction: column;
    min-width: 0;
    align-self: stretch;
    margin: 0 20px 0 0;
    position: relative;
  }
  /* CSS analytics grid pattern — sits behind all card content */
  .report-description-pricing-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 12px;
    background:
      radial-gradient(ellipse at 75% 15%, rgba(0,150,136,0.35) 0%, transparent 55%),
      radial-gradient(ellipse at 15% 88%, rgba(0,105,92,0.40) 0%, transparent 50%),
      linear-gradient(160deg, var(--text-teal-dark) 0%, var(--teal-mid) 100%);
    background-size: 100% 100%, 100% 100%, 100% 100%;
    pointer-events: none;
    z-index: 0;
  }
  /* Keep all card children above the pattern */
  .report-description-pricing-card > * {
    position: relative;
    z-index: 1;
  }

  /* ── Pricing Card — Single Column List Layout ── */

  /* Header */
  .rd-pc-header {
    padding: 11px 14px 9px;
    border-bottom: 1px solid rgba(255,255,255,0.10);
    -webkit-font-smoothing: antialiased;
  }
  .rd-pc-header-top {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
  }
  .rd-pc-header-top svg { width: 15px; height: 15px; stroke: var(--av-teal); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
  .rd-pc-header-title {
    font-size: var(--text-base);
    font-weight: var(--fw-extrabold);
    color: var(--white);
    line-height: 1.2;
  }
  .rd-pc-header-sub {
    font-size: var(--text-xs);
    color: rgba(255,255,255,0.58);
    line-height: 1.45;
    padding-left: 23px;
  }

  /* Plan list */
  .rd-pc-plan-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 8px 10px 4px;
    flex: 1;
    /* Lets the list give way when the row height is locked and a bundle
       notice is also present, instead of pushing past the card. */
    min-height: 0;
  }

  /* Individual plan card */
  .rd-pc-plan-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 10px;
    background: var(--white);
    border: 1px solid var(--card-border);
    border-radius: 8px;
    margin-bottom: 0;
    text-decoration: none;
    position: relative;
    transition: box-shadow 0.15s, border-color 0.15s;
    overflow: hidden;
  }
  .rd-pc-plan-card:hover {
    box-shadow: 0 3px 12px rgba(0,0,0,0.10);
    border-color: #b6c8e8;
  }
  /* Featured left accent */
  .rd-pc-plan-card.rd-pc-featured {
    border-left: none;
  }
  /* Enterprise card */
  .rd-pc-plan-card.rd-pc-enterprise {
    background: var(--blue-light);
    border-color: #c7d9f5;
  }
  .rd-pc-plan-card.rd-pc-enterprise:hover { border-color: var(--navy); }

  /* Plan icon */
  .rd-pc-plan-icon {
    flex-shrink: 0;
    width: 36px; height: 36px;
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
  }
  .rd-pc-plan-icon svg {
    width: 18px; height: 18px;
    fill: none; stroke-width: 1.8;
    stroke-linecap: round; stroke-linejoin: round;
  }

  /* Plan body */
  .rd-pc-plan-body { flex: 1; min-width: 0; }
  .rd-pc-plan-name-row {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    row-gap: 2px;
    margin-bottom: 2px;
  }
  .rd-pc-plan-name {
    font-size: var(--text-sm);
    font-weight: var(--fw-bold);
    color: var(--text-dark);
    line-height: 1.2;
    white-space: nowrap;
  }
  .rd-pc-plan-savings {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: var(--text-xs);
    color: var(--text-muted);
    line-height: 1.3;
  }
  .rd-pc-plan-price {
    font-size: var(--text-base);
    font-weight: var(--fw-extrabold);
    color: var(--av-teal);
    line-height: 1;
    margin-left: auto;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .rd-pc-plan-price.rd-pc-orange { color: var(--av-orange); }
  .rd-pc-plan-price.rd-pc-navy   { color: var(--navy); }
  .rd-pc-price-suffix {
    font-size: 10px;
    font-weight: var(--fw-normal);
    color: var(--text-muted);
    margin-left: 1px;
  }

  /* Chevron */
  .rd-pc-chevron {
    flex-shrink: 0;
    width: 14px; height: 14px;
    stroke: var(--text-muted); fill: none; stroke-width: 2;
    stroke-linecap: round; stroke-linejoin: round;
    transition: stroke 0.15s, transform 0.15s;
  }
  .rd-pc-plan-card:hover .rd-pc-chevron { stroke: var(--navy); transform: translateX(2px); }

  /* Mixed Bundle — amber frame wraps header + sub-rows */
  .rd-pc-mb-frame {
    border: 1.5px solid #d4a84b;
    border-radius: 10px;
    overflow: hidden;
  }

  /* Mixed Bundle — non-clickable group header */
  .rd-pc-mb-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px 8px;
    background: #fff9ee;
    border-bottom: 1px solid #e8d4a0;
    cursor: default;
  }

  /* Mixed Bundle — always-visible sub-rows */
  .rd-pc-sub-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px 9px 14px;
    background: #fffdf9;
    border-top: 1px solid #ede0c4;
    text-decoration: none;
    transition: background 0.15s;
    margin-bottom: 0;
  }
  .rd-pc-sub-row:hover {
    background: #fef6e4;
  }
  .rd-pc-sub-bullet {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
  }
  .rd-pc-sub-icon {
    flex-shrink: 0;
    width: 28px; height: 28px;
    border-radius: 7px;
    display: flex; align-items: center; justify-content: center;
  }
  .rd-pc-sub-icon svg {
    width: 14px; height: 14px;
    fill: none; stroke-width: 1.8;
  }
  .rd-pc-sub-row:hover .rd-pc-chevron { stroke: var(--navy); transform: translateX(2px); }

  /* Bundle plan active — direct-add states */
  .rd-pc-bundle-notice {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    padding: 6px 10px;
    background: rgba(0, 150, 136, 0.12);
    border: 1px solid rgba(0, 150, 136, 0.3);
    border-radius: 6px;
    font-size: 0.6875rem;
    font-weight: var(--fw-semibold);
    color: var(--text-teal-dark);
    line-height: 1.35;
  }
  .rd-pc-bundle-notice svg {
    width: 12px; height: 12px;
    stroke: var(--av-teal);
    flex-shrink: 0;
  }
  .rd-pc-plan-card.rd-pc-adding {
    opacity: 0.55;
    pointer-events: none;
  }
  .rd-pc-plan-card.rd-pc-adding .rd-pc-chevron {
    animation: rdPcSpin 0.7s linear infinite;
  }
  @keyframes rdPcSpin {
    to { transform: rotate(360deg); }
  }

  /* Badges — light background context */
  .report-description-po-badge {
    display: inline-flex;
    align-items: center;
    font-size: 10px;
    font-weight: var(--fw-bold);
    padding: 2px 8px;
    border-radius: 20px;
    line-height: 1.4;
    letter-spacing: 0.3px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .report-description-po-badge.best-value  { background: var(--tint-teal);    color: var(--text-teal-dark); }
  .report-description-po-badge.popular     { background: var(--tint-warning);  color: var(--text-warning-dark); }
  .report-description-po-badge.plans       { background: var(--blue-light);    color: var(--navy); }
  .report-description-po-badge.off         { background: var(--tint-danger);   color: var(--text-danger-dark); }
  .report-description-po-badge.enterprise  { background: var(--blue-light);    color: var(--navy); }

  /* Trust / security footer */
  .rd-pc-trust-bar {
    background: rgba(255,255,255,0.06);
    border-top: 1px solid rgba(255,255,255,0.10);
    padding: 5px 12px 8px;
    -webkit-font-smoothing: antialiased;
  }
  .rd-pc-trust-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .rd-pc-trust-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
  }
  .rd-pc-trust-icon {
    flex-shrink: 0;
    width: 28px; height: 28px;
    background: rgba(0,150,136,0.18);
    border-radius: 6px;
    display: flex; align-items: center; justify-content: center;
  }
  .rd-pc-trust-icon svg {
    width: 13px; height: 13px;
    stroke: var(--white); fill: none;
    stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
  }
  .rd-pc-trust-title {
    font-size: 11px;
    font-weight: var(--fw-bold);
    color: var(--white);
    line-height: 1.25;
  }
  .rd-pc-trust-sub {
    font-size: 10px;
    color: var(--white);
    line-height: 1.3;
  }
  .rd-pc-disclaimer {
    font-size: 10px;
    color: rgba(255,255,255,0.38);
    text-align: center;
    line-height: 1.6;
  }

  /* ══════════════════════════════════════════
     RESPONSIVE — Large Desktop (≥1440px)
  ══════════════════════════════════════════ */
  @media (min-width: 1440px) {
    .report-description-hero               { padding: 40px 36px 36px; }
  }

  /* ══════════════════════════════════════════
     RESPONSIVE — Laptop (max-width: 1279px)
  ══════════════════════════════════════════ */
  @media (max-width: 1279px) {
    .report-description-hero               { padding: 30px 24px 28px; }
    /* Laptop keeps its smaller heading, but still honours the auto-fit factor
       because the hero row is two columns down to 1024px. */
    .report-description-hero-content h1    { font-size: max(1.25rem, calc(var(--text-2xl) * var(--rd-hero-fit))); }
  }

  /* ══════════════════════════════════════════
     RESPONSIVE — Small Laptop (max-width: 1099px)
  ══════════════════════════════════════════ */
  @media (max-width: 1099px) {
    .report-description-page-body          { grid-template-columns: 3fr 9fr; }
  }

  /* ══════════════════════════════════════════
     RESPONSIVE — Tablet (max-width: 1023px)
  ══════════════════════════════════════════ */
  @media (max-width: 1023px) {
    /* Stack hero row vertically */
    .report-description-hero-row           { grid-template-columns: 1fr; gap: 0; }
    .report-description-hero-left-col      { border-radius: 0; border-right: none; border-bottom: 1px solid rgba(255,255,255,0.22); }
    .report-description-hero-pricing-wrap  { padding: 20px; }
    .rd-outlook-data-grid                  { grid-template-columns: repeat(2, 1fr); }
    .rd-outlook-split                      { grid-template-columns: 1fr; }
    .rd-outlook-chart-panel                { min-height: 220px; }
    .report-description-hero-stats-row     { flex-wrap: wrap; gap: 10px; }
    .report-description-hero-stat-rect     { flex: 1 1 calc(33% - 8px); min-width: 140px; }
    .report-description-hero-overview      { flex-direction: column; align-items: flex-start; gap: 12px; }
    /* Page body: single column on tablet; padding-top compensates for fixed action bar (~52px) */
    .report-description-page-body          { grid-template-columns: 1fr; padding: 60px 14px 28px; }
    /* Sections + ToC chapters scroll clear of header (64px) + action bar (52px) + buffer (4px) */
    .report-description-section            { scroll-margin-top: 120px; }
    .report-description-toc-chapter        { scroll-margin-top: 120px; }
    .report-description-left-sidebar       { position: static; }
    /* Geography modal full-width on tablet */
    .report-description-geo-panel          { max-width: 100%; }
    .rd-geo-filter-bar                     { padding: 12px 16px; }
    .rd-geo-bird-grid                      { grid-template-columns: repeat(4, 1fr); grid-template-rows: none; grid-auto-flow: row; gap: 7px; }
    .rd-geo-region-cards                   { grid-template-columns: repeat(4, 1fr); }
    .report-description-related-grid       { grid-template-columns: repeat(2, 1fr); }
    .report-description-custom-list        { grid-template-columns: repeat(2, 1fr); }
  }

  /* ══════════════════════════════════════════
     RESPONSIVE — Mobile (max-width: 639px)
  ══════════════════════════════════════════ */
  /* Hide Ask Us button + info bar on mobile/tablet for this page only */
  @media (max-width: 1023px) {
    .mob-ask-us-btn  { display: none !important; }
    .mob-bottom-sep  { display: none !important; }
    .rd-info-bar     { display: none !important; }
  }

  @media (max-width: 639px) {
    /* ── Hero layout ── */
    .report-description-hero               { padding: 18px 14px 16px; }
    .report-description-hero-content h1    { font-size: var(--text-xl); }

    /* Meta bar: wrap chips onto multiple lines; hide pipe separators */
    .report-description-meta-bar           { flex-wrap: wrap; overflow: visible; padding: 8px 12px; gap: 5px 8px; }
    .report-description-meta-sep           { display: none; }
    .report-description-meta-chip          { font-size: 10.5px; }

    /* Stats: keep 3 in a horizontal row, hide icon to save width */
    .report-description-hero-stats-row    { flex-direction: row; gap: 6px; }
    .report-description-hero-stat-rect    { flex: 1 1 0; min-width: 0; padding: 6px 8px; gap: 0; }
    .report-description-hero-stat-icon    { display: none; }
    .report-description-hero-stat-value   { font-size: var(--text-base); }
    .report-description-hero-stat-label   { font-size: 9px; letter-spacing: 0.4px; }

    /* Overview: text above button */
    .report-description-hero-overview     { flex-direction: column; align-items: flex-start; gap: 10px; transform: none; margin-top: 14px; }
    .report-description-btn-hero-teal     { width: 100%; justify-content: center; }

    /* Action buttons: 2-column grid so 4 buttons sit in a 2×2 layout */
    .report-description-hero-btns         { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
    .report-description-btn-hero-ghost    { justify-content: center; font-size: var(--text-xs); padding: 9px 10px; }
    .report-description-btn-hero-ghost svg { width: 12px; height: 12px; }

    /* Remaining page-body sections */
    .rd-outlook-data-grid                  { grid-template-columns: repeat(2, 1fr); }
    .report-description-page-body         { padding: 60px 10px 24px; gap: 12px; }
    .report-description-section-body      { padding: 16px 14px; }
    .report-description-section-header    { padding: 12px 14px 10px; gap: 10px; }
    .report-description-section-icon      { width: 36px; height: 36px; border-radius: 10px; }
    .report-description-section-num       { width: 22px; height: 22px; }
    /* Section header — grid layout: icon+title+badge on row 1, meta on row 2 */
    .report-description-section-header    { display: grid; grid-template-columns: 36px 1fr auto; grid-template-rows: auto auto; column-gap: 10px; row-gap: 6px; align-items: center; }
    .report-description-section-title-wrap { display: contents; }
    .report-description-section-icon      { grid-column: 1; grid-row: 1; }
    .report-description-section-title     { grid-column: 2; grid-row: 1; align-self: center; font-size: var(--text-base); margin-bottom: 0; }
    .report-description-section-tag       { grid-column: 3; grid-row: 1; align-self: center; }
    .report-description-section-meta      { grid-column: 1 / -1; grid-row: 2; }
    /* FAQ: number badge top-aligned when question text wraps */
    .report-description-faq-question      { align-items: flex-start; }
    .report-description-faq-num-badge     { margin-top: 1px; }
    /* FAQ contact strip: wrap button to its own row on mobile */
    .report-description-faq-contact-strip { flex-wrap: wrap; gap: 10px 12px; padding: 14px 16px; }
    .report-description-faq-contact-btn   { flex: 1 0 100%; justify-content: center; }
    .report-description-scope-infographic { grid-template-columns: 1fr 1fr; }
    .report-description-scope-segment-grid { grid-template-columns: 1fr; }
    .report-description-form-row          { grid-template-columns: 1fr; }
    .report-description-custom-list        { grid-template-columns: 1fr; }
    .report-description-custom-cta        { flex-direction: column; align-items: flex-start; }
    .report-description-milestone-title   { margin-bottom: 4px; }
    .report-description-breadcrumb        { padding: 8px 14px; }
    .report-description-geo-modal         { padding: 10px 8px; }
    .report-description-geo-panel-head    { padding: 12px 14px; gap: 10px; }
    .rd-geo-filter-pill-group             { flex-wrap: wrap; justify-content: flex-start; }
    .rd-geo-head-left                     { width: 100%; }
    .report-description-geo-body          { padding: 12px 14px; }
    .rd-geo-bird-grid                      { grid-template-columns: repeat(3, 1fr); grid-template-rows: none; grid-auto-flow: row; gap: 6px; }
    .rd-geo-region-cards                   { grid-template-columns: repeat(2, 1fr); }
    .rd-geo-filter-group                   { gap: 8px; }
    .rd-geo-fc-label                       { font-size: var(--text-xs); }
    /* Customization item cards: icon + heading + badge on row 1, description full-width below */
    .report-description-custom-item        { display: grid; grid-template-columns: 36px 1fr auto; column-gap: 10px; row-gap: 8px; align-items: start; }
    .report-description-custom-lock        { grid-column: 1; grid-row: 1; align-self: start; }
    .report-description-custom-item-body   { display: contents; }
    .report-description-custom-item-name   { grid-column: 2; grid-row: 1; align-self: center; margin-bottom: 0; }
    .report-description-custom-item-desc   { grid-column: 1 / -1; grid-row: 2; }
    .report-description-custom-item-badge  { grid-column: 3; grid-row: 1; align-self: start; margin-top: 1px; }
    /* Sample value cards: icon + heading on row 1, tick list indented under heading on row 2 */
    .rd-sample-value-card              { display: grid; grid-template-columns: 36px 1fr; column-gap: 8px; row-gap: 8px; align-items: start; }
    .rd-sample-value-icon              { grid-column: 1; grid-row: 1; align-self: start; }
    .rd-sample-value-body              { display: contents; }
    .rd-sample-value-title             { grid-column: 2; grid-row: 1; align-self: center; margin-bottom: 0; }
    .rd-sample-value-list              { grid-column: 2; grid-row: 2; }
    /* Customization intro card: icon + heading on row 1, paragraph full-width below */
    .report-description-custom-intro       { display: grid; grid-template-columns: 40px 1fr; column-gap: 14px; row-gap: 10px; align-items: start; }
    .report-description-custom-intro-icon  { grid-column: 1; grid-row: 1; align-self: start; }
    .report-description-custom-intro-text  { display: contents; }
    .report-description-custom-intro-text h3 { grid-column: 2; grid-row: 1; align-self: center; margin-bottom: 0; }
    .report-description-custom-intro-text p  { grid-column: 1 / -1; grid-row: 2; }
    /* ToC chapter button: badge top-left, sections+chevron top-right, title full-width below */
    .report-description-toc-chapter-btn   { flex-wrap: wrap; align-items: flex-start; padding: 12px 14px; gap: 6px 8px; }
    .report-description-toc-title-group   { display: contents; }
    .report-description-toc-chapter-name  { order: 4; flex: 0 0 100%; }
    .report-description-toc-sub-count     { order: 2; margin-left: auto; }
    .report-description-toc-chapter-btn .report-description-toc-chevron { order: 3; margin-left: 0; align-self: flex-start; margin-top: 2px; }
    .report-description-toc-pages         { display: none; }
  }

  /* ══════════════════════════════════════════
     RESPONSIVE — Small Mobile (max-width: 390px)
  ══════════════════════════════════════════ */
  @media (max-width: 390px) {
    .report-description-hero               { padding: 16px 12px 14px; }
    .report-description-hero-content h1    { font-size: var(--text-lg); }
    .report-description-meta-bar           { gap: 4px 6px; padding: 7px 10px; }
    .report-description-hero-stat-value    { font-size: var(--text-sm); }
    .report-description-hero-stat-label    { font-size: 8.5px; }
    .report-description-btn-hero-ghost     { font-size: 11px; padding: 8px 8px; }
  }



/* ══════════════════════════════════════════════════════
   MOBILE ACTION BAR — fixed below header, geo + pricing
   Only visible on mobile (≤639px) after hero exits view
══════════════════════════════════════════════════════ */
.rd-mob-action-bar {
  display: none; /* hidden until hero exits + JS adds class */
  position: fixed;
  top: var(--header-height, 64px);
  left: 0;
  right: 0;
  z-index: 698;
  background: var(--sidebar-dark);
  padding: 8px 14px;
  gap: 8px;
  border-bottom: 1px solid rgba(255,255,255,0.14);
  box-shadow: 0 3px 12px rgba(0,0,0,0.30);
  -webkit-font-smoothing: antialiased;
}
/* Only render on mobile/tablet — safety net so resize never shows bar on desktop */
@media (max-width: 1023px) {
  .rd-mob-action-bar.rd-mob-bar-visible { display: flex; }

  /* Pricing card not needed on mobile/tablet — action bar replaces it */
  .report-description-pricing-card { display: none !important; }
}

.rd-mob-action-btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 10px 12px;
  border-radius: 7px;
  font-size: var(--text-sm);
  font-weight: var(--fw-semibold);
  cursor: pointer;
  text-decoration: none;
  font-family: var(--font-sans);
  white-space: nowrap;
  transition: background 0.15s, transform 0.15s;
}
.rd-mob-action-btn svg {
  width: 15px; height: 15px;
  fill: none;
  stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0;
}
.rd-mob-action-sections {
  background: rgba(255,255,255,0.18);
  color: var(--white);
  border: 1px solid rgba(255,255,255,0.55);
}
.rd-mob-action-sections svg { stroke: var(--white); stroke-width: 2; }
.rd-mob-action-sections:hover,
.rd-mob-action-sections:active { background: rgba(255,255,255,0.26); }
.rd-mob-action-sections.is-active {
  background: rgba(255,255,255,0.28);
  border-color: rgba(255,255,255,0.80);
}

.rd-mob-action-geo {
  background: rgba(255,255,255,0.18);
  color: var(--white);
  border: 1px solid rgba(255,255,255,0.55);
}
.rd-mob-action-geo svg { stroke: var(--white); stroke-width: 1.8; }
.rd-mob-action-geo:hover,
.rd-mob-action-geo:active { background: rgba(255,255,255,0.26); }

.rd-mob-action-pricing {
  background: var(--av-teal);
  color: var(--white);
  border: none;
}
.rd-mob-action-pricing svg { stroke: var(--white); stroke-width: 2; }
.rd-mob-action-pricing:hover,
.rd-mob-action-pricing:active { background: var(--teal-mid); color: var(--white); transform: translateY(-1px); }

/* ── Mobile sections nav dropdown panel ── */
.rd-mob-nav-panel {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  z-index: 697;
  background: var(--sidebar-dark);
  border-bottom: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 6px 20px rgba(0,0,0,0.35);
  padding: 6px 0 10px;
  max-height: 60vh;
  overflow-y: auto;
  /* positioned just below the mob action bar (~116px total: 64px header + 52px bar) */
  top: calc(var(--header-height, 64px) + 52px);
  -webkit-font-smoothing: antialiased;
}
@media (max-width: 1023px) {
  .rd-mob-nav-panel.rd-mob-nav-open { display: block; }

  /* Hide the sidebar on mobile/tablet — Sections button replaces it */
  .report-description-left-sidebar { display: none !important; }
}
/* Nav links inside the panel — reuse existing nav-item token styles */
.rd-mob-nav-panel .report-description-report-nav {
  padding: 0;
  display: flex;
  flex-direction: column;
}
.rd-mob-nav-panel .report-description-nav-item {
  padding: 11px 20px;
  border-radius: 0;
  border-left: none;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  font-size: var(--text-sm);
}
.rd-mob-nav-panel .report-description-nav-item:last-child {
  border-bottom: none;
}
.rd-mob-nav-panel .report-description-nav-item.active,
.rd-mob-nav-panel .report-description-nav-item:hover {
  background: rgba(255,255,255,0.08);
}


/* ── Annual Subscription Modal ──────────────────────────────────────────────── */
.rd-annual-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 9900;
  background: rgba(7, 26, 58, 0.62);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.rd-annual-modal-overlay:not([hidden]) { display: flex; }
.rd-annual-modal-overlay.is-visible    { opacity: 1; }

.rd-annual-modal {
  background: var(--white);
  border-radius: 12px;
  width: 100%;
  max-width: 460px;
  box-shadow: 0 24px 64px rgba(7, 26, 58, 0.32);
  overflow: hidden;
  transform: translateY(20px);
  transition: transform 0.22s ease;
}
.rd-annual-modal-overlay.is-visible .rd-annual-modal { transform: translateY(0); }

.rd-annual-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.875rem 1.25rem;
  background: var(--navy);
}
.rd-annual-modal-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--white);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.rd-annual-modal-title svg { flex-shrink: 0; }
.rd-annual-modal-close {
  background: none;
  border: none;
  color: rgba(255,255,255,0.65);
  font-size: 1.375rem;
  line-height: 1;
  cursor: pointer;
  padding: 2px 4px;
  transition: color 0.15s;
  border-radius: 4px;
}
.rd-annual-modal-close:hover { color: var(--white); }

.rd-annual-modal-form {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.rd-annual-modal-field  { display: flex; flex-direction: column; gap: 0.3rem; }
.rd-annual-modal-label  {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-dark);
  letter-spacing: 0.01em;
}
.rd-annual-modal-input,
.rd-annual-modal-select {
  font-family: var(--font-sans);
  font-size: 0.875rem;
  color: var(--text-dark);
  background: var(--white);
  border: 1.5px solid var(--card-border);
  border-radius: 6px;
  padding: 0.5rem 0.75rem;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
  width: 100%;
  box-sizing: border-box;
}
.rd-annual-modal-input:focus,
.rd-annual-modal-select:focus {
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(7,26,58,0.08);
}
.rd-annual-modal-submit {
  font-family: var(--font-sans);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--white);
  background: var(--navy);
  border: none;
  border-radius: 7px;
  padding: 0.65rem 1rem;
  cursor: pointer;
  transition: background 0.15s;
  margin-top: 0.125rem;
  width: 100%;
}
.rd-annual-modal-submit:hover { background: #0a2d5e; }

body.rd-modal-open { overflow: hidden; }

