/* ===== Hero ===== */
  .int-hero { padding: 88px 0 80px; background: linear-gradient(180deg, #FDFDFE, var(--off-white-60)); border-bottom: 1px solid var(--color-border); position: relative; overflow: hidden; }
  .int-hero::before { content: ''; position: absolute; top: -180px; right: -100px; width: 640px; height: 640px; background: radial-gradient(circle, rgba(30,122,43,0.10), transparent 65%); pointer-events: none; }
  .int-hero-inner { position: relative; display: grid; grid-template-columns: 1.05fr 1fr; gap: 72px; align-items: center; }
  .int-hero h1 { font-family: var(--font-display); font-weight: 600; font-size: 60px; line-height: 1.04; letter-spacing: -0.025em; margin: 20px 0; }
  .int-hero p.lead { font-size: 19px; color: var(--color-text-muted); line-height: 1.55; margin-bottom: 32px; max-width: 560px; }
  .int-hero .ctas { display: flex; gap: 12px; flex-wrap: wrap; }

  /* Hero visual — wider grid, narrower hub */
  .int-hero-viz {
    position: relative;
    width: 100%;
    max-width: 600px;
    margin-left: auto;
    margin-right: -24px;
    aspect-ratio: 7 / 5;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    grid-template-rows: repeat(5, 1fr);
    gap: 12px;
    padding: 0;
  }
  .int-hub {
    grid-column: 3 / 6;
    grid-row: 2 / 5;
    border-radius: 24px;
    background: var(--gradient-primary);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    flex-direction: column; gap: 10px;
    box-shadow: var(--shadow-lg);
    position: relative;
    overflow: hidden;
  }
  .int-hub::after {
    content: '';
    position: absolute; inset: 0;
    background: repeating-linear-gradient(45deg, rgba(255,255,255,0.04) 0 18px, transparent 18px 36px);
    pointer-events: none;
  }
  .int-hub .logo-mark {
    width: 64px; height: 64px;
    border-radius: 50%;
    display: block;
    position: relative; z-index: 1;
    box-shadow: 0 4px 14px rgba(0,0,0,0.25);
  }
  .int-hub-label {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 14px;
    letter-spacing: -0.01em;
    position: relative;
    z-index: 1;
  }
  .int-hub-sub {
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
    position: relative;
    z-index: 1;
  }

  .int-node {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    box-shadow: var(--shadow-sm);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: -0.01em;
    color: var(--anthracite-100);
    transition: transform 220ms var(--ease-standard), box-shadow 220ms var(--ease-standard);
    padding: 8px;
    text-align: center;
    min-width: 0;
  }
  .int-node:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
  .int-node small {
    display: block;
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 9px;
    color: var(--color-text-subtle);
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .int-node.accent { background: var(--anthracite-100); color: #fff; border-color: transparent; }
  .int-node.accent small { color: rgba(255,255,255,0.6); }
  .int-node.green { background: var(--green-20); border-color: rgba(97,206,112,0.35); color: #1E7A2B; }
  .int-node.green small { color: #1E7A2B; opacity: 0.7; }

  /* Place 8 nodes — outer columns are pushed further from hub */
  .int-node.n1 { grid-column: 1 / 2; grid-row: 1 / 2; }
  .int-node.n2 { grid-column: 4 / 5; grid-row: 1 / 2; }
  .int-node.n3 { grid-column: 7 / 8; grid-row: 1 / 2; }
  .int-node.n4 { grid-column: 7 / 8; grid-row: 3 / 4; }
  .int-node.n5 { grid-column: 7 / 8; grid-row: 5 / 6; }
  .int-node.n6 { grid-column: 4 / 5; grid-row: 5 / 6; }
  .int-node.n7 { grid-column: 1 / 2; grid-row: 5 / 6; }
  .int-node.n8 { grid-column: 1 / 2; grid-row: 3 / 4; }

  /* SVG connection lines (decorative) */
  .int-lines {
    position: absolute; inset: 0;
    pointer-events: none;
    z-index: 0;
    width: 100%;
    height: 100%;
  }
  .int-lines line {
    stroke: rgba(54,62,72,0.16);
    stroke-width: 1;
    stroke-dasharray: 3 5;
  }

  /* Section heads */
  .section-head { margin-bottom: 48px; max-width: 720px; }
  .section-head h2 { font-family: var(--font-display); font-weight: 600; font-size: 40px; letter-spacing: -0.02em; line-height: 1.1; margin-top: 16px; margin-bottom: 14px; }
  .section-head p.lead { font-size: 17px; color: var(--color-text-muted); line-height: 1.55; }
  .kicker.green { color: var(--green-text); }

  .head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 40px; }
  .head-row .section-head { margin-bottom: 0; }

  /* ===== Featured integrations ===== */
  .feat { padding: 104px 0; }
  .feat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .feat-card {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 20px;
    padding: 36px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-height: 280px;
    position: relative;
    overflow: hidden;
    transition: all 220ms var(--ease-standard);
  }
  .feat-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: var(--green-100); }
  .feat-card .row { display: flex; align-items: center; gap: 16px; }
  .feat-card .mark {
    width: 64px; height: 64px;
    border-radius: 16px;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 24px;
    letter-spacing: -0.02em;
    color: #fff;
    flex-shrink: 0;
    box-shadow: 0 1px 0 rgba(0,0,0,0.04) inset, 0 1px 2px rgba(0,0,0,0.06);
  }
  .feat-card .meta { display: flex; flex-direction: column; gap: 4px; }
  .feat-card h3 { font-family: var(--font-display); font-weight: 600; font-size: 24px; line-height: 1.2; letter-spacing: -0.01em; }
  .feat-card .cat { font-size: 12px; font-weight: 600; color: var(--color-text-subtle); letter-spacing: 0.06em; text-transform: uppercase; }
  .feat-card p { font-size: 15.5px; color: var(--color-text-muted); line-height: 1.55; }
  .feat-card .stamp {
    position: absolute; top: 15px; right: 28px;
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 10px;
    background: var(--green-20);
    color: #1E7A2B;
    border-radius: var(--radius-pill);
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
  }
  .feat-card .stamp .dot { width: 5px; height: 5px; border-radius: 50%; background: #3FAE52; }
  .feat-card .cta {
    margin-top: auto;
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 14px; font-weight: 600;
    color: var(--color-text);
    padding-top: 20px;
    border-top: 1px solid var(--color-border);
  }
  .feat-card:hover .cta { color: var(--green-100); }
  .feat-card .cta svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2.25; transition: transform 180ms; }
  .feat-card:hover .cta svg { transform: translateX(3px); }

  /* Logo-image marks: white tile, fitted image */
  .mark.has-img,
  .mark-sm.has-img {
    background: #fff;
    border: 1px solid var(--color-border);
    padding: 6px;
    box-shadow: var(--shadow-sm);
  }
  /* Dark variant for white/light logos that need contrast */
  .mark.has-img.dark,
  .mark-sm.has-img.dark {
    background: var(--anthracite-100);
    border-color: var(--anthracite-100);
  }
  .mark.has-img img,
  .mark-sm.has-img img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
  }
  /* Featured marks need a bit more breathing room for wordmarks */
  .mark.has-img { padding: 8px; }

  /* Hero hub node carrying a logo image */
  .int-node.has-img {
    padding: 6px 8px;
  }
  .int-node.has-img img {
    max-width: 100%;
    max-height: 26px;
    width: auto;
    height: auto;
    object-fit: contain;
  }
  .int-node.has-img small { margin-top: 2px; }

  /* Mark color variants */
  .mark-y { background: linear-gradient(135deg, #2E4B8C, #1A2F5C); }
  .mark-m { background: linear-gradient(135deg, #B5462A, #82301B); }
  .mark-r { background: linear-gradient(135deg, #2A8C7A, #145C50); }
  .mark-p { background: linear-gradient(135deg, #4A4F66, #2A2E3E); }
  .mark-rm { background: linear-gradient(135deg, #5B7B5C, #345037); }
  .mark-sf { background: linear-gradient(135deg, #6B5C8F, #3F345E); }
  .mark-fx { background: linear-gradient(135deg, #C16839, #843E1F); }
  .mark-dw { background: linear-gradient(135deg, #4F6C82, #2D3F4F); }
  .mark-bs { background: linear-gradient(135deg, #82624F, #4F3A2A); }
  .mark-el { background: linear-gradient(135deg, #2D6671, #144048); }
  .mark-x  { background: linear-gradient(135deg, #1B9CD8, #0E6E9C); }
  .mark-cb { background: linear-gradient(135deg, #4FAEB7, #277A82); }
  .mark-qb { background: linear-gradient(135deg, #5C8C2A, #355618); }
  .mark-gc { background: linear-gradient(135deg, #4A7DD7, #2A549B); }
  .mark-ms { background: linear-gradient(135deg, #4D6F8E, #2D4760); }
  .mark-ic { background: linear-gradient(135deg, #607080, #2F3A47); }
  .mark-db { background: linear-gradient(135deg, #4A6FAE, #29467A); }
  .mark-gd { background: linear-gradient(135deg, #C6843F, #8A5520); }
  .mark-od { background: linear-gradient(135deg, #3D6FA6, #224C76); }
  .mark-ar { background: linear-gradient(135deg, #5B8C3F, #345120); }
  .mark-ha { background: linear-gradient(135deg, #406E8C, #234864); }
  .mark-ow { background: linear-gradient(135deg, #C19541, #8A6420); }
  .mark-sl { background: linear-gradient(135deg, #5B3F70, #2F2040); }
  .mark-oa { background: linear-gradient(135deg, #2E5E48, #173A2C); }
  .mark-zp { background: linear-gradient(135deg, #C16633, #82401B); }

  /* ===== Directory: All integrations ===== */
  .dir { padding: 112px 0 96px; background: var(--off-white-60); border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }

  /* Filter chips */
  .dir-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 56px; }
  .dir-chip {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 9px 16px;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text-muted);
    transition: all 150ms;
    cursor: pointer;
  }
  .dir-chip:hover { color: var(--color-text); border-color: var(--color-border-strong); }
  .dir-chip.active { background: var(--anthracite-100); color: #fff; border-color: var(--anthracite-100); }
  .dir-chip .count { font-size: 12px; font-weight: 600; padding: 1px 7px; border-radius: 999px; background: var(--off-white-100); color: var(--anthracite-80); }
  .dir-chip.active .count { background: rgba(255,255,255,0.16); color: rgba(255,255,255,0.9); }

  /* Category groups */
  .cat-group { margin-bottom: 64px; }
  .cat-group:last-child { margin-bottom: 0; }
  .cat-head {
    display: flex; align-items: baseline; justify-content: space-between;
    padding-bottom: 20px;
    margin-bottom: 24px;
    border-bottom: 1px solid var(--color-border);
  }
  .cat-head .left { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
  .cat-head h3 { font-family: var(--font-display); font-weight: 600; font-size: 24px; letter-spacing: -0.01em; color: var(--color-text); }
  .cat-head .desc { font-size: 14.5px; color: var(--color-text-muted); }
  .cat-head .total { font-size: 12px; font-weight: 600; color: var(--color-text-subtle); letter-spacing: 0.08em; text-transform: uppercase; }

  .cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
  .cat-grid.three { grid-template-columns: repeat(3, 1fr); }

  .int-card {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 22px 22px 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 168px;
    transition: all 200ms var(--ease-standard);
    position: relative;
  }
  .int-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: var(--green-100); }
  .int-card .top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .int-card .mark-sm {
    width: 44px; height: 44px;
    border-radius: 11px;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: -0.01em;
    color: #fff;
    flex-shrink: 0;
  }
  .int-card .featured-tag {
    font-size: 10px; font-weight: 700;
    color: #1E7A2B;
    background: var(--green-20);
    padding: 3px 8px;
    border-radius: 999px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }
  .int-card h4 { font-family: var(--font-display); font-weight: 600; font-size: 16px; line-height: 1.3; letter-spacing: -0.005em; }
  .int-card p { font-size: 13.5px; color: var(--color-text-muted); line-height: 1.5; }
  .int-card .cta-sm {
    margin-top: auto;
    font-size: 13px; font-weight: 600;
    color: var(--color-text-subtle);
    display: inline-flex; align-items: center; gap: 4px;
  }
  .int-card:hover .cta-sm { color: var(--green-100); }

  /* ===== Custom integration band ===== */
  .custom { padding: 104px 0; background: var(--gradient-deep); color: #fff; position: relative; overflow: hidden; }
  .custom::before { content: ''; position: absolute; inset: 0; background:
    radial-gradient(900px 400px at 80% 0%, rgba(97,206,112,0.14), transparent 55%),
    radial-gradient(700px 320px at 10% 100%, rgba(97,206,112,0.06), transparent 55%);
    pointer-events: none; }
  .custom .container-wide { position: relative; z-index: 1; }
  .custom-inner { display: grid; grid-template-columns: 1.1fr 1fr; gap: 72px; align-items: center; }
  .custom h2 { font-family: var(--font-display); font-weight: 600; font-size: 44px; letter-spacing: -0.02em; line-height: 1.08; color: #fff; margin: 18px 0 16px; }
  .custom p { font-size: 17px; color: rgba(255,255,255,0.72); line-height: 1.6; margin-bottom: 28px; max-width: 520px; }
  .custom .ctas { display: flex; gap: 12px; flex-wrap: wrap; }
  .custom .btn-ghost { color: #fff; border-color: rgba(255,255,255,0.25); background: rgba(255,255,255,0.04); }
  .custom .btn-ghost:hover { background: rgba(255,255,255,0.1); }

  .api-card {
    background: #1E252D;
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 18px;
    padding: 28px;
    font-family: var(--font-mono);
    font-size: 13.5px;
    line-height: 1.7;
    color: rgba(255,255,255,0.85);
    position: relative;
    overflow: hidden;
  }
  .api-card::before {
    content: ''; position: absolute; top:0; left:0; right:0; height: 36px;
    background: rgba(255,255,255,0.04);
    border-bottom: 1px solid rgba(255,255,255,0.06);
  }
  .api-card .dots { position: absolute; top: 13px; left: 16px; display: flex; gap: 6px; }
  .api-card .dots span { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,0.18); }
  .api-card .dots span:first-child { background: #FF6F58; }
  .api-card .dots span:nth-child(2) { background: #FFBD2E; }
  .api-card .dots span:nth-child(3) { background: #4ED070; }
  .api-card .name { position: absolute; top: 11px; right: 18px; font-size: 11px; color: rgba(255,255,255,0.4); letter-spacing: 0.05em; }
  .api-card pre { margin-top: 32px; }
  .api-card .k { color: #C8AEFF; }
  .api-card .s { color: #7FD48E; }
  .api-card .n { color: #FFB07F; }
  .api-card .c { color: rgba(255,255,255,0.4); }
  .api-card .p { color: #8FCAFF; }

  .custom-feats { margin-top: 32px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
  .custom-feat { padding: 18px; border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; background: rgba(255,255,255,0.02); }
  .custom-feat .ic { width: 32px; height: 32px; border-radius: 8px; background: rgba(127,212,142,0.15); color: #7FD48E; display: flex; align-items: center; justify-content: center; margin-bottom: 12px; }
  .custom-feat .ic svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2; }
  .custom-feat h5 { font-family: var(--font-display); font-weight: 600; font-size: 15px; color: #fff; margin-bottom: 4px; letter-spacing: -0.005em; }
  .custom-feat p { font-size: 13px; color: rgba(255,255,255,0.6); line-height: 1.5; margin: 0; }

  @media (max-width: 1100px) {
    .int-hero-inner, .custom-inner { grid-template-columns: 1fr; gap: 56px; }
    .int-hero h1 { font-size: 44px; }
    .feat-grid { grid-template-columns: 1fr; }
    .cat-grid, .cat-grid.three { grid-template-columns: repeat(2, 1fr); }
    .custom-feats { grid-template-columns: 1fr; }
  }
  @media (max-width: 640px) {
    .int-hero h1, .section-head h2, .custom h2 { font-size: 32px; }
    .cat-grid, .cat-grid.three { grid-template-columns: 1fr; }
    .head-row { flex-direction: column; align-items: flex-start; }
  }
