/*fern-site-stylesheet*/@font-face {
    font-family: 'DS Indigo';
    src: url('/_fern-files/docusign.docs.buildwithfern.com/baafe12c82c12dcd3b1c74fe00cdf8417e6aa9d2925160dd7319bd244bf8f41c/assets/fonts/DSIndigo-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-017E, U+0300-0328, U+1E80-1E85, U+1EF2-1EF3, U+20BF, U+2190-2199, U+2260-2265, U+25CA, U+25FC, U+FB01-FB02;
}
@font-face {
    font-family: 'DS Indigo';
    src: url('/_fern-files/_img/baafe12c82c12dcd3b1c74fe00cdf841-v1.latin.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0020-005F, U+0061-007E, U+00A0-00A7, U+00A9, U+00AB, U+00AD-00AE, U+00B0-00B1, U+00B6-00B7, U+00BB, U+00BF-00FF, U+0131, U+0152-0153, U+0304, U+0308, U+2000-200A, U+2010-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+202F-2030, U+2039-203A, U+2044, U+205F, U+20AC, U+2122, U+2191, U+2193, U+2212;
}
@font-face {
    font-family: 'DS Indigo';
    src: url('/_fern-files/docusign.docs.buildwithfern.com/b93a4955393a0f33c60e49eb1d5173edddd3e30b37c9aae77a32ca5c6becbfc3/assets/fonts/DSIndigo-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-017E, U+0300-0328, U+1E80-1E85, U+1EF2-1EF3, U+20BF, U+2190-2199, U+2260-2265, U+25CA, U+25FC, U+FB01-FB02;
}
@font-face {
    font-family: 'DS Indigo';
    src: url('/_fern-files/_img/b93a4955393a0f33c60e49eb1d5173ed-v1.latin.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0020-005F, U+0061-007E, U+00A0-00A7, U+00A9, U+00AB, U+00AD-00AE, U+00B0-00B1, U+00B6-00B7, U+00BB, U+00BF-00FF, U+0131, U+0152-0153, U+0304, U+0308, U+2000-200A, U+2010-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+202F-2030, U+2039-203A, U+2044, U+205F, U+20AC, U+2122, U+2191, U+2193, U+2212;
}
@font-face {
    font-family: 'DS Indigo';
    src: url('/_fern-files/docusign.docs.buildwithfern.com/15ed06b993797a0370b680ddceeae86a047febfaee9c5dc133c7a8e86afb5123/assets/fonts/DSIndigo-Semibold.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-017E, U+0300-0328, U+1E80-1E85, U+1EF2-1EF3, U+20BF, U+2190-2199, U+2260-2265, U+25CA, U+25FC, U+FB01-FB02;
}
@font-face {
    font-family: 'DS Indigo';
    src: url('/_fern-files/_img/15ed06b993797a0370b680ddceeae86a-v1.latin.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0020-005F, U+0061-007E, U+00A0-00A7, U+00A9, U+00AB, U+00AD-00AE, U+00B0-00B1, U+00B6-00B7, U+00BB, U+00BF-00FF, U+0131, U+0152-0153, U+0304, U+0308, U+2000-200A, U+2010-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+202F-2030, U+2039-203A, U+2044, U+205F, U+20AC, U+2122, U+2191, U+2193, U+2212;
}
@font-face {
    font-family: 'DS Indigo';
    src: url('/_fern-files/docusign.docs.buildwithfern.com/aece46aa4080331ebefab39da4ed9e7a73fccbd863a47460a779942f72a31015/assets/fonts/DSIndigo-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-017E, U+0300-0328, U+1E80-1E85, U+1EF2-1EF3, U+20BF, U+2190-2199, U+2260-2265, U+25CA, U+25FC, U+FB01-FB02;
}
@font-face {
    font-family: 'DS Indigo';
    src: url('/_fern-files/_img/aece46aa4080331ebefab39da4ed9e7a-v1.latin.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0020-005F, U+0061-007E, U+00A0-00A7, U+00A9, U+00AB, U+00AD-00AE, U+00B0-00B1, U+00B6-00B7, U+00BB, U+00BF-00FF, U+0131, U+0152-0153, U+0304, U+0308, U+2000-200A, U+2010-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+202F-2030, U+2039-203A, U+2044, U+205F, U+20AC, U+2122, U+2191, U+2193, U+2212;
}
@font-face {
    font-family: 'Inconsolata';
    src: url('/_fern-files/docusign.docs.buildwithfern.com/9d5a0480d2bd3e43b124bf8f36782c8fc079f9f8b023c672bff67e9ceffc236b/assets/fonts/inconsolata-latin-400-normal.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'DS Indigo Fallback';
    src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
    size-adjust: 100.49%;
    ascent-override: 99.51%;
    descent-override: 19.90%;
    line-gap-override: 0.00%;
}

:root {
  --header-height: 96px;
  --header-height-real: 96px;
  --mobile-header-height-real: 64px;
  --content-width: 976px;
  --sidebar-width: 288px;
  --page-width: 100vw;
  --logo-height: 26px;
  --font-body: 'DS Indigo', 'DS Indigo Fallback', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-heading: 'DS Indigo', 'DS Indigo Fallback', 'DS Indigo', 'DS Indigo Fallback', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-code: 'Inconsolata', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
}

@media not all and (min-width: 48rem) {
  :root { --header-height: var(--mobile-header-height-real); }
}

:root {
  --typography-body-font-family: var(--font-body);
  --typography-heading-font-family: var(--font-heading);
  --typography-code-font-family: var(--font-code);
}


:root {
  --accent-1: #fffcfc;
  --accent-2: #fff8f7;
  --accent-3: #feece9;
  --accent-4: #ffdcd8;
  --accent-5: #ffcec8;
  --accent-6: #fcbeb8;
  --accent-7: #f3aaa3;
  --accent-8: #ea9088;
  --accent-9: #d73f3e;
  --accent-10: #c82d30;
  --accent-11: #cb3334;
  --accent-12: #631b1a;

  --accent-a1: #ff000003;
  --accent-a2: #ff200008;
  --accent-a3: #f4230016;
  --accent-a4: #ff1b0027;
  --accent-a5: #ff1c0037;
  --accent-a6: #f5160047;
  --accent-a7: #de14005c;
  --accent-a8: #d2120077;
  --accent-a9: #ca0100c1;
  --accent-a10: #bc0004d2;
  --accent-a11: #be0001cc;
  --accent-a12: #510100e5;

  --accent-contrast: #fff;
  --accent-surface: #fff6f5cc;
  --accent-indicator: #d73f3e;
  --accent-track: #d73f3e;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    :root {
      --accent-1: oklch(99.4% 0.003 25.41);
      --accent-2: oklch(98.3% 0.0079 25.41);
      --accent-3: oklch(95.6% 0.0204 25.41);
      --accent-4: oklch(92.8% 0.0457 25.41);
      --accent-5: oklch(89.6% 0.06 25.41);
      --accent-6: oklch(85.7% 0.0724 25.41);
      --accent-7: oklch(80.7% 0.087 25.41);
      --accent-8: oklch(74.5% 0.1101 25.41);
      --accent-9: oklch(59.1% 0.1892 25.41);
      --accent-10: oklch(54.8% 0.1917 25.41);
      --accent-11: oklch(55.8% 0.1892 25.41);
      --accent-12: oklch(34% 0.1033 25.41);

      --accent-a1: color(display-p3 0.6745 0.0235 0.0235 / 0.012);
      --accent-a2: color(display-p3 0.8784 0.1451 0.0196 / 0.032);
      --accent-a3: color(display-p3 0.8118 0.1529 0.0078 / 0.083);
      --accent-a4: color(display-p3 0.8431 0.1137 0.0078 / 0.15);
      --accent-a5: color(display-p3 0.851 0.1176 0.0039 / 0.208);
      --accent-a6: color(display-p3 0.8157 0.0902 0.0039 / 0.271);
      --accent-a7: color(display-p3 0.7451 0.0902 0.0039 / 0.353);
      --accent-a8: color(display-p3 0.7098 0.0784 0.0039 / 0.455);
      --accent-a9: color(display-p3 0.6941 0.0314 0 / 0.73);
      --accent-a10: color(display-p3 0.6431 0.0275 0 / 0.785);
      --accent-a11: color(display-p3 0.6549 0.0275 0 / 0.769);
      --accent-a12: color(display-p3 0.2745 0.0118 0 / 0.887);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.9961 0.9647 0.9608 / 0.8);
      --accent-indicator: oklch(59.1% 0.1892 25.41);
      --accent-track: oklch(59.1% 0.1892 25.41);
    }
  }
}


:root {
  --grayscale-1: #fdfdfc;
  --grayscale-2: #f9f9f8;
  --grayscale-3: #f1f0ef;
  --grayscale-4: #e9e8e6;
  --grayscale-5: #e2e1de;
  --grayscale-6: #dad9d6;
  --grayscale-7: #cfceca;
  --grayscale-8: #bcbbb5;
  --grayscale-9: #8d8d86;
  --grayscale-10: #82827c;
  --grayscale-11: #63635e;
  --grayscale-12: #21201c;

  --grayscale-a1: #55550003;
  --grayscale-a2: #25250007;
  --grayscale-a3: #20100010;
  --grayscale-a4: #1f150019;
  --grayscale-a5: #1f180021;
  --grayscale-a6: #19130029;
  --grayscale-a7: #19140035;
  --grayscale-a8: #1915014a;
  --grayscale-a9: #0f0f0079;
  --grayscale-a10: #0c0c0083;
  --grayscale-a11: #080800a1;
  --grayscale-a12: #060500e3;

  --grayscale-contrast: #000;
  --grayscale-surface: #ffffffcc;
  --grayscale-indicator: #8d8d86;
  --grayscale-track: #8d8d86;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    :root {
      --grayscale-1: color(display-p3 0.992 0.992 0.989);
      --grayscale-2: color(display-p3 0.977 0.977 0.973);
      --grayscale-3: color(display-p3 0.943 0.942 0.936);
      --grayscale-4: color(display-p3 0.913 0.912 0.903);
      --grayscale-5: color(display-p3 0.885 0.883 0.873);
      --grayscale-6: color(display-p3 0.854 0.852 0.839);
      --grayscale-7: color(display-p3 0.813 0.81 0.794);
      --grayscale-8: color(display-p3 0.738 0.734 0.713);
      --grayscale-9: color(display-p3 0.553 0.553 0.528);
      --grayscale-10: color(display-p3 0.511 0.511 0.488);
      --grayscale-11: color(display-p3 0.388 0.388 0.37);
      --grayscale-12: color(display-p3 0.129 0.126 0.111);

      --grayscale-a1: #55550003;
      --grayscale-a2: #25250007;
      --grayscale-a3: #20100010;
      --grayscale-a4: #1f150019;
      --grayscale-a5: #1f180021;
      --grayscale-a6: #19130029;
      --grayscale-a7: #19140035;
      --grayscale-a8: #1915014a;
      --grayscale-a9: #0f0f0079;
      --grayscale-a10: #0c0c0083;
      --grayscale-a11: #080800a1;
      --grayscale-a12: #060500e3;

      --grayscale-contrast: #000;
      --grayscale-surface: color(display-p3 1 1 1 / 80%);
      --grayscale-indicator: color(display-p3 0.553 0.553 0.528);
      --grayscale-track: color(display-p3 0.553 0.553 0.528);
    }
  }
}


.dark {
  --accent-1: #000;
  --accent-2: #121211;
  --accent-3: #1f1f1d;
  --accent-4: #282826;
  --accent-5: #30302e;
  --accent-6: #3a3a37;
  --accent-7: #484845;
  --accent-8: #60605e;
  --accent-9: #fff;
  --accent-10: #f6f6f4;
  --accent-11: #b3b3b0;
  --accent-12: #eeeeec;

  --accent-a1: #00000000;
  --accent-a2: #fffff112;
  --accent-a3: #ffffef1f;
  --accent-a4: #fffff328;
  --accent-a5: #fffff530;
  --accent-a6: #fffff23a;
  --accent-a7: #fffff548;
  --accent-a8: #fffffa60;
  --accent-a9: #ffffff;
  --accent-a10: #fffffdf6;
  --accent-a11: #fffffbb3;
  --accent-a12: #fffffdee;

  --accent-contrast: #311921;
  --accent-surface: #24242280;
  --accent-indicator: #fff;
  --accent-track: #fff;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(0% 0.0023 106.5);
      --accent-2: oklch(18.3% 0.0022 106.5);
      --accent-3: oklch(23.9% 0.0032 106.5);
      --accent-4: oklch(27.5% 0.0036 106.5);
      --accent-5: oklch(30.8% 0.004 106.5);
      --accent-6: oklch(34.7% 0.004 106.5);
      --accent-7: oklch(40% 0.004 106.5);
      --accent-8: oklch(49% 0.004 106.5);
      --accent-9: oklch(100% 0 none);
      --accent-10: oklch(97.3% 0.0027 106.5);
      --accent-11: oklch(76.7% 0.004 106.5);
      --accent-12: oklch(94.8% 0.0027 106.5);

      --accent-a1: color(display-p3 0 0 0 / 0);
      --accent-a2: color(display-p3 0.9961 0.9961 0.9412 / 0.071);
      --accent-a3: color(display-p3 1 1 0.9333 / 0.122);
      --accent-a4: color(display-p3 1 1 0.9529 / 0.157);
      --accent-a5: color(display-p3 0.9961 0.9961 0.9569 / 0.189);
      --accent-a6: color(display-p3 1 1 0.949 / 0.228);
      --accent-a7: color(display-p3 1 1 0.9569 / 0.283);
      --accent-a8: color(display-p3 1 1 0.9804 / 0.377);
      --accent-a9: color(display-p3 1 1 1);
      --accent-a10: color(display-p3 1 1 0.9922 / 0.965);
      --accent-a11: color(display-p3 1 1 0.9843 / 0.702);
      --accent-a12: color(display-p3 1 1 0.9922 / 0.934);

      --accent-contrast: #311921;
      --accent-surface: color(display-p3 0.1412 0.1412 0.1333 / 0.5);
      --accent-indicator: oklch(100% 0 none);
      --accent-track: oklch(100% 0 none);
    }
  }
}


.dark {
  --grayscale-1: #111110;
  --grayscale-2: #191918;
  --grayscale-3: #222221;
  --grayscale-4: #2a2a28;
  --grayscale-5: #31312e;
  --grayscale-6: #3b3a37;
  --grayscale-7: #494844;
  --grayscale-8: #62605b;
  --grayscale-9: #6f6d66;
  --grayscale-10: #7c7b74;
  --grayscale-11: #b5b3ad;
  --grayscale-12: #eeeeec;

  --grayscale-a1: #00000000;
  --grayscale-a2: #f4f4f309;
  --grayscale-a3: #f6f6f513;
  --grayscale-a4: #fefef31b;
  --grayscale-a5: #fbfbeb23;
  --grayscale-a6: #fffaed2d;
  --grayscale-a7: #fffbed3c;
  --grayscale-a8: #fff9eb57;
  --grayscale-a9: #fffae965;
  --grayscale-a10: #fffdee73;
  --grayscale-a11: #fffcf4b0;
  --grayscale-a12: #fffffded;

  --grayscale-contrast: #fff;
  --grayscale-surface: rgba(0, 0, 0, 0.05);
  --grayscale-indicator: #6f6d66;
  --grayscale-track: #6f6d66;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --grayscale-1: color(display-p3 0.067 0.067 0.063);
      --grayscale-2: color(display-p3 0.098 0.098 0.094);
      --grayscale-3: color(display-p3 0.135 0.135 0.129);
      --grayscale-4: color(display-p3 0.164 0.163 0.156);
      --grayscale-5: color(display-p3 0.193 0.192 0.183);
      --grayscale-6: color(display-p3 0.23 0.229 0.217);
      --grayscale-7: color(display-p3 0.285 0.282 0.267);
      --grayscale-8: color(display-p3 0.384 0.378 0.357);
      --grayscale-9: color(display-p3 0.434 0.428 0.403);
      --grayscale-10: color(display-p3 0.487 0.481 0.456);
      --grayscale-11: color(display-p3 0.707 0.703 0.68);
      --grayscale-12: color(display-p3 0.933 0.933 0.926);

      --grayscale-a1: #00000000;
      --grayscale-a2: #f4f4f309;
      --grayscale-a3: #f6f6f513;
      --grayscale-a4: #fefef31b;
      --grayscale-a5: #fbfbeb23;
      --grayscale-a6: #fffaed2d;
      --grayscale-a7: #fffbed3c;
      --grayscale-a8: #fff9eb57;
      --grayscale-a9: #fffae965;
      --grayscale-a10: #fffdee73;
      --grayscale-a11: #fffcf4b0;
      --grayscale-a12: #fffffded;

      --grayscale-contrast: #fff;
      --grayscale-surface: color(display-p3 0 0 0 / 5%);
      --grayscale-indicator: color(display-p3 0.434 0.428 0.403);
      --grayscale-track: color(display-p3 0.434 0.428 0.403);
    }
  }
}

:root {
  color-scheme: light;
  --accent: rgba(215, 63, 62, 1);
  --background: rgba(255, 255, 255, 1);
  --border: initial;
  --sidebar-background: rgba(247, 246, 247, 1);
  --header-background: rgba(19, 0, 50, 1);
  --card-background: initial;
  --theme-color: #fff;
}

.dark {
  color-scheme: light;
  --background: #000000;
  --accent: #ffffff;
}

/* :root {
  --header-background: #130032 !important;
}

:is(.dark, [data-theme="dark"]) {
  --header-background: #111113 !important;
} */

#fern-header, #fern-header-tabs {

  /* #fern-header.fern-background-image, */
  /* header > div.width-before-scroll-bar {
 */
  background-color: #130032 !important;
  /* background-image: none !important; */

}

/* Docusign keeps the purple header in both themes, so dark mode matches light
   instead of dropping to the near-black #111113 the demo previously used. */
.dark #fern-header,
.dark #fern-header-tabs {
  background-color: #130032 !important;
}

#fern-announcement {
  background-color: #4c00ff;
}

/* The banner stays #4c00ff in both themes, so keep its text white too (Fern
   derives it from the dark-mode accent, which turns it dark). */
#fern-announcement,
#fern-announcement a,
#fern-announcement .fern-mdx-link,
#fern-announcement svg {
  color: #fff !important;
}

/* The dismiss "x" looks the same as in light mode in both themes. Fern's dark
   mode colours it with --accent-contrast (dark), so override the variable and
   the stroke, and use the light-mode hover tint. */
#fern-announcement {
  --accent-contrast: #fff;
}

#fern-announcement [aria-label="Dismiss announcement"] svg {
  stroke: #fff !important;
}

#fern-announcement [aria-label="Dismiss announcement"]:hover {
  background-color: rgba(32, 16, 0, 0.063) !important;
}
#fern-announcement [aria-label="Dismiss announcement"]:focus-visible {
  background-color: rgba(32, 16, 0, 0.063) !important;
}

/* Landing page - suppress anchor links on headings */
.hero-section h1,
.hero-section h2,
.hero-section h3,
.hero-section h4,
.hero-section h5,
.hero-section h6,
.landing-section h1,
.landing-section h2,
.landing-section h3,
.landing-section h4,
.landing-section h5,
.landing-section h6,
.evt-hero h1,
.evt-hero h2,
.evt-hero h3,
.evt-hero h4,
.evt-hero h5,
.evt-hero h6,
.page-hero h1,
.page-hero h2,
.page-hero h3,
.page-hero h4,
.page-hero h5,
.page-hero h6 {
  pointer-events: none !important;
}

.hero-section a.anchor,
.hero-section .anchor,
.landing-section a.anchor,
.landing-section .anchor,
.evt-hero a.anchor,
.evt-hero .anchor,
.page-hero a.anchor,
.page-hero .anchor {
  pointer-events: none !important;
  display: none !important;
}

/* Hide external link icons in CTAs and landing sections */
.hero-cta .external-link-icon,
.hero-cta svg.lucide-external-link,
.landing-section .external-link-icon,
.landing-section svg.lucide-external-link {
  display: none !important;
}

/* CTA button interactions */
.hero-cta {
  pointer-events: auto !important;
}

.hero-cta a,
.hero-cta .fern-mdx-link,
.landing-section a {
  pointer-events: auto !important;
  cursor: pointer !important;
  transition: opacity 0.2s ease, background-color 0.2s ease !important;
}

.hero-cta a:hover,
.hero-cta .fern-mdx-link:hover,
.landing-section a:hover {
  opacity: 0.85 !important;
}
.hero-cta a:focus-visible,
.hero-cta .fern-mdx-link:focus-visible,
.landing-section a:focus-visible {
  opacity: 0.85 !important;
}

.hero-cta .cta-outline:hover {
  background-color: rgba(255, 255, 255, 0.15) !important;
  opacity: 1 !important;
}
.hero-cta .cta-outline:focus-visible {
  background-color: rgba(255, 255, 255, 0.15) !important;
  opacity: 1 !important;
}

.hero-cta .fern-mdx-link p {
  margin: 0;
}

/* Sample app cards */
.sample-app-card {
  /* live does not move the card on hover, it lightens it */
  transition: background 0.2s ease, filter 0.2s ease !important;
  cursor: pointer;
}

.sample-app-card:hover {
  transform: none !important;
  filter: brightness(1.35);
}
.sample-app-card:focus-visible {
  transform: none !important;
  filter: brightness(1.35);
}

/* Force left-align inside sample app cards. Fern adds `mx-auto` to bare MDX
   images, which centres the artwork; live has it flush with the 46px padding. */
.sample-app-card img,
.sample-app-card h3,
.sample-app-card div {
  text-align: left !important;
}

.sample-app-card img,
.sample-app-card img.mx-auto {
  margin-left: 0 !important;
  margin-right: 0 !important;
  align-self: flex-start;
}

/* Built with Fern badge */
#builtwithfern {
  position: relative;
  z-index: 1;
}

/* Hide Built with Fern badge on the landing page and match background */
body:has(.hero-section) #builtwithfern {
  display: none !important;
}

body:has(.hero-section) {
  background-color: #130032 !important;
}

body:is(.dark, [data-theme="dark"]):has(.hero-section) {
  background-color: #130032 !important;
}

/* ===== Custom Footer ===== */
#ds-custom-footer {
  background: #000;
  color: #fff;
  font-family: inherit;
  line-height: 1.5;
}

#ds-custom-footer *,
#ds-custom-footer *::before,
#ds-custom-footer *::after {
  box-sizing: border-box;
}

.ds-footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 48px;
}

/* ── Pre-footer ── */
.ds-footer-prefooter {
  padding: 80px 0 72px;
  background: #000;
}

.ds-footer-prefooter-grid {
  display: flex;
  flex-wrap: wrap;
}

.ds-footer-prefooter-item {
  display: flex;
  flex-direction: column;
  width: 25%;
  padding: 0 32px 0 0;
  text-decoration: none !important;
  color: #fff !important;
  transition: opacity 0.2s;
}

.ds-footer-prefooter-item:last-child {
  padding-right: 0;
}

.ds-footer-prefooter-item:hover {
  opacity: 0.85;
}
.ds-footer-prefooter-item:focus-visible {
  opacity: 0.85;
}

.ds-footer-prefooter-icon {
  margin-bottom: 20px;
}

.ds-footer-prefooter-icon img {
  display: block;
  width: 32px;
  height: 32px;
}

.ds-footer-prefooter-title {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 8px;
  color: #fff;
  line-height: 1.3;
}

.ds-footer-prefooter-desc {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.5;
  font-weight: 400;
  margin-bottom: 20px;
}

.ds-footer-prefooter-learn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 500;
  color: #fff;
  margin-top: auto;
}

.ds-footer-prefooter-learn svg {
  flex-shrink: 0;
}

/* ── Divider ── */
.ds-footer-divider-wrap {
  background: #000;
  padding: 0;
}

.ds-footer-divider {
  border: none;
  border-bottom: 1px solid rgb(213, 204, 255);
  margin: 0;
}

/* ── Main footer ── */
.ds-footer-main {
  padding: 72px 0 0;
  background: #000;
}

.ds-footer-main-grid {
  display: grid;
  grid-template-columns: minmax(240px, 336px) repeat(4, 1fr);
  gap: 32px;
  align-items: start;
}

.ds-footer-brand {
  grid-column: 1;
  min-width: 0;
}

.ds-footer-logo {
  margin-bottom: 40px;
}

.ds-footer-logo img,
.ds-footer-logo svg {
  display: block;
  width: 234px;
  height: 49px;
}

.ds-footer-social {
  display: flex;
  gap: 16px;
  align-items: center;
}

.ds-footer-social a {
  display: inline-flex;
  opacity: 1;
  transition: opacity 0.2s;
}

.ds-footer-social a:hover {
  opacity: 0.5;
}
.ds-footer-social a:focus-visible {
  opacity: 0.5;
}

.ds-footer-social img {
  display: block;
  width: 24px;
  height: 24px;
}

/* ── Link columns ── */
/* let the four columns become grid items of .ds-footer-main-grid so they line
   up beside the brand column instead of wrapping underneath it */
.ds-footer-columns {
  display: contents;
}

.ds-footer-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 130px;
}

.ds-footer-col-title {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 4px;
  line-height: 1.3;
}

.ds-footer-col a {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.55) !important;
  text-decoration: none !important;
  transition: color 0.2s;
  line-height: 1.5;
}

.ds-footer-col a:hover {
  color: rgba(255, 255, 255, 0.9) !important;
}
.ds-footer-col a:focus-visible {
  color: rgba(255, 255, 255, 0.9) !important;
}

/* ── Bottom bar ── */
.ds-footer-bottom {
  padding: 48px 0 40px;
  background: #000;
}

.ds-footer-bottom-grid {
  display: grid;
  grid-template-columns: minmax(240px, 336px) repeat(4, 1fr);
  gap: 32px;
  align-items: start;
}

.ds-footer-bottom-last {
  margin-top: 24px;
}

.ds-footer-privacy-choices {
  grid-column: 2 / span 4;
  display: flex;
  align-items: center;
  gap: 8px;
}

.ds-footer-privacy-choices a {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.55) !important;
  text-decoration: none !important;
}

.ds-footer-bottom-top {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.ds-footer-copyright {
  grid-column: 1;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.55);
}

.ds-footer-bottom-link {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4) !important;
  text-decoration: none !important;
}

.ds-footer-bottom-legal {
  grid-column: 2 / span 4;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}

.ds-footer-bottom-legal a {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.4) !important;
  text-decoration: none !important;
  transition: color 0.2s;
}

.ds-footer-bottom-legal a:hover,
.ds-footer-bottom-link:hover {
  color: rgba(255, 255, 255, 0.8) !important;
}
.ds-footer-bottom-legal a:focus-visible,
.ds-footer-bottom-link:focus-visible {
  color: rgba(255, 255, 255, 0.8) !important;
}

/* ── Responsive ── */
@media (max-width: 1100px) {

  .ds-footer-main-grid,
  .ds-footer-bottom-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .ds-footer-bottom-legal,
  .ds-footer-privacy-choices {
    grid-column: 1 / -1;
  }
  .ds-footer-bottom-legal {
    grid-template-columns: repeat(2, 1fr);
  }

}

@media (max-width: 768px) {

  .ds-footer-inner {
    padding: 0 24px;
  }
  .ds-footer-prefooter-grid {
    flex-direction: column;
  }
  .ds-footer-prefooter-item {
    width: 100%;
    padding: 16px 0;
  }
  .ds-footer-main-grid {
    flex-direction: column;
  }
  .ds-footer-columns {
    flex-direction: column;
    gap: 32px;
  }

}

/* ===== Hide header tabs on sublanding pages ===== */
:has(.apis-hero) .fern-header-tabs {
  display: none !important;
}

/* ===== APIs Landing Page ===== */
.apis-hero h2,
.apis-landing-section h2,
.apis-landing-section h4 {
  pointer-events: none !important;
}

.apis-hero a.anchor,
.apis-hero .anchor,
.apis-landing-section a.anchor,
.apis-landing-section .anchor {
  pointer-events: none !important;
  display: none !important;
}

.apis-landing-section .external-link-icon,
.apis-landing-section svg.lucide-external-link {
  display: none !important;
}

.apis-landing-section a:not(.anchor) {
  pointer-events: auto !important;
  cursor: pointer !important;
}

/* API card grid */
.api-grid {
  display: grid;
  grid-template-columns: repeat(3, 305px);
  gap: 64px 48px;
  justify-content: center;
}

@media (max-width: 768px) {

  .api-grid {
    grid-template-columns: 1fr;
  }

}

/* API cards */
.ds-api-card {
  cursor: pointer;
  padding-bottom: 16px;
}

.ds-api-card-border {
  height: 3px;
  background: #1a1a1a;
  margin-bottom: 28px;
  transition: background 0.2s ease;
}

.ds-api-card:hover .ds-api-card-border {
  background: #1565c0;
}
.ds-api-card:focus-within .ds-api-card-border {
  background: #1565c0;
}

.ds-api-card-title {
  font-size: 24px;
  font-weight: 400;
  color: #1a1a1a;
  margin-bottom: 12px;
  line-height: 1.3;
  transition: color 0.2s ease;
}

.ds-api-card:hover .ds-api-card-title {
  color: #1565c0;
}
.ds-api-card:focus-within .ds-api-card-title {
  color: #1565c0;
}

.ds-api-card-desc {
  font-size: 16px;
  color: #51565c;
  line-height: 1.5;
  margin-bottom: 24px;
}

.ds-api-card-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ds-api-card-link {
  font-size: 16px;
  font-weight: 500;
  color: #1565c0 !important;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  pointer-events: auto !important;
  cursor: pointer !important;
  transition: color 0.2s ease;
}

.ds-api-card-link:hover {
  color: #1565c0 !important;
  text-decoration: underline !important;
}
.ds-api-card-link:focus-visible {
  color: #1565c0 !important;
  text-decoration: underline !important;
}

/* Dark mode - API cards & banner */
.dark .ds-api-card-border,
[data-theme="dark"] .ds-api-card-border { background: rgba(255,255,255,0.3) !important; }
.dark .ds-api-card:hover .ds-api-card-border,
[data-theme="dark"] .ds-api-card:hover .ds-api-card-border { background: #cbc2ff !important; }
.dark .ds-api-card:focus-within .ds-api-card-border,
[data-theme="dark"] .ds-api-card:focus-within .ds-api-card-border { background: #cbc2ff !important; }
.dark .ds-api-card-title,
[data-theme="dark"] .ds-api-card-title { color: #fff !important; }
.dark .ds-api-card:hover .ds-api-card-title,
[data-theme="dark"] .ds-api-card:hover .ds-api-card-title { color: #cbc2ff !important; }
.dark .ds-api-card:focus-within .ds-api-card-title,
[data-theme="dark"] .ds-api-card:focus-within .ds-api-card-title { color: #cbc2ff !important; }
.dark .ds-api-card-desc,
[data-theme="dark"] .ds-api-card-desc { color: rgba(255,255,255,0.6) !important; }
.dark .ds-api-card-link,
[data-theme="dark"] .ds-api-card-link { color: #cbc2ff !important; }
.dark .ds-api-card-link:hover,
[data-theme="dark"] .ds-api-card-link:hover { color: #cbc2ff !important; }
.dark .ds-api-card-link:focus-visible,
[data-theme="dark"] .ds-api-card-link:focus-visible { color: #cbc2ff !important; }
.dark .ds-mcp-banner,
[data-theme="dark"] .ds-mcp-banner { background: rgba(255,255,255,0.06) !important; border: 1px solid rgba(255,255,255,0.1) !important; }
.dark .ds-mcp-banner h4,
[data-theme="dark"] .ds-mcp-banner h4 { color: #fff !important; }
.dark .ds-mcp-banner-desc,
[data-theme="dark"] .ds-mcp-banner-desc { color: rgba(255,255,255,0.6) !important; }

.ds-api-card-link svg {
  flex-shrink: 0;
}

/* MCP Banner - light */
.ds-mcp-banner {
  background: #f5f5f7;
  color: #1a1a1a;
}

.ds-mcp-banner h4 {
  color: #1a1a1a !important;
}

.ds-mcp-banner-desc {
  color: #555 !important;
}

/* Changelog layout */
.fern-changelog-content > aside {
  min-width: 160px;
  max-width: 200px;
  width: 200px;
}


.fern-changelog-content[data-has-aside="true"]>div {
  flex: 1 1 0%;
  min-width: 0;
}

.fern-changelog-content>div {
  max-width: 100% !important;
}

/* Hide the empty TOC sidebar on changelog pages */
main:has(.fern-layout-changelog, .fern-layout-changelog-overview)>#fern-toc {
  display: none;
}

.fern-changelog-feed:has(.ds-cl-hero) {
  width: 100%;
  min-width: 0;
  max-width: 1022px;
  margin: 0 auto;
}

/* All card icons — prevent squishing */
.card-icon {
  width: auto;
}

/* Success stories — custom card grid */
.success-stories-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  max-width: 1100px;
  margin: 0 auto;
  padding: 32px 24px;
}

@media (max-width: 768px) {

  .success-stories-grid {
    grid-template-columns: 1fr;
  }

}

/* Custom success story card */
.success-card {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 8px;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid #e5e7eb;
}

/* Hide external link icon on success story cards */
.success-card .external-link-icon,
.success-card svg.lucide-external-link {
  display: none !important;
}

.success-card-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: filter 0.2s ease, transform 0.2s ease;
}

.success-card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.5));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 24px;
  z-index: 1;
}

.success-card-icon {
  background: transparent;
  border-radius: 8px;
  padding: 12px;
  height: 74px;
  width: auto;
  max-width: 207px;
  object-fit: contain;
  transition: transform 0.2s ease;
}

.success-card-title {
  font-size: 1.1rem;
  font-weight: 600;
  color: #fff;
  text-align: center;
  margin: 0;
  transition: transform 0.2s ease;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

/* Hover effects */
.success-card:hover .success-card-bg {
  filter: blur(4px);
  transform: scale(1.02);
}
.success-card:focus-within .success-card-bg {
  filter: blur(4px);
  transform: scale(1.02);
}

.success-card:hover .success-card-icon,
.success-card:hover .success-card-title {
  transform: scale(1.02);
}
.success-card:focus-within .success-card-icon,
.success-card:focus-within .success-card-title {
  transform: scale(1.02);
}



/* Dark mode adjustments */
:is(.dark, [data-theme="dark"]) .success-card {
  border-color: transparent;
}

/* Open Source Catalog */
.osc-container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 32px 24px 60px;
}

.osc-filter-bar {
  display: flex;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.osc-select {
  padding: 8px 28px 8px 12px;
  border-radius: 0;
  border: 1px solid #d1d5db;
  font-size: 0.875rem;
  background: #fff;
  color: #374151;
  min-width: 160px;
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 12 12' fill='%23374151' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 8.825a.5.5 0 0 1-.354-.146l-4-4a.5.5 0 1 1 .708-.708L6 7.617l3.646-3.646a.5.5 0 1 1 .708.708l-4 4A.5.5 0 0 1 6 8.825Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 10px;
}

.osc-search-input {
  padding: 8px 12px;
  border-radius: 0;
  border: 1px solid #d1d5db;
  font-size: 0.875rem;
  flex: 1;
  min-width: 280px;
  color: #374151;
}

.osc-result-count {
  text-align: right;
  font-size: 0.875rem;
  color: #6b7280;
  margin-bottom: 32px;
}

.osc-category-title {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 20px;
  margin-top: 40px;
  color: var(--text-default, #111827);
}

.osc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 20px;
  margin-bottom: 16px;
}

.osc-card-link {
  text-decoration: none;
  color: inherit;
  display: flex;
}

.osc-card {
  border: 1px solid #e5e7eb;
  border-radius: 0;
  padding: 0;
  overflow: hidden;
  background: var(--bg-card, #fff);
  display: flex;
  flex-direction: column;
  flex: 1;
}

.osc-card-banner {
  background: #f3f4f6;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 140px;
}

.osc-card-body {
  padding: 20px 24px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}

.osc-card-icon-img {
  width: 64px;
  height: 64px;
}

.osc-card-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-default, #111827);
  margin: 0;
}

.osc-card-desc {
  font-size: 0.8rem;
  color: #6b7280;
  line-height: 1.5;
  margin: 0;
  flex: 1;
}

.osc-tags-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.osc-tag {
  padding: 2px 10px;
  border-radius: 12px;
  border: 1px solid #d1d5db;
  font-size: 0.75rem;
  color: #374151;
  background: transparent;
}

.osc-tag-btn {
  padding: 2px 10px;
  border-radius: 12px;
  border: 1px solid #d1d5db;
  font-size: 0.75rem;
  color: #374151;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 2px;
}

.osc-stats-row {
  display: flex;
  gap: 16px;
  align-items: center;
  font-size: 0.8rem;
  color: #6b7280;
  margin-top: 4px;
}

.osc-stat-item {
  display: flex;
  align-items: center;
  gap: 4px;
}

.osc-view-more {
  display: flex;
  justify-content: center;
  margin-top: 16px;
  margin-bottom: 32px;
}

.osc-view-more-btn {
  padding: 8px 20px;
  border-radius: 0;
  border: 1px solid #d1d5db;
  background: #fff;
  cursor: pointer;
  font-size: 0.875rem;
  color: #374151;
  display: flex;
  align-items: center;
  gap: 6px;
}

.osc-banner-fallback {
  color: #1a1a2e;
  font-size: 2rem;
  font-weight: 700;
}

/* Open Source Catalog — dark mode */
:is(.dark, [data-theme="dark"]) .osc-card {
  background: #1c1c1e;
  border-color: #2c2c2e;
}

:is(.dark, [data-theme="dark"]) .osc-card-banner {
  background: #2a2a2c;
}

:is(.dark, [data-theme="dark"]) .osc-category-title {
  color: #e5e7eb;
}

:is(.dark, [data-theme="dark"]) .osc-card-title {
  color: #e5e7eb;
}

:is(.dark, [data-theme="dark"]) .osc-card-desc {
  color: #9ca3af;
}

:is(.dark, [data-theme="dark"]) .osc-select,
:is(.dark, [data-theme="dark"]) .osc-search-input {
  background: #1c1c1e;
  border-color: #2c2c2e;
  color: #e5e7eb;
}

:is(.dark, [data-theme="dark"]) .osc-tag,
:is(.dark, [data-theme="dark"]) .osc-tag-btn {
  border-color: #3c3c3e;
  color: #d1d5db;
}

:is(.dark, [data-theme="dark"]) .osc-stats-row {
  color: #9ca3af;
}

:is(.dark, [data-theme="dark"]) .osc-view-more-btn {
  background: #1c1c1e;
  border-color: #2c2c2e;
  color: #d1d5db;
}

:is(.dark, [data-theme="dark"]) .osc-banner-fallback {
  color: #e5e7eb;
}

/* Full-width hero banner (live: 230px tall, 48px/400 title, teal uppercase label). */
.evt-hero {
  background: #1a0a2e;
  color: #fff;
  min-height: 230px;
  padding: 16px 0;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
}

.evt-hero-bg {
  background: center / cover no-repeat;
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
}

.evt-hero-content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1072px;
  margin: 0 auto;
  padding: 0 32px;
}

.evt-hero .evt-hero-label {
  font-size: 16px;
  font-weight: 300;
  line-height: 24px;
  text-transform: uppercase;
  color: #00baa1;
  margin: 0;
}

/* Works with or without .fern-prose (layout: custom has none) and beats the global
   `body:not(:has(.hero-section)) .fern-prose h1 { 32px !important }`. */
body .evt-hero .evt-hero-content h1.evt-hero-title {
  font-size: 48px !important;
  font-weight: 400 !important;
  line-height: 60px !important;
  margin: 0 0 10px;
  color: #fff;
}

.evt-hero .evt-hero-subtitle {
  font-size: 18px;
  font-weight: 500;
  line-height: 24px;
  color: #d5d9e0;
  margin: 0;
}

/* /developer-spotlight: "Join the Spotlight" card overlapping the hero's lower edge, as live. */
.ds-cta-hero {
  position: relative;
}
.ds-cta-hero .evt-hero-subtitle {
  max-width: 632px;
}
.ds-hero-cta {
  position: absolute;
  top: 102px;
  left: calc(50% + 292px);
  z-index: 2;
  width: 376px;
  box-sizing: border-box;
  padding: 24px 42px;
  background: #fff;
  border-radius: 3px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.21);
  text-align: center;
}
body .ds-hero-cta p.ds-hero-cta-title {
  margin: 0 0 16px;
  font-size: 18px;
  line-height: 24px;
  font-weight: 400;
  color: #000;
}
body .ds-hero-cta p.ds-hero-cta-text {
  margin: 0 0 20px;
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: rgba(25, 24, 35, 0.9);
}
body .ds-hero-cta a.ds-hero-cta-btn {
  display: inline-block;
  padding: 16px 24px;
  border-radius: 8px;
  background: #4c00ff;
  color: #fff !important;
  font-size: 16px;
  line-height: 24px;
  font-weight: 500;
  text-decoration: none !important;
}
.ds-hero-cta a.ds-hero-cta-btn svg {
  display: none;
}
:is(.dark, [data-theme="dark"]) .ds-hero-cta {
  background: #1e0a4a;
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
}
:is(.dark, [data-theme="dark"]) body .ds-hero-cta p.ds-hero-cta-title {
  color: #fff;
}
:is(.dark, [data-theme="dark"]) body .ds-hero-cta p.ds-hero-cta-text {
  color: rgba(255, 255, 255, 0.9);
}
:is(.dark, [data-theme="dark"]) body .ds-hero-cta p.ds-hero-cta-text a {
  color: #cbc2ff !important;
  text-decoration-color: currentColor !important;
}
.ds-cta-hero + .ds-hero-body {
  margin-top: 128px;
}
@media (max-width: 1340px) {

  .ds-hero-cta {
    position: static;
    margin: 24px auto 0;
    max-width: 376px;
    width: auto;
  }
  .ds-cta-hero + .ds-hero-body {
    margin-top: 32px;
  }

}

/* Events listing */
.evt-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid #e5e7eb;
  margin-bottom: 16px;
}

.evt-tab {
  flex: 1;
  padding: 10px 20px;
  font-size: 0.875rem;
  font-weight: 500;
  color: #6b7280;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
  text-align: center;
}

.evt-tab:hover {
  color: #374151;
}
.evt-tab:focus-visible {
  color: #374151;
}

.evt-tab--active {
  color: #111827;
  font-weight: 600;
  border-bottom-color: #111827;
}

.evt-card-link {
  text-decoration: none;
  color: inherit;
  display: flex;
}

.evt-card {
  border: 1px solid #e5e7eb;
  border-radius: 0;
  overflow: hidden;
  background: var(--bg-card, #fff);
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* Hover: shade the card, no animation. */
.evt-card-link:hover .evt-card {
  background: #f6f8fa;
}
.evt-card-link:focus-within .evt-card {
  background: #f6f8fa;
}

:is(.dark, [data-theme="dark"]) .evt-card-link:hover .evt-card {
  background: #2c2c30;
}
:is(.dark, [data-theme="dark"]) .evt-card-link:focus-within .evt-card {
  background: #2c2c30;
}

.evt-card-image {
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: #f3f4f6;
}

.evt-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.evt-card-body {
  padding: 16px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

.evt-card-badge {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #2563eb;
}

.evt-badge-live-event {
  color: #059669;
}

.evt-badge-webinar {
  color: #2563eb;
}

.evt-badge-hackathon {
  color: #d97706;
}

.evt-card-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-default, #111827);
  margin: 0;
  line-height: 1.4;
}

.evt-card-format {
  font-size: 0.8rem;
  color: #374151;
  margin: 0;
}

.evt-card-date {
  font-size: 0.8rem;
  color: #6b7280;
  margin: 0;
}

/* Events listing — dark mode */
:is(.dark, [data-theme="dark"]) .evt-tabs {
  border-bottom-color: #2c2c2e;
}

:is(.dark, [data-theme="dark"]) .evt-tab {
  color: #9ca3af;
}

:is(.dark, [data-theme="dark"]) .evt-tab:hover {
  color: #d1d5db;
}
:is(.dark, [data-theme="dark"]) .evt-tab:focus-visible {
  color: #d1d5db;
}

:is(.dark, [data-theme="dark"]) .evt-tab--active {
  color: #e5e7eb;
  border-bottom-color: #e5e7eb;
}

:is(.dark, [data-theme="dark"]) .evt-card {
  background: #1c1c1e;
  border-color: #2c2c2e;
}

:is(.dark, [data-theme="dark"]) .evt-card-image {
  background: #2a2a2c;
}

:is(.dark, [data-theme="dark"]) .evt-card-title {
  color: #e5e7eb;
}

:is(.dark, [data-theme="dark"]) .evt-card-format {
  color: #d1d5db;
}

:is(.dark, [data-theme="dark"]) .evt-card-date {
  color: #9ca3af;
}

/* Extension apps overview page */
.ext-apps-hero {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  flex-wrap: wrap;
  margin-bottom: 40px;
}

.ext-apps-hero-text {
  flex: 1 1 280px;
  min-width: 200px;
}

.ext-apps-hero-text p {
  font-size: 1rem;
  line-height: 1.7;
}

.ext-apps-hero-text h2 {
  font-size: 1.4rem;
  font-weight: 600;
  margin-top: 32px;
  margin-bottom: 16px;
}

.ext-apps-hero-video {
  flex: 0 1 300px;
  min-width: 250px;
}

.ext-apps-hero-video iframe {
  width: 100%;
  border-radius: 8px;
}

.ext-apps-links {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ext-apps-links a {
  color: #4c6ef5;
  text-decoration: none;
  font-size: 0.95rem;
}

/* Strip borders/shadows from feature cards on extension apps overview */
.fern-prose:has(.ext-apps-hero) .fern-card {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
}

/* Discover more section */
.ext-apps-discover {
  margin-top: 40px;
}

.ext-apps-discover h2 {
  font-size: 1.4rem;
  font-weight: 600;
  margin-bottom: 16px;
}

.ext-apps-discover-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-left: 4px;
}

.ext-apps-discover-list a {
  color: #4c6ef5;
  text-decoration: none;
}

/* Navigator API overview page */
.nav-api-hero {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  flex-wrap: wrap;
  margin-bottom: 40px;
}

.nav-api-hero-text {
  flex: 1 1 280px;
  min-width: 200px;
}

.nav-api-hero-text p {
  font-size: 1rem;
  line-height: 1.7;
}

.nav-api-hero-text h2 {
  font-size: 1.4rem;
  font-weight: 600;
  margin-top: 32px;
  margin-bottom: 16px;
}

.nav-api-hero-image {
  flex: 0 1 300px;
  min-width: 250px;
}

.nav-api-hero-image img {
  max-width: 100%;
  border-radius: 8px;
}

.nav-api-links {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.nav-api-links a {
  color: #4c6ef5;
  text-decoration: none;
  font-size: 0.95rem;
}

/* Strip borders/shadows from feature cards on navigator API overview */
.fern-prose:has(.nav-api-hero) .fern-card {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
}

/* API overview hero layout (shared across all API overview pages) */
.api-overview-hero {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  flex-wrap: wrap;
  margin-bottom: 40px;
}

.api-overview-hero-text {
  flex: 1 1 280px;
  min-width: 200px;
}

.api-overview-hero-text p {
  font-size: 1rem;
  line-height: 1.7;
}

.api-overview-hero-text h2 {
  font-size: 1.4rem;
  font-weight: 600;
  margin-top: 32px;
  margin-bottom: 16px;
}

.api-overview-hero-image {
  flex: 0 1 300px;
  min-width: 250px;
}

.api-overview-hero-image img {
  max-width: 100%;
  border-radius: 8px;
}

.api-overview-links {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.api-overview-links a {
  color: #4c6ef5;
  text-decoration: none;
  font-size: 0.95rem;
}

/* Strip borders/shadows from feature cards on API overview pages */
.fern-prose:has(.api-overview-hero) .fern-card {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
}

/* Hide the tab bar on community pages */
.fern-header-tabs:has(a[href*="/community"][data-state="active"]),
.fern-header-tabs:has(a[href*="/community"][aria-current="page"]),
.fern-header-tabs:has(a[href*="/community"].active) {
  display: none !important;
}

/* Left-side Navigation Header Styling */
.fern-sidebar-heading-content {
  font-weight: 700;
}


/* ===== Header: match developers.docusign.com =====
   The header is a custom component (docs.yml `header:` ->
   components/CustomHeader.tsx), so the DOM order is ours:

     .ds-header                    flex row, full width, 28px side padding
       .ds-header-logo             <Fern.Logo />
       nav.ds-header-nav           <Fern.NavbarLinks />  Documentation / Resources / Community
       .ds-header-actions          <Fern.Search /> (search + Ask AI)  Developer Account dropdown
       .ds-header-mobile           <Fern.HamburgerMenu />  (< lg only)

   The tab row is hidden visually only: each tab slug is the first URL segment,
   so the tabs must stay in docs.yml. */

/* NOTE: do not set `position` on #fern-header - it overrides the fixed
   positioning that `layout.header-position: fixed` applies, and the header
   stops sticking on scroll. The purple announcement bar already provides the
   indigo strip across the top. */

/* no tab row */
#fern-header .fern-header-tabs,
.fern-header-tabs {
  display: none !important;
}

.ds-header {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  max-width: 1506px;      /* live header container; centred on wide screens */
  height: 96px;
  margin: 0 auto;
  padding: 0 28px;
}

.ds-header-logo {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  margin-right: 92px;
}

/* Centre the three dropdowns between the logo and the actions group. */
.ds-header-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 0%;
  min-width: 0;
  gap: 32px;              /* live measures 32px between dropdowns */
}

/* The Developer Account CTA stays in docs.yml navbar-links so the mobile
   sidebar keeps it; in the header it is rendered by .ds-header-cta instead. */
.ds-header-nav > a.fern-button {
  display: none;
}

.ds-header-nav .fern-button-text {
  color: #fff;
  font-size: 16px;        /* live: 16px / 600 */
  font-weight: 600;
}


.ds-header-nav .fern-button.minimal svg {
  color: #fff;
}

/* Header nav dropdowns (tagged by custom.js) stay dark in both themes, like
   developers.docusign.com: flat #130032 panel, white 14px/500 items. */
.fern-dropdown.ds-header-dropdown {
  background-color: #130032 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #fff;
  max-height: var(--radix-dropdown-menu-content-available-height) !important;
}

.fern-dropdown.ds-header-dropdown .fern-scroll-area-viewport {
  padding: 8px !important;
}

.fern-dropdown.ds-header-dropdown .fern-dropdown-item {
  padding: 8px !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font-size: 14px;
  font-weight: 500;
  line-height: 17.5px;
}

.fern-dropdown.ds-header-dropdown .fern-dropdown-item[data-highlighted],
.fern-dropdown.ds-header-dropdown .fern-dropdown-item:hover {
  background: rgba(221, 234, 248, 0.08) !important;
  color: #fff !important;
}
.fern-dropdown.ds-header-dropdown .fern-dropdown-item:focus-visible {
  background: rgba(221, 234, 248, 0.08) !important;
  color: #fff !important;
}

/* open trigger gets the live site's red underline */
.ds-header-nav [aria-haspopup="menu"][data-state="open"] {
  background: transparent !important;
}

.ds-header-nav [aria-haspopup="menu"][data-state="open"] .fern-button-content {
  box-shadow: 0 1px 0 #ff5252;
}

.ds-header-actions {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  margin-left: auto;
  gap: 16px;              /* live: 16px between search and Developer Account */
}

.ds-header-search {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Ask AI (rendered by <Fern.Search />) ships grayscale text/border, which
   disappears on the dark header */
#fern-header #fern-ask-ai-button {
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.35) !important;
  background: transparent !important;
}

#fern-header #fern-ask-ai-button .fern-button-text {
  color: #fff;
  font-size: 14px;
  font-weight: 500;
}

/* <Fern.Search /> wraps the two triggers in a max-w-[640px] sizing div */
.ds-header-search > div {
  width: auto !important;
  max-width: none !important;
}

/* Search: the button holds a bare text node ("Search") that no selector can
   target, so overflow:hidden was clipping it to "Sear". font-size:0 collapses
   the text node; the icon is sized by its own width/height attributes. */
#fern-header #fern-search-button,
#fern-header .fern-header-search-bar {
  cursor: pointer !important;   /* Fern ships `cursor-text`, which reads as uneditable */
  flex: 0 0 auto !important;
  width: 2.25rem !important;
  min-width: 2.25rem !important;
  max-width: 2.25rem !important;
  padding: 0 !important;
  gap: 0 !important;
  font-size: 0 !important;
  justify-content: center !important;
  background: transparent !important;
  box-shadow: none !important;
  --tw-ring-color: transparent !important;
  --tw-ring-shadow: none !important;
}

#fern-header #fern-search-button > *:not(svg),
#fern-header .fern-header-search-bar > *:not(svg) {
  display: none !important;
}

#fern-header #fern-search-button svg,
#fern-header .fern-header-search-bar svg {
  color: #fff !important;
  width: 1.2rem !important;
  height: 1.2rem !important;
}

/* Every top-nav button hovers like the search icon: same rounded background
   tint, no text colour change or shadow. The `!important`s beat the
   `background: transparent !important` resets above. */
#fern-header #fern-search-button:hover,
#fern-header .fern-header-search-bar:hover,
#fern-header #fern-ask-ai-button:hover,
#fern-header .ds-header-nav .fern-button:hover {
  background: rgba(221, 234, 248, 0.08) !important;
  box-shadow: none !important;
}
#fern-header #fern-search-button:focus-visible,
#fern-header .fern-header-search-bar:focus-visible,
#fern-header #fern-ask-ai-button:focus-visible,
#fern-header .ds-header-nav .fern-button:focus-visible {
  background: rgba(221, 234, 248, 0.08) !important;
  box-shadow: none !important;
}

#fern-header .ds-header-nav .fern-button:hover .fern-button-text,
#fern-header #fern-ask-ai-button:hover .fern-button-text {
  color: #fff !important;
}
#fern-header .ds-header-nav .fern-button:focus-within .fern-button-text,
#fern-header #fern-ask-ai-button:focus-within .fern-button-text {
  color: #fff !important;
}

/* Developer Account dropdown, measured from the live site. Colours are fixed
   (not the accent token) because the header is #130032 in both themes. */
.ds-header-account {
  position: relative;
  flex: 0 0 auto;
}

.ds-header-cta {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 50px;
  box-sizing: border-box;
  padding: 12px 16px;
  border-radius: 8px;
  background-color: #d73e3e;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  white-space: nowrap;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.ds-header-cta::-webkit-details-marker {
  display: none;
}

.ds-header-cta:hover {
  background-color: #c13434;
}
.ds-header-cta:focus-visible {
  background-color: #c13434;
}

.ds-header-cta svg {
  transition: transform 0.15s ease;
}

.ds-header-account[open] .ds-header-cta svg {
  transform: rotate(180deg);
}

/* The header (z-index 30) sits under Fern's API playground drawer (z-index 40),
   which hid the account/profile menus while Try it was open. */
#fern-header:has(.ds-header-account[open]) {
  z-index: 41;
}

.ds-header-account-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 50;
  display: flex;
  flex-direction: column;
  gap: 16px;
  box-sizing: border-box;
  width: 100%;
  padding: 8px 24px;
  background-color: #130032;
}

.ds-header-account-menu a {
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  text-decoration: none;
}

.ds-header-account-menu a:hover {
  text-decoration: underline;
}
.ds-header-account-menu a:focus-visible {
  text-decoration: underline;
}

/* Signed-in state (assets/developer-account.js sets html[data-ds-signed-in]):
   the Developer Account button becomes a profile icon with an account menu. */
html[data-ds-signed-in] .ds-header-account:not(.ds-header-profile),
html:not([data-ds-signed-in]) .ds-header-profile {
  display: none;
}

.ds-header-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: 0 4px;
  border-radius: 8px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.ds-header-avatar::-webkit-details-marker {
  display: none;
}

/* Stronger than the nav buttons' 0.08, which is hard to see on a lone icon. */
.ds-header-avatar:hover,
.ds-header-profile[open] .ds-header-avatar {
  background-color: rgba(221, 234, 248, 0.14);
}
.ds-header-avatar:focus-visible {
  background-color: rgba(221, 234, 248, 0.14);
}

.ds-header-avatar-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}

.ds-header-profile-menu {
  top: calc(100% + 16px);
  left: auto;
  right: 0;
  width: 200px;
  gap: 0;
  padding: 0;
}

.ds-header-profile-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 20px 24px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.35);
  color: #fff;
  font-size: 11px;
  line-height: 16px;
  overflow-wrap: anywhere;
}

.ds-header-profile-info .ds-header-profile-name {
  margin-bottom: 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 24px;
}

.ds-header-profile-links {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px 24px 28px;
}

.ds-header-profile-links button {
  padding: 0;
  border: 0;
  background: none;
  color: #fff;
  font: inherit;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  text-align: left;
  cursor: pointer;
}

.ds-header-profile-links button:hover {
  text-decoration: underline;
}
.ds-header-profile-links button:focus-visible {
  text-decoration: underline;
}

.ds-header-mobile {
  display: none;
  align-items: center;
  margin-left: auto;
}

.ds-header-mobile svg {
  color: #fff;
}

@media (max-width: 1023px) {

  .ds-header-logo {
    margin-right: 0;
  }
  .ds-header-nav,
  .ds-header-actions {
    display: none;
  }
  .ds-header-mobile {
    display: flex;
  }

}

@media (min-width: 1024px) and (max-width: 1280px) {

  .ds-header-logo {
    margin-right: 32px;
  }
  .ds-header-nav {
    gap: 1rem;
  }

}

/* the live banner link has no external-link glyph */
#fern-announcement svg.lucide-external-link,
#fern-announcement a svg {
  display: none !important;
}


/* ===== Typography: 1-1 with developers.docusign.com =====
   Measured from the live site with a headless browser (computed styles), not
   guessed. Their Olive tokens use lineHeight 1.25 for headings and 1.5 for body:

     element        family        size    weight  line-height
     h1             DS Indigo     32px    600     40px  (1.25)
     h2             DS Indigo     24px    600     30px  (1.25)
     h3             DS Indigo     20px    600     25px  (1.25)
     h4             DS Indigo     18px    600     22.5px(1.25)
     p / li / td    DS Indigo     16px    400     24px  (1.5)
     a              DS Indigo     16px    400     24px  (1.5)
     th             DS Indigo     12px    600     18px  (1.5)
     code / pre     Inconsolata   14px    400     21px  (1.5)

   Fern's defaults were h1 36/800/45, h2 24/700/32, h3 20/600/32, body lh 28,
   links weight 500, td 14/400/20, th 14/700/20 and a system monospace at
   12.25px - all corrected below. */

body:not(:has(.hero-section)) .fern-prose h1,
body:not(:has(.hero-section)) article h1,
body:not(:has(.hero-section)) h1.fern-page-heading {
  font-size: 32px !important;
  font-weight: 600 !important;
  line-height: 40px !important;
}

/* Some page titles (e.g. containing a hyphen like "Go-Live") get MDX-compiled
   and wrapped in a <p> inside the <h1>. The body-copy rule below then matches
   that <p> directly and shrinks the title to 16px. Force it back to heading size. */
body:not(:has(.hero-section)) .fern-prose h1 p,
body:not(:has(.hero-section)) article h1 p,
body:not(:has(.hero-section)) h1.fern-page-heading p {
  font-size: 32px !important;
  font-weight: 600 !important;
  line-height: 40px !important;
}

body:not(:has(.hero-section)) .fern-prose h2,
body:not(:has(.hero-section)) article h2 {
  font-size: 24px !important;
  font-weight: 600 !important;
  line-height: 30px !important;
}

body:not(:has(.hero-section)) .fern-prose h3,
body:not(:has(.hero-section)) article h3 {
  font-size: 20px !important;
  font-weight: 600 !important;
  line-height: 25px !important;
}

body:not(:has(.hero-section)) .fern-prose h4,
body:not(:has(.hero-section)) article h4 {
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 22.5px !important;
}

body:not(:has(.hero-section)) .fern-prose h5,
body:not(:has(.hero-section)) article h5 {
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 20px !important;
}

/* body copy */
body:not(:has(.hero-section)) .fern-prose p,
body:not(:has(.hero-section)) .fern-prose li,
body:not(:has(.hero-section)) article p,
body:not(:has(.hero-section)) article li {
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
}

/* links inherit body weight on the live site, not a heavier 500 */
body:not(:has(.hero-section)) .fern-prose a,
body:not(:has(.hero-section)) article a {
  font-weight: 400;
  line-height: 24px;
}

/* Note/Tip/Warning callouts: the icon should sit flush with the TOP of the
   text. Three narrower attempts at this (margin nudge, height-centering,
   flex-start/baseline on the row alone) all still rendered wrong per
   screenshots - a DevTools box-model check showed the callout's content box
   is ~40px taller than the icon+text actually need, so something inside is
   adding real empty space, not just a cross-axis alignment quirk. Rather
   than keep guessing which single element carries it, kill every margin and
   every generated before/after pseudo-element anywhere inside the callout -
   whichever element it is, this removes it. */
body:not(:has(.hero-section)) .fern-callout > div {
  align-items: flex-start !important;
}

/* Even with the icon and text boxes both starting at the row's true top now,
   the text glyph's visible top sits a couple px below the line-box's
   abstract top edge (leading). Nudge the icon down to match the glyph, not
   the invisible line-box. */
body:not(:has(.hero-section)) .fern-callout > div > div:first-child {
  margin-top: 6px !important;
}

body:not(:has(.hero-section)) .fern-callout :is(div, p, span) {
  margin-block: 0 !important;
}

/* The icon+text row's horizontal gap comes from Tailwind's space-x-4 (a
   left-margin on the text wrapper) - the vertical-only reset above must not
   touch it, or the icon and text end up touching with no gap. */
body:not(:has(.hero-section)) .fern-callout > div.space-x-4 > div:last-child {
  margin-inline-start: 16px !important;
}

body:not(:has(.hero-section)) .fern-callout *::before,
body:not(:has(.hero-section)) .fern-callout *::after {
  content: none !important;
  display: none !important;
  margin: 0 !important;
}

/* Prose tables only. Fern renders code blocks as <table class="code-block-line-group">
   with one <td class="code-block-line-content"> per line, so those must be excluded
   or code text gets resized to body copy. */
body:not(:has(.hero-section)) .fern-prose table:not(.code-block-line-group) td:not(.code-block-line-content),
body:not(:has(.hero-section)) article table:not(.code-block-line-group) td:not(.code-block-line-content) {
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
}

body:not(:has(.hero-section)) .fern-prose table:not(.code-block-line-group) th,
body:not(:has(.hero-section)) article table:not(.code-block-line-group) th {
  font-size: 12px;
  font-weight: 600;
  line-height: 18px;
}

/* code: Inconsolata 14/21 for inline spans and for Fern's code-block table rows */
body:not(:has(.hero-section)) .fern-prose code,
body:not(:has(.hero-section)) .fern-prose pre,
body:not(:has(.hero-section)) .fern-prose pre code,
body:not(:has(.hero-section)) article code,
body:not(:has(.hero-section)) article pre,
body:not(:has(.hero-section)) article pre code,
body:not(:has(.hero-section)) .fern-code-block code,
body:not(:has(.hero-section)) .fern-code-block pre,
body:not(:has(.hero-section)) .code-block,
body:not(:has(.hero-section)) .code-block-inner,
body:not(:has(.hero-section)) .code-block-line-group,
body:not(:has(.hero-section)) .code-block-line-content,
body:not(:has(.hero-section)) .code-block-line-content span {
  font-family: Inconsolata, ui-monospace, SFMono-Regular, Menlo, monospace !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 21px !important;
}

/* ===== Landing page =====
   The landing page carries its own inline type scale (69px hero, 48px subhead).
   Do NOT try to undo the docs scale with `revert !important` here: `revert` rolls
   back to the *user-agent* stylesheet and `!important` outranks the element's own
   inline style, so the hero collapses to the browser default 32px/bold. The docs
   type scale above is instead scoped away from this page with :has(), below. */

body:has(.hero-section) {
  background-color: #130032;
}


/* ===== Testimonial carousel ("Built by developers, for developers") =====
   Docusign uses a 2-slide carousel of 2 cards each; the demo previously stacked
   all four. Styling matches the original inline card design. */
.ds-testimonial-carousel { width: 100%; }

.ds-testimonial-row {
  display: flex;
  align-items: center;
  gap: 20px;
}

.ds-testimonial-viewport {
  overflow: hidden;
  flex: 1 1 auto;
  min-width: 0;
}

.ds-testimonial-track {
  display: flex;
  transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}

.ds-testimonial-slide {
  flex: 0 0 100%;
  display: flex;
  gap: 32px;
  justify-content: center;
  flex-wrap: wrap;
}

.ds-testimonial-card {
  background: rgb(38, 20, 66);
  border-radius: 16px;
  padding: 80px 48px;
  width: 384px;
  text-align: center;
}

.ds-testimonial-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 24px;
  min-height: 48px;
}

.ds-testimonial-quote {
  font-size: 16px;
  color: #fff;
  line-height: 24px;
  font-style: italic;
  margin-bottom: 24px;
}

.ds-testimonial-attr {
  font-size: 14px;
  color: #c4b5d4;
  margin: 0;
}

.ds-testimonial-arrow {
  flex: 0 0 auto;
  background: none;
  border: none;
  padding: 8px;
  color: rgba(255, 255, 255, 0.65);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.2s ease;
}

.ds-testimonial-arrow:hover {
  color: #fff;
}
.ds-testimonial-arrow:focus-visible {
  color: #fff;
}

.ds-testimonial-arrow svg {
  width: 28px;
  height: 28px;
  display: block;
}

.ds-testimonial-dots {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 32px;
}

.ds-testimonial-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: none;
  padding: 0;
  background: rgba(255, 255, 255, 0.35);
  cursor: pointer;
  transition: background-color 0.2s, transform 0.2s;
}

.ds-testimonial-dot.is-active {
  background: #fff;
  transform: scale(1.2);
}

@media (max-width: 900px) {

  .ds-testimonial-card { width: 100%; padding: 48px 24px; }
  .ds-testimonial-row { gap: 8px; }
  .ds-testimonial-arrow { width: 32px; height: 32px; font-size: 18px; }

}


/* ===== Inline CTAs ported from Contentful buttons / ds-button =====
   These are real buttons on the live site (measured on /platform/account:
   #4c00ff fill, white text, 16px/500, 16px 24px padding, 8px radius, 56px tall),
   not the plain inline links the first port produced. */
.ds-cta,
a.ds-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #4c00ff;
  color: #fff !important;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  padding: 16px 24px;
  border-radius: 8px;
  text-decoration: none !important;
  transition: background-color 0.2s ease;
  margin: 8px 0;
}

.ds-cta:hover,
a.ds-cta:hover {
  background: #3d00cc;
  color: #fff !important;
}
.ds-cta:focus-visible,
a.ds-cta:focus-visible {
  background: #3d00cc;
  color: #fff !important;
}

.ds-cta-secondary,
a.ds-cta-secondary {
  background: transparent;
  border: 1px solid #4c00ff;
  color: #4c00ff !important;
}

.ds-cta-secondary:hover,
a.ds-cta-secondary:hover {
  background: rgba(76, 0, 255, 0.08);
  color: #4c00ff !important;
}
.ds-cta-secondary:focus-visible,
a.ds-cta-secondary:focus-visible {
  background: rgba(76, 0, 255, 0.08);
  color: #4c00ff !important;
}

:is(.dark, [data-theme="dark"]) .ds-cta-secondary,
:is(.dark, [data-theme="dark"]) a.ds-cta-secondary {
  border-color: #fff;
  color: #fff !important;
}

/* the CTA must not inherit the prose link styling (which forces weight 400) */
.fern-prose a.ds-cta,
article a.ds-cta,
body:not(:has(.hero-section)) .fern-prose a.ds-cta,
body:not(:has(.hero-section)) article a.ds-cta {
  font-weight: 500 !important;
  line-height: 24px !important;
}

/* Multi-column list of short items (e.g. supported file formats), so they
   read as a compact 3-column grid instead of one item per line. */
.format-chip-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 32px;
  padding-left: 0;
  margin: 0;
  list-style: none;
}

@media (max-width: 480px) {

  .format-chip-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

}

.format-chip-list li {
  list-style: none;
  margin: 0;
}

/* Content images sit flush left, not centred (Fern adds mx-auto). */
body:not(:has(.hero-section)) .fern-prose img.mx-auto {
  margin-left: 0 !important;
  margin-right: auto !important;
}

/* Half-size images: live showed these beside text in a half-width column
   (472px at desktop width). Zoom-on-click still shows the full image. */
img.ds-img-half {
  max-width: min(100%, 472px) !important;
  height: auto !important;
}

/* Exact widths for images live showed at other column sizes. */
img.ds-img-w200 { max-width: min(100%, 200px) !important; height: auto !important; }
img.ds-img-w340 { max-width: min(100%, 340px) !important; height: auto !important; }
img.ds-img-w600 { max-width: min(100%, 600px) !important; height: auto !important; }
img.ds-img-w640 { max-width: min(100%, 640px) !important; height: auto !important; }
img.ds-img-w650 { max-width: min(100%, 650px) !important; height: auto !important; }
img.ds-img-w680 { max-width: min(100%, 680px) !important; height: auto !important; }

/* Images side by side, like live's multi-image rows (340px each at desktop width). */
.ds-img-row {
  display: flex;
  justify-content: center;
  margin: 1.5rem 0;
}
.ds-img-row > * {
  width: 340px;
  max-width: 50%;
}
.ds-img-row img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
}

/* Inline links use Docusign Cobalt per brand typography guidelines. */
.fern-prose a.fern-mdx-link,
.fern-prose a.fern-mdx-link:hover {
  color: #4c00ff !important;
  text-decoration-color: #4c00ff !important;
}
.fern-prose a.fern-mdx-link:focus-visible {
  color: #4c00ff !important;
  text-decoration-color: #4c00ff !important;
}

/* Dark theme follows Docusign brand dark-theme pairing: Inkwell surfaces, Mist text accents. */
:is(.dark, [data-theme="dark"]) .fern-prose a.fern-mdx-link,
:is(.dark, [data-theme="dark"]) .fern-prose a.fern-mdx-link:hover {
  color: #cbc2ff !important;
  text-decoration-color: #cbc2ff !important;
}
:is(.dark, [data-theme="dark"]) .fern-prose a.fern-mdx-link:focus-visible {
  color: #cbc2ff !important;
  text-decoration-color: #cbc2ff !important;
}

/* CTA buttons keep their own colours over the prose link colour, in both themes. */
.fern-prose a.fern-mdx-link.ds-cta,
.fern-prose a.fern-mdx-link.ds-cta:hover,
:is(.dark, [data-theme="dark"]) .fern-prose a.fern-mdx-link.ds-cta,
:is(.dark, [data-theme="dark"]) .fern-prose a.fern-mdx-link.ds-cta:hover {
  color: #fff !important;
  text-decoration: none !important;
}
.fern-prose a.fern-mdx-link.ds-cta:focus-visible,
:is(.dark, [data-theme="dark"]) .fern-prose a.fern-mdx-link.ds-cta:focus-visible {
  color: #fff !important;
  text-decoration: none !important;
}

.fern-prose a.fern-mdx-link.ds-cta-secondary,
.fern-prose a.fern-mdx-link.ds-cta-secondary:hover {
  color: #4c00ff !important;
}
.fern-prose a.fern-mdx-link.ds-cta-secondary:focus-visible {
  color: #4c00ff !important;
}

:is(.dark, [data-theme="dark"]) .fern-prose a.fern-mdx-link.ds-cta-secondary,
:is(.dark, [data-theme="dark"]) .fern-prose a.fern-mdx-link.ds-cta-secondary:hover {
  color: #fff !important;
}
:is(.dark, [data-theme="dark"]) .fern-prose a.fern-mdx-link.ds-cta-secondary:focus-visible {
  color: #fff !important;
}

/* Non-clickable cards: no border (it reads as a button), subtle tinted fill instead. */
body:not(:has(.hero-section)) div.fern-card {
  border-color: transparent !important;
  box-shadow: none !important;
  background: #f7f6f7;
}

:is(.dark, [data-theme="dark"]) body:not(:has(.hero-section)) div.fern-card {
  background: #26065d;
}

/* Version labels such as "eSignature REST API 2.1 only" (live: grey pill). */
.ds-pill {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 8px;
  border-radius: 16px;
  background: rgb(244, 244, 246);
  color: rgb(25, 24, 35);
  font-size: 12px;
  font-weight: 600;
  line-height: 24px;
  white-space: nowrap;
  vertical-align: middle;
}

:is(.dark, [data-theme="dark"]) .ds-pill {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

/* HTTP method badges in prose tables and API-reference method lists. */
.ds-method {
  --ds-method-fg: #1d4ed8;
  --ds-method-bg: rgba(37, 99, 235, 0.1);
  --ds-method-ring: rgba(37, 99, 235, 0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3.25rem;
  height: 1.375rem;
  padding: 0 0.375rem;
  border-radius: 0.375rem;
  background: var(--ds-method-bg);
  box-shadow: inset 0 0 0 1px var(--ds-method-ring);
  color: var(--ds-method-fg);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  vertical-align: middle;
}

.ds-method-post {
  --ds-method-fg: #047857;
  --ds-method-bg: rgba(16, 185, 129, 0.1);
  --ds-method-ring: rgba(16, 185, 129, 0.3);
}

.ds-method-put,
.ds-method-patch {
  --ds-method-fg: #b45309;
  --ds-method-bg: rgba(245, 158, 11, 0.12);
  --ds-method-ring: rgba(245, 158, 11, 0.35);
}

.ds-method-delete,
.ds-method-del {
  --ds-method-fg: #b91c1c;
  --ds-method-bg: rgba(239, 68, 68, 0.1);
  --ds-method-ring: rgba(239, 68, 68, 0.3);
}

:is(.dark, [data-theme="dark"]) .ds-method { --ds-method-fg: #93c5fd; --ds-method-bg: rgba(59, 130, 246, 0.15); }
:is(.dark, [data-theme="dark"]) .ds-method-post { --ds-method-fg: #6ee7b7; --ds-method-bg: rgba(16, 185, 129, 0.15); }
:is(.dark, [data-theme="dark"]) :is(.ds-method-put, .ds-method-patch) { --ds-method-fg: #fcd34d; --ds-method-bg: rgba(245, 158, 11, 0.15); }
:is(.dark, [data-theme="dark"]) :is(.ds-method-delete, .ds-method-del) { --ds-method-fg: #fca5a5; --ds-method-bg: rgba(239, 68, 68, 0.15); }

/* Bullets and numbers match body text colour (Fern greys the markers). */
body:not(:has(.hero-section)) .fern-prose li::marker,
body:not(:has(.hero-section)) article li::marker {
  color: rgba(25, 24, 35, 0.9);
}

body:not(:has(.hero-section)) .fern-prose ul > li::before,
body:not(:has(.hero-section)) article ul > li::before {
  content: "\2022" !important;
  color: rgba(25, 24, 35, 0.9) !important;
  font-family: Arial, Helvetica, sans-serif !important;
}

:is(.dark, [data-theme="dark"]) body:not(:has(.hero-section)) .fern-prose li::marker,
:is(.dark, [data-theme="dark"]) body:not(:has(.hero-section)) article li::marker,
:is(.dark, [data-theme="dark"]) body:not(:has(.hero-section)) .fern-prose ul > li::before,
:is(.dark, [data-theme="dark"]) body:not(:has(.hero-section)) article ul > li::before {
  color: rgba(255, 255, 255, 0.9) !important;
}

body:not(:has(.hero-section)) .fern-prose td ul > li::before {
  content: none !important;
}

/* Lists nested inside table cells keep their bullets. */
body:not(:has(.hero-section)) .fern-prose td ul,
body:not(:has(.hero-section)) .fern-prose td ol {
  margin: 4px 0 0;
  padding-left: 20px;
}

body:not(:has(.hero-section)) .fern-prose td ul { list-style: disc; }
body:not(:has(.hero-section)) .fern-prose td ol { list-style: decimal; }

body:not(:has(.hero-section)) .fern-prose td li {
  margin: 0;
}

/* Prose tables use the full content column; header labels never clip. */
body:not(:has(.hero-section)) .fern-prose table:not(.code-block-line-group) {
  width: 100%;
}

body:not(:has(.hero-section)) .fern-prose table:not(.code-block-line-group) th {
  white-space: nowrap;
}

/* Endpoint pages share the row with the example column, so long unbroken tokens
   (e.g. error codes) wrap instead of widening the table past the content column;
   the min width keeps short words from splitting. */
.fern-layout-reference-content[data-kind="api"] .fern-prose table:not(.code-block-line-group) td:not(.code-block-line-content) {
  overflow-wrap: anywhere;
  min-width: 6rem;
}

/* Long lists of short tokens (allowed HTML/CSS, enum values): 4 per row. */
.format-chip-list.chip-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px 24px;
}

@media (max-width: 768px) {

  .format-chip-list.chip-cols-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

}

/* Variant (v2.1 / v2) menu items are links, which Radix never marks
   [data-highlighted]; give them the same hover state as Fern's selectors. */
.fern-variant-selector-radio-group .fern-dropdown-item:is(:hover, :focus-visible) {
  background-color: var(--grayscale-a3);
  color: var(--accent);
}

/* Image cards (live "MediaCard" grids: /sample-apps, /use-cases), measured on
   live at 1568px and 1024px. These pages use `layout: custom`, which has no
   `article` or `.fern-prose` wrapper on the hosted site, so nothing here may be
   scoped to either (the old scoped rules never applied: 6 columns, red links). */
.ds-media-grid,
.ds-sample-filter {
  width: calc(100% - 64px);
  max-width: 1008px;
  margin-left: auto;
  margin-right: auto;
}

.ds-media-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px 0;
  margin-top: 40px;
  margin-bottom: 80px;
}

@media (max-width: 767px) {

  .ds-media-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

}

.ds-media-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0 28px;
  font-size: 14px;
  line-height: 16px;
  color: #000;
}

.ds-media-card a.ds-media-card-img {
  display: block;
  margin: 0 -12px;
  border: 0 !important;
  text-decoration: none !important;
}

.ds-media-card a.ds-media-card-img img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  aspect-ratio: 305 / 203 !important;
  object-fit: cover;
  margin: 0 !important;
  border-radius: 0;
}

/* Fern appends an external-link icon to target=_blank links; live has none here. */
.ds-media-card a.ds-media-card-img svg,
.ds-media-card a.ds-media-card-title svg {
  display: none;
}

.ds-media-card-eyebrow {
  margin-top: 32px;
  font-size: 12px;
  line-height: 18px;
  color: rgba(25, 24, 35, 0.65);
  text-transform: uppercase;
}

.ds-media-card a.ds-media-card-title {
  display: block;
  margin: 0;
  font-size: 24px;
  font-weight: 400 !important;
  line-height: 30px;
  color: rgba(25, 24, 35, 0.9) !important;
  text-decoration: none !important;
  border: 0 !important;
}

.ds-media-card a.ds-media-card-title:hover {
  text-decoration: underline !important;
}
.ds-media-card a.ds-media-card-title:focus-visible {
  text-decoration: underline !important;
}

.ds-media-card > p {
  margin: 21px 0 14px;
  font-size: 14px;
  line-height: 16px;
}

.ds-media-card-tags {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 36px;
}

/* Outlined topic tags. */
.ds-tag {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  height: 40px;
  margin: 0 9px 8px 0;
  padding: 0 16px;
  vertical-align: top;
  border: 1px solid rgba(25, 24, 35, 0.65);
  border-radius: 40px;
  font-size: 16px;
  line-height: 24px;
  color: rgba(25, 24, 35, 0.9);
  white-space: nowrap;
}

.ds-media-card .ds-tag {
  cursor: pointer;
}

/* "Learn more" / "Try the app" / "View the source": one per line, pinned to the
   card bottom so they line up across a row (live leaves them ragged under the tags). */
.ds-media-card > p:has(> a:only-child) {
  margin: auto 0 0;
  font-size: 16px;
  line-height: 24px;
}

.ds-media-card > p:has(> a:only-child) + p:has(> a:only-child) {
  margin-top: 0;
}

.ds-media-card > p > a:only-child {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 400 !important;
  color: rgb(0, 105, 236) !important;
  text-decoration: none !important;
  border: 0 !important;
}

.ds-media-card > p > a:only-child:hover {
  text-decoration: underline !important;
}
.ds-media-card > p > a:only-child:focus-visible {
  text-decoration: underline !important;
}

.ds-media-card > p > a:only-child svg {
  width: 14px;
  height: 14px;
}

.ds-media-card > p > a:only-child:not([target])::after {
  content: "";
  width: 14px;
  height: 14px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m8.34 16-1.06-1.06L12.22 10 7.28 5.06 8.34 4l6 6z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m8.34 16-1.06-1.06L12.22 10 7.28 5.06 8.34 4l6 6z'/%3E%3C/svg%3E") center / contain no-repeat;
}

:is(.dark, [data-theme="dark"]) .ds-media-card {
  color: rgba(255, 255, 255, 0.9);
}

:is(.dark, [data-theme="dark"]) .ds-media-card-eyebrow {
  color: rgba(255, 255, 255, 0.65);
}

:is(.dark, [data-theme="dark"]) .ds-media-card a.ds-media-card-title {
  color: #fff !important;
}

:is(.dark, [data-theme="dark"]) .ds-tag {
  border-color: rgba(255, 255, 255, 0.5);
  color: rgba(255, 255, 255, 0.9);
}

:is(.dark, [data-theme="dark"]) .ds-media-card > p > a:only-child {
  color: rgb(102, 163, 255) !important;
}

/* Hero pages: the banner carries the title, so drop Fern's page header. */
article:has(.evt-hero) > header {
  display: none;
}

/* Hero spans the full width, like live. */
article:has(.evt-hero) {
  width: 100% !important;
  max-width: none !important;
}

article:has(.evt-hero) .evt-hero {
  margin: 0 -32px;
}

.ds-hero-body {
  max-width: 1008px;
  margin-left: auto;
  margin-right: auto;
}

/* /sample-apps filter bar (reuses the .osc-* filter styles). */
.ds-sample-filter {
  margin-top: 40px;
}

.ds-sample-filter .osc-result-count {
  margin-bottom: 26px;
  font-size: 18px;
  line-height: 27px;
}

body:has(.ds-sample-filter) .ds-media-grid {
  margin-top: 0;
}

/* Two-column event hero (/developer-events/esignature-salesforce-webinars), measured from live */
article:has(.ds-split-hero) > header {
  display: none;
}

article:has(.ds-split-hero) {
  width: 100% !important;
  max-width: none !important;
}

.ds-split-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 547px;
  color: #fff;
}

.ds-split-hero-media,
.ds-split-hero-panel {
  min-width: 0;
}

.ds-split-hero-media {
  padding: 57px 32px 48px 99px;
  background: #555;
  position: relative;
  overflow: hidden;
}

.ds-split-hero-media > * {
  position: relative;
}

.ds-split-hero-media > img.ds-split-hero-bg {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  object-fit: cover;
  pointer-events: none;
}

body .ds-split-hero h1.ds-split-hero-title {
  margin: 0 0 32px;
  max-width: 560px;
  font-size: 80px !important;
  line-height: 88px !important;
  font-weight: 400 !important;
  color: #fff !important;
}

.ds-split-hero p.ds-split-hero-loc {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0;
  font-size: 14px;
  line-height: 20px;
}

.ds-split-hero p.ds-split-hero-loc img {
  width: 30px;
  height: 36px;
  margin: 0;
}

.ds-split-hero-panel {
  padding: 57px 32px 48px 31px;
  background: #0da8ba;
}

.ds-split-hero p.ds-split-hero-date {
  margin: 0 0 64px;
  font-size: 32px;
  line-height: 40px;
  font-weight: 400;
}

.ds-split-hero p.ds-split-hero-text {
  margin: 0;
  max-width: 570px;
  font-size: 18px;
  line-height: 24px;
  font-weight: 500;
}

.ds-split-hero + .ds-hero-body {
  margin-top: 64px;
}

@media (max-width: 900px) {

  .ds-split-hero {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .ds-split-hero-media,
  .ds-split-hero-panel {
    padding: 32px;
  }

  body .ds-split-hero h1.ds-split-hero-title {
    font-size: 48px !important;
    line-height: 56px !important;
  }

}

.ds-hero-body {
  overflow-wrap: anywhere;
}

.ds-hero-body table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
}

/* Full-width grey band (live /training "Unsure which courses to take?") */
article:has(.evt-hero) .ds-band {
  margin: 0 -32px;
}

.ds-band {
  background: #f6f8fa;
  padding: 100px 16px 24px;
  color: rgba(25, 24, 35, 0.9);
}

.ds-band-inner {
  max-width: 976px;
  margin: 0 auto;
  text-align: center;
  font-size: 18px;
  line-height: 27px;
}

body .ds-band p.ds-band-title {
  margin: 0 0 32px;
  font-size: 32px;
  line-height: 40px;
  font-weight: 400;
}

.ds-band-inner > p {
  margin: 0;
}

body .ds-band-inner a:not(.ds-band-btn) {
  color: #0069ec !important;
  font-weight: 400;
  text-decoration: underline;
}

.ds-band-inner a:not(.ds-band-btn) svg {
  display: none;
}

.ds-band hr.ds-band-rule {
  margin: 44px 24px 0;
  border: 0;
  border-top: 1px solid #000;
}

.ds-band-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 49px;
  padding-right: 12px;
  text-align: left;
}

body .ds-band p.ds-band-row-text {
  margin: 0 0 0 25px;
  font-size: 24px;
  line-height: 36px;
  color: #000;
}

body .ds-band a.ds-band-btn {
  flex-shrink: 0;
  padding: 15px 24px;
  border: 1px solid #4c00ff;
  border-radius: 8px;
  color: #4c00ff !important;
  font-size: 16px;
  line-height: 24px;
  font-weight: 500;
  text-decoration: none !important;
}

@media (max-width: 640px) {

  .ds-band-row {
    flex-direction: column;
    align-items: flex-start;
  }

  body .ds-band p.ds-band-row-text {
    margin-left: 0;
  }

}

/* Changelog: live colours (light), readable equivalents in dark mode */
:root {
  --ds-cl-text: rgba(25, 24, 35, 0.9);
  --ds-cl-pill-border: rgba(25, 24, 35, 0.65);
  --ds-cl-pill-bg: #fff;
  --ds-cl-link: #0069ec;
}

:is(.dark, [data-theme="dark"]) {
  --ds-cl-text: rgba(255, 255, 255, 0.9);
  --ds-cl-pill-border: rgba(255, 255, 255, 0.5);
  --ds-cl-pill-bg: transparent;
  --ds-cl-link: #8ab4ff;
}

/* Changelog: live hero + "Stay up to date" card, live entry styling */
.fern-changelog-overview:has(.ds-cl-hero) > header {
  display: none;
}

html:has(.ds-cl-hero) {
  overflow-x: clip;
}

.ds-cl-hero {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-bottom: 64px;
}

body .ds-cl-hero .evt-hero {
  margin: 0 !important;
}

.fern-changelog-day {
  font-size: 16px !important;
  line-height: 24px !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  color: var(--ds-cl-text) !important;
}

.fern-changelog-card .fern-changelog-card-marker {
  width: 16px;
  height: 16px;
  background: #00baa1 !important;
  border-color: #00baa1 !important;
}

body article .fern-changelog-card h3.fern-changelog-card-title {
  font-size: 24px !important;
  line-height: 30px !important;
  font-weight: 400 !important;
  color: var(--ds-cl-text) !important;
  margin-bottom: 16px !important;
}

.fern-changelog-card-body {
  display: flex;
  flex-direction: column;
}

.fern-changelog-card-preview,
.fern-changelog-card-preview > div,
.fern-changelog-card-preview > div > div {
  display: contents !important;
}

.fern-changelog-card-body p {
  order: 1;
  margin: 0 0 16px !important;
  font-size: 16px !important;
  line-height: 24px !important;
  color: var(--ds-cl-text) !important;
}

.fern-changelog-card-tags {
  order: 2;
  margin: 0 0 16px !important;
  gap: 8px !important;
}

.fern-changelog-card-body p:has(.ds-cl-learn) {
  order: 3;
}

.fern-changelog-card-tags .fern-docs-badge {
  height: auto !important;
  padding: 7px 16px !important;
  border: 1px solid var(--ds-cl-pill-border) !important;
  border-radius: 40px !important;
  background: var(--ds-cl-pill-bg) !important;
  color: var(--ds-cl-text) !important;
  font-size: 16px !important;
  line-height: 24px !important;
  font-weight: 400 !important;
}

body article .fern-changelog-card-body a.ds-cl-learn {
  order: 3;
  align-self: flex-start;
  position: relative;
  z-index: 11;
  pointer-events: auto !important;
  font-size: 16px !important;
  line-height: 24px !important;
  color: var(--ds-cl-link) !important;
  font-weight: 400 !important;
  text-decoration: none !important;
}

/* Entries with no external link: "Learn More" opens the entry page; on that page it would link to itself (live shows none). */
.fern-layout-changelog-entry a.ds-cl-learn[href^="/changelog/"] {
  display: none !important;
}

@media (max-width: 640px) {

  .fern-changelog-day-group {
    flex-direction: column;
    gap: 8px;
  }

}

/* /choose-the-right-developer-plan: live's column headers are 16px like the
   body text; Fern's default table header is 12px. */
.ds-plan-table th {
  font-size: 16px !important;
  line-height: 24px !important;
}

/* Live keeps this page's content 976px wide and centred, with no sidebar. */
.fern-layout-page > article:has(.ds-plan-table) {
  max-width: 976px;
  min-width: 0;
  margin-left: auto;
  margin-right: auto;
}

/* Fit the table on phones (live wraps cells instead of scrolling). */
.ds-plan-table .fern-table {
  table-layout: fixed;
  width: 100% !important;
}

.ds-plan-table .fern-table th,
.ds-plan-table .fern-table td {
  white-space: normal !important;
  overflow-wrap: anywhere;
}

/* Tab landing pages built from live's ds-section HTML (/partner, /get-started). */
.ds-lp-band {
  margin: 0;
  padding: 120px 32px;
}
.ds-lp-band > * {
  max-width: 1008px;
  margin-left: auto;
  margin-right: auto;
}
.ds-lp-dark {
  background: #111416;
  color: #d5d9e0;
}
.ds-lp-dark .ds-lp-h3,
.ds-lp-dark .ds-lp-check-title {
  color: #fff;
}
.ds-lp-grey {
  background: #f6f8fa;
}
:is(.dark, [data-theme="dark"]) .ds-lp-grey {
  background: rgba(255, 255, 255, 0.04);
}
.ds-lp-center {
  text-align: center;
}
.ds-lp-band p,
.ds-hero-body .ds-lp-rows p:not(.ds-lp-h4),
.ds-lp-cards span {
  font-size: 18px;
  line-height: 24px;
}
body .ds-lp-h2 {
  font-size: 48px;
  line-height: 60px;
  font-weight: 400;
  margin: 0 0 24px;
}
body .ds-lp-h3 {
  font-size: 32px;
  line-height: 40px;
  font-weight: 400;
  margin: 0 0 24px;
}
body .ds-lp-h4 {
  font-size: 24px;
  line-height: 30px;
  font-weight: 400;
  margin: 0 0 12px;
}
.ds-lp-top {
  margin-top: 100px !important;
}
.ds-lp-split {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 48px;
  align-items: start;
}
.ds-lp-checks > div {
  display: grid;
  grid-template-columns: 24px 1fr;
  column-gap: 25px;
  margin-bottom: 24px;
}
.ds-lp-checks img {
  margin: 6px 0 0 !important;
}
.ds-lp-checks p {
  grid-column: 2;
  margin: 0;
}
body .ds-lp-checks .ds-lp-check-title {
  grid-row: 1;
  font-size: 28px;
  line-height: 40px;
}
.ds-lp-ticks p {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 40px;
  font-size: 16px;
}
.ds-lp-ticks img {
  width: 24px;
  margin: 0 !important;
}
.ds-lp-rows > div {
  display: grid;
  grid-template-columns: 5fr 6fr;
  gap: 48px;
  padding: 24px 0;
  border-bottom: 1px solid currentColor;
}
.ds-lp-rows p {
  margin: 0 !important;
}
.ds-lp-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-bottom: 48px;
}
.ds-lp-cards a {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 12px;
  text-decoration: none !important;
  color: inherit !important;
  font-weight: 400 !important;
}
.ds-lp-cards a * {
  font-weight: 400 !important;
}
.ds-lp-cards a span:not(.ds-lp-card-title) {
  opacity: 0.75;
}
/* Same hover as the API cards: title turns blue. */
.ds-lp-cards .ds-lp-card-title {
  transition: color 0.2s ease;
}
.ds-lp-cards a:hover .ds-lp-card-title {
  color: #1565c0;
}
.ds-lp-cards a:focus-within .ds-lp-card-title {
  color: #1565c0;
}
:is(.dark, [data-theme="dark"]) .ds-lp-cards a:hover .ds-lp-card-title {
  color: #cbc2ff;
}
:is(.dark, [data-theme="dark"]) .ds-lp-cards a:focus-within .ds-lp-card-title {
  color: #cbc2ff;
}
.ds-lp-cards .ds-lp-card-title {
  font-size: 24px;
  line-height: 30px;
  opacity: 1;
}
.ds-lp-cards .ds-lp-card-title::after {
  content: " \203A";
}
.ds-lp-quote {
  display: grid;
  grid-template-columns: 8fr 3fr;
  gap: 48px;
  padding-bottom: 32px;
  border-bottom: 1px solid currentColor;
}
.ds-lp-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
  padding-top: 32px;
}
.ds-lp-cols3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.ds-lp-faq p {
  margin: 0 0 24px;
}
/* Live's logo strip: one 3155x346 image scrolling left in a loop (two copies side by side). */
.ds-lp-carousel {
  overflow: hidden;
}
.ds-lp-track {
  display: flex;
  width: max-content;
  height: 346px;
  animation: ds-lp-scroll 90s linear infinite;
}
.ds-lp-track > img {
  display: block;
  width: 3155px !important;
  height: 346px !important;
  max-width: none !important;
  margin: 0 !important;
}
@keyframes ds-lp-scroll {
  to { transform: translateX(-3155px); }
}
@media (prefers-reduced-motion: reduce) {

  .ds-lp-track { animation: none; }

}
/* Links: live's blue, no Fern external-link icon. */
.ds-hero-body a:not(.ds-cta):not(.success-card):not(.fern-card),
.ds-lp-band a:not(.ds-cta) {
  color: rgb(0, 105, 236) !important;
  text-decoration: none !important;
  border: 0 !important;
}
.ds-lp-quote a {
  text-decoration: underline !important;
}
:is(.dark, [data-theme="dark"]) .ds-hero-body a:not(.ds-cta):not(.success-card):not(.fern-card) {
  color: #cbc2ff !important;
}
.ds-hero-body .external-link-icon,
.ds-hero-body svg.lucide-external-link,
.ds-lp-band .external-link-icon,
.ds-lp-band svg.lucide-external-link {
  display: none !important;
}
.ds-hero-body hr {
  margin: 96px 0 64px !important;
}
.ds-hero-body .success-stories-grid {
  grid-template-columns: repeat(3, 1fr);
  padding: 0;
  max-width: none;
}
.ds-lp-finder {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid currentColor;
  margin: 45px 0 100px;
  padding-top: 15px;
}
@media (max-width: 768px) {

  .ds-lp-split,
  .ds-lp-rows > div,
  .ds-lp-cards,
  .ds-lp-quote,
  .ds-lp-stats,
  .ds-lp-cols3 {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .ds-lp-band {
    padding: 64px 16px;
  }
  .ds-hero-body .success-stories-grid {
    grid-template-columns: 1fr;
  }
  body .ds-lp-h2 {
    font-size: 32px;
    line-height: 40px;
  }
  .ds-lp-finder {
    flex-direction: column;
  }

}

/* /get-started "How-to guides": live's spacing (32px around each API title, 56px between links). */
body .ds-lp-howto {
  margin-top: 64px;
}
body .ds-lp-howto .ds-lp-h4 {
  margin: 32px 0;
}
body .ds-lp-howto p:not(.ds-lp-h4) {
  margin: 16px 0;
}
body .ds-lp-howto p > a {
  display: inline-block;
  padding: 8px 0;
}

/* /videos listing (VideosListing.tsx): live's filter bar, 3-card sections, "View N More". */
.vid-listing {
  max-width: 1008px;
  margin: 60px auto 0;
}
.vid-filters {
  display: flex;
  gap: 21px;
  margin-bottom: 65px;
}
.vid-select-wrap {
  position: relative;
  flex: 0 0 252px;
}
.vid-select,
.vid-search {
  box-sizing: border-box;
  height: 40px;
  width: 100%;
  border: 1px solid rgba(25, 24, 35, 0.65);
  border-radius: 2px;
  background: #fff;
  color: rgba(25, 24, 35, 0.9);
  font: inherit;
  font-size: 16px;
}
.vid-select {
  appearance: none;
  padding: 0 32px 0 16px;
  cursor: pointer;
}
.vid-select-icon {
  position: absolute;
  right: 8px;
  top: 10px;
  pointer-events: none;
  color: rgba(25, 24, 35, 0.9);
}
.vid-search {
  flex: 1;
  padding: 7px 16px;
}
.vid-section {
  margin-bottom: 90px;
  padding-top: 32px;
}
body .vid-section h3.vid-section-title {
  margin: 0 0 24px;
  font-size: 32px;
  line-height: 40px;
  font-weight: 400;
}
body .vid-section p.vid-section-desc {
  margin: 0 0 24px;
  font-size: 16px;
  line-height: 24px;
}
.vid-grid {
  display: grid;
  grid-template-columns: repeat(3, 300px);
  gap: 32px;
}
.vid-card {
  display: block;
  color: inherit !important;
  text-decoration: none !important;
}
.vid-card-thumb {
  position: relative;
  display: block;
  border-radius: 8px;
  overflow: hidden;
}
.vid-card-thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: 0 !important;
  border-radius: 8px;
  object-fit: cover;
}
.vid-card-play {
  position: absolute;
  left: 24px;
  bottom: 18px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(25, 24, 35, 0.75);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-left: 3px;
  box-sizing: border-box;
}
/* Hover: shade the thumbnail, no animation. */
.vid-card:hover .vid-card-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
}
.vid-card:focus-within .vid-card-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
}
.vid-card-title {
  display: block;
  margin-top: 38px;
  font-size: 24px;
  line-height: 30px;
  font-weight: 400;
}
.vid-more {
  margin-top: 24px;
  text-align: center;
}
.vid-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 40px;
  padding: 4px 11px 4px 15px;
  border: 1px solid rgba(25, 24, 35, 0.65);
  border-radius: 2px;
  background: transparent;
  color: rgba(25, 24, 35, 0.9);
  font: inherit;
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
}
:is(.dark, [data-theme="dark"]) :is(.vid-select, .vid-search) {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.5);
}
:is(.dark, [data-theme="dark"]) .vid-select option {
  color: #000;
}
:is(.dark, [data-theme="dark"]) :is(.vid-select-icon, .vid-more-btn) {
  color: #fff;
}
:is(.dark, [data-theme="dark"]) .vid-more-btn {
  border-color: rgba(255, 255, 255, 0.5);
}
@media (max-width: 1060px) {

  .vid-listing {
    padding: 0 24px;
  }
  .vid-grid {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  }

}

/* Video pages (/videos/<id>): breadcrumb, player, tag pills, description + "Follow us on", related cards. */
.vid-detail {
  max-width: 1008px;
  margin: 80px auto 0;
  color: rgb(25, 24, 35);
}

.vid-crumbs {
  display: flex;
  align-items: center;
  font-size: 16px;
  line-height: 40px;
  margin-bottom: 80px;
}

.vid-crumbs a {
  color: rgba(25, 24, 35, 0.9);
  text-decoration: none;
}

.vid-crumbs-sep {
  display: flex;
  margin: 0 8px;
}

.vid-crumbs-current {
  font-weight: 500;
}

.vid-player {
  border-radius: 16px;
  overflow: hidden;
  background: #000;
}

.vid-player iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
}

body ul.vid-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 32px 0 0;
  padding: 0;
  list-style: none;
}

body ul.vid-tags li.vid-tag {
  margin: 0;
  padding: 7px 16px;
  border: 1px solid rgba(25, 24, 35, 0.65);
  border-radius: 40px;
  background: #fff;
  color: rgba(25, 24, 35, 0.9);
  font-size: 16px;
  line-height: 24px;
  text-transform: uppercase;
  list-style: none;
}

.vid-detail-body {
  display: flex;
  justify-content: space-between;
  gap: 40px;
}

.vid-detail-desc {
  flex: 0 1 590px;
}

body .vid-detail-desc p {
  margin: 16px 0;
  font-size: 16px;
  line-height: 24px;
}

.vid-follow {
  flex: 0 0 336px;
  padding-bottom: 72px;
}

body .vid-follow h4.vid-follow-title {
  margin: 32px 0;
  font-size: 24px;
  line-height: 30px;
  font-weight: 400;
}

.vid-social {
  display: flex;
  gap: 36px;
  margin-bottom: 30px;
}

.vid-social img {
  display: block;
  width: 36px;
  height: 36px;
  margin: 0 !important;
}

.vid-follow-links a {
  display: block;
  padding: 8px 0;
  color: rgb(0, 105, 236);
  font-size: 16px;
  line-height: 24px;
  text-decoration: none;
}

.vid-follow-links a:hover {
  text-decoration: underline;
}
.vid-follow-links a:focus-visible {
  text-decoration: underline;
}

.vid-related {
  margin-top: 66px;
}

body .vid-related h3.vid-related-title {
  margin: 32px 0 24px;
  font-size: 32px;
  line-height: 40px;
  font-weight: 400;
}

:is(.dark, [data-theme="dark"]) .vid-detail,
:is(.dark, [data-theme="dark"]) .vid-crumbs a {
  color: rgba(255, 255, 255, 0.9);
}

:is(.dark, [data-theme="dark"]) body ul.vid-tags li.vid-tag {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.5);
  color: rgba(255, 255, 255, 0.9);
}

:is(.dark, [data-theme="dark"]) .vid-follow-links a {
  color: #6ea8ff;
}

/* Two-column root-page sections (/support): live #body-container rows.
   Left column 7fr, right 10fr, 32px gap, 16px inset inside the 1008px column. */
.ds-lp-band.ds-lp-tight {
  padding: 16px 32px;
}
.ds-lp-twocol {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 10fr);
  column-gap: 32px;
  padding: 0 16px;
  align-items: start;
}
.ds-lp-twocol.ds-lp-even {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
body .ds-lp-twocol p {
  font-size: 16px;
  line-height: 24px;
  margin: 16px 0;
}
body .ds-lp-twocol .ds-lp-h4 {
  font-size: 24px;
  line-height: 30px;
  margin: 32px 0 32px;
}
body .ds-lp-twocol .ds-lp-h3 {
  font-size: 32px;
  line-height: 40px;
  margin: 83px 0 32px;
}
.ds-lp-band .ds-lp-twocol a:not(.ds-cta) {
  display: inline-flex;
  font-weight: 400;
  align-items: center;
  font-size: 16px;
  line-height: 24px;
}
:is(.dark, [data-theme="dark"]) .ds-lp-band a:not(.ds-cta) {
  color: #cbc2ff !important;
}
.ds-sup-case {
  padding-bottom: 152px !important;
}

/* Dropdowns (/support): native <details> divider list, plain titles, no animation. */
.ds-lp-acc {
  padding-top: 17px;
}
.ds-lp-acc details {
  border-top: 1px solid rgba(25, 24, 35, 0.1);
}
.ds-lp-acc details:last-child {
  border-bottom: 1px solid rgba(25, 24, 35, 0.1);
}
.ds-lp-acc summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  box-sizing: border-box;
  min-height: 56px;
  padding: 16px 8px;
  font-weight: 500;
  color: rgba(25, 24, 35, 0.9);
  cursor: pointer;
  list-style: none;
}
.ds-lp-acc summary::-webkit-details-marker {
  display: none;
}
.ds-lp-acc summary::after {
  content: "";
  flex: none;
  width: 20px;
  height: 20px;
  background: rgba(25, 24, 35, 0.5);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m16 8.34-5.41 5.41a.82.82 0 0 1-1.18 0L4 8.34 5.34 7 10 11.66 14.66 7z'/%3E%3C/svg%3E") center / 20px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m16 8.34-5.41 5.41a.82.82 0 0 1-1.18 0L4 8.34 5.34 7 10 11.66 14.66 7z'/%3E%3C/svg%3E") center / 20px no-repeat;
}
.ds-lp-acc summary:hover,
.ds-lp-acc details[open] > summary {
  background: rgba(25, 24, 35, 0.03);
}
.ds-lp-acc summary:focus-visible {
  background: rgba(25, 24, 35, 0.03);
}
.ds-lp-acc details[open] > summary::after {
  transform: rotate(180deg);
}
body .ds-lp-acc summary > p.ds-lp-acc-title {
  margin: 0;
  font-size: 16px;
  line-height: 24px;
  font-weight: 500;
  color: inherit;
}
body .ds-lp-acc details > p {
  margin: 0;
  padding: 4px 8px 8px;
  color: rgba(25, 24, 35, 0.7);
}
.ds-lp-acc details > :not(summary):not(p):not(.ds-acc-more) {
  margin: 4px 8px 12px;
}
.ds-lp-band .ds-lp-acc details > p a {
  text-decoration: underline !important;
}
.ds-lp-band .ds-lp-acc .ds-acc-more {
  display: inline-flex;
  gap: 6px;
  margin: 0 8px 16px;
  font-weight: 500;
}
.ds-lp-acc .ds-acc-more::after {
  content: "\2192";
}
:is(.dark, [data-theme="dark"]) .ds-lp-acc details {
  border-color: rgba(255, 255, 255, 0.15);
}
:is(.dark, [data-theme="dark"]) .ds-lp-acc summary {
  color: rgba(255, 255, 255, 0.9);
}
:is(.dark, [data-theme="dark"]) .ds-lp-acc summary::after {
  background: rgba(255, 255, 255, 0.65);
}
:is(.dark, [data-theme="dark"]) .ds-lp-acc summary:hover,
:is(.dark, [data-theme="dark"]) .ds-lp-acc details[open] > summary {
  background: rgba(255, 255, 255, 0.05);
}
:is(.dark, [data-theme="dark"]) .ds-lp-acc summary:focus-visible {
  background: rgba(255, 255, 255, 0.05);
}
:is(.dark, [data-theme="dark"]) body .ds-lp-acc details > p {
  color: rgba(255, 255, 255, 0.75);
}

/* Link icons (live's 16px glyphs). */
.ds-icon-window::after,
.ds-icon-external::after,
.ds-icon-play::before {
  content: "";
  flex: none;
  width: 16px;
  height: 16px;
  background: currentColor;
}
.ds-icon-window::after {
  margin-left: 6px;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 10v10a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-4h2v3h10v-8h-1V9h2a1 1 0 0 1 1 1zm-4-6v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1zM5 5v1h10V5zm10 8V7H5v6z'/%3E%3C/svg%3E") center / 16px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 10v10a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-4h2v3h10v-8h-1V9h2a1 1 0 0 1 1 1zm-4-6v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1zM5 5v1h10V5zm10 8V7H5v6z'/%3E%3C/svg%3E") center / 16px no-repeat;
}
.ds-icon-external::after {
  margin-left: 6px;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 13v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h7v2H5v10h10v-6zm3-10h-7v2h4.66L8 14.66 9.34 16 19 6.34V11h2V4a1 1 0 0 0-1-1z'/%3E%3C/svg%3E") center / 16px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 13v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h7v2H5v10h10v-6zm3-10h-7v2h4.66L8 14.66 9.34 16 19 6.34V11h2V4a1 1 0 0 0-1-1z'/%3E%3C/svg%3E") center / 16px no-repeat;
}
.ds-icon-play::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M12.73 9.38 8 5v10l4.73-4.38a.85.85 0 0 0 0-1.24z'/%3E%3C/svg%3E") center / 16px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M12.73 9.38 8 5v10l4.73-4.38a.85.85 0 0 0 0-1.24z'/%3E%3C/svg%3E") center / 16px no-repeat;
}

/* "Talk to sales" band and resources list. */
.ds-lp-band.ds-lp-sales {
  padding-top: 31px;
  padding-bottom: 38px;
}
body .ds-lp-twocol .ds-lp-sales-title {
  font-size: 24px;
  line-height: 36px;
  margin: 24px 0;
  color: #000;
}
body .ds-lp-twocol .ds-lp-sales-text {
  font-size: 18px;
  line-height: 27px;
  margin: -10px 0 18px;
  color: rgba(25, 24, 35, 0.9);
}
:is(.dark, [data-theme="dark"]) body .ds-lp-twocol :is(.ds-lp-sales-title, .ds-lp-sales-text) {
  color: #fff;
}
.ds-lp-sales-ctas {
  display: flex;
  justify-content: flex-end;
  gap: 16px;
  padding-top: 33px;
}
.ds-lp-sales-ctas .ds-cta {
  margin: 0;
}
.ds-lp-band.ds-lp-resources {
  padding-bottom: 47px;
}
.ds-lp-resources .ds-lp-twocol > div:last-child {
  padding-top: 96px;
}
.ds-lp-resources .ds-lp-twocol > div:last-child > div + div {
  margin-top: 42px;
}
body .ds-lp-resources .ds-lp-twocol > div:last-child p {
  margin: 18px 0 0;
}


/* /docs: "API Reference" link on each API card. It sits over the card (a link can't go inside the card's own <a>). */
.ds-api-cell {
  position: relative;
  display: flex;
}
/* Fern wraps each <Card> in its own .fern-card-group (my-6); drop that margin so the grid gap matches prod. */
.ds-api-cell > .fern-card-group {
  flex: 1;
  margin: 0 !important;
}
.ds-api-cell .fern-card {
  height: 100%;
  padding-bottom: 56px !important;
}
.ds-hero-body .ds-api-cell > a.ds-api-ref {
  position: absolute;
  z-index: 1;
  left: 24px;
  bottom: 24px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 16px;
  line-height: 24px;
}
.ds-hero-body .ds-api-cell > a.ds-api-ref:hover {
  text-decoration: underline !important;
}
.ds-hero-body .ds-api-cell > a.ds-api-ref:focus-visible {
  text-decoration: underline !important;
}
.ds-api-cell:hover .fern-card {
  box-shadow: 0 1px 2px 0 rgba(32, 16, 0, 0.063), 0 3px 6px 0 rgba(32, 16, 0, 0.063);
}
.ds-api-cell:focus-within .fern-card {
  box-shadow: 0 1px 2px 0 rgba(32, 16, 0, 0.063), 0 3px 6px 0 rgba(32, 16, 0, 0.063);
}

/* Salesforce Apex Toolkit reference (tools/migration/apexdoc.py): live's ApexDoc layout. */
body .apex-doc {
  --apex-line: #dbdbdb;
  --apex-pill: rgb(232, 237, 247);
  --apex-text: #333;
  --apex-muted: #4a4a4a;
  color: var(--apex-text);
  font-size: 16px;
  line-height: 24px;
}
body .apex-class {
  margin: 0 0 40px;
}
body .apex-doc .external-link-icon,
body .apex-doc svg.lucide-external-link {
  display: none !important;
}
body .apex-doc a,
body .fern-prose .apex-doc a.fern-mdx-link,
body .fern-prose .apex-doc a.fern-mdx-link:hover {
  color: #2c6ee1 !important;
  text-decoration-color: #2c6ee1 !important;
  text-decoration: none;
  font-weight: inherit;
}
body .fern-prose .apex-doc a.fern-mdx-link:focus-visible {
  color: #2c6ee1 !important;
  text-decoration-color: #2c6ee1 !important;
  text-decoration: none;
  font-weight: inherit;
}
body .apex-doc a:hover {
  text-decoration: underline;
}
body .apex-doc a:focus-visible {
  text-decoration: underline;
}
body .apex-doc h2.apex-h2 {
  margin: 0 0 13px !important;
  padding: 0 !important;
  font-size: 29px !important;
  line-height: normal !important;
  font-weight: 500 !important;
  color: var(--apex-text) !important;
}
body .apex-doc h3.apex-h3 {
  margin: 0 0 5px !important;
  padding: 0 !important;
  font-size: 23px !important;
  line-height: 39.79px !important;
  font-weight: 700 !important;
  color: var(--apex-text) !important;
}
body .apex-doc .apex-sig {
  margin: 0 0 24px;
  font-size: 16px;
  line-height: 20px;
  font-weight: 300;
  color: var(--apex-muted);
  overflow-wrap: anywhere;
}
body .apex-doc .apex-section,
body .apex-doc .apex-acc-body {
  padding-bottom: 20px;
}
body .apex-doc .apex-label {
  margin: 0 0 5px;
  font-size: 15px;
  line-height: 25.95px;
  font-weight: 700;
  color: var(--apex-text);
}
body .apex-doc .apex-rule {
  border-bottom: 1px solid var(--apex-line);
}
/* Properties/Constants/Methods use Fern's <Accordion>, styled as /tools/overview; static open/hover. */
body .apex-doc .fern-accordion-trigger,
body .apex-doc .fern-accordion-trigger-arrow {
  transition: none !important;
}
body .apex-doc .apex-row {
  display: flex;
}
body .apex-doc .apex-row:not(:has(+ .apex-row)) {
  border-bottom: 1px solid var(--apex-line);
}
body .apex-doc .apex-row > .apex-name,
body .apex-doc .apex-row > .apex-key {
  flex: none;
  box-sizing: border-box;
  width: 25%;
  padding: 12px;
  border-top: 1px solid var(--apex-line);
  border-left: 1px solid var(--apex-line);
  overflow-wrap: anywhere;
}
body .apex-doc .apex-row > .apex-val {
  flex: 1 1 0;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--apex-line);
  border-bottom: 0;
  overflow-wrap: anywhere;
}
body .apex-doc code {
  padding: 3.2px 6.4px !important;
  font-size: 12.8px !important;
  line-height: 19.2px !important;
  font-weight: 400 !important;
  color: var(--apex-text) !important;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
}
body .apex-doc .apex-row > code.apex-name {
  display: block;
  padding: 12px !important;
  border-top: 1px solid var(--apex-line) !important;
  border-left: 1px solid var(--apex-line) !important;
  font-size: 12.8px !important;
  line-height: 19.2px !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
}
body .apex-doc .apex-decl {
  padding: 2px 5px;
  background: var(--apex-pill);
  font-size: 16px;
  line-height: 24px;
}
body .apex-doc em {
  font-size: 10.24px;
  font-style: italic;
  color: var(--apex-text);
}
body .apex-doc p {
  margin: 0 0 16px;
}
body .apex-doc .apex-desc ul,
body .apex-doc .apex-val ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
body .apex-doc .apex-desc li,
body .apex-doc .apex-val li {
  margin: 0;
  padding: 0;
}
body:not(:has(.hero-section)) .fern-prose .apex-class ul > li::before {
  content: none !important;
}
body .apex-home ul {
  margin: 16px 0 16px 20px !important;
}
body .apex-home li {
  margin: 0 !important;
}
body .apex-doc pre.apex-pre {
  margin: 0 !important;
  padding: 0 !important;
  background: #f5f5f5 !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow-x: auto;
}
body .apex-doc pre.apex-pre > code {
  display: block;
  font-size: 12.8px !important;
  line-height: 19.2px !important;
  padding: 0 !important;
  white-space: pre;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
  color: #4a4a4a !important;
}
:is(.dark, [data-theme="dark"]) body .apex-doc {
  --apex-line: rgba(255, 255, 255, 0.15);
  --apex-pill: rgba(44, 110, 225, 0.2);
  --apex-text: rgba(255, 255, 255, 0.9);
  --apex-muted: rgba(255, 255, 255, 0.75);
}
:is(.dark, [data-theme="dark"]) body .apex-doc a,
:is(.dark, [data-theme="dark"]) body .fern-prose .apex-doc a.fern-mdx-link,
:is(.dark, [data-theme="dark"]) body .fern-prose .apex-doc a.fern-mdx-link:hover {
  color: #cbc2ff !important;
  text-decoration-color: #cbc2ff !important;
}
:is(.dark, [data-theme="dark"]) body .fern-prose .apex-doc a.fern-mdx-link:focus-visible {
  color: #cbc2ff !important;
  text-decoration-color: #cbc2ff !important;
}
:is(.dark, [data-theme="dark"]) body .apex-doc pre.apex-pre {
  background: rgba(255, 255, 255, 0.06) !important;
}
:is(.dark, [data-theme="dark"]) body .apex-doc pre.apex-pre > code {
  color: rgba(255, 255, 255, 0.85) !important;
}

/* Newsletter issues (/newsletter/<year>/<month>): breadcrumb, grey "historical" note, the original email in an iframe, signup. Measured on live at 1568/1024 (live has no dark theme here). */
.ds-nl {
  width: calc(100% - 64px);
  max-width: 1008px;
  margin: 55px auto 80px;
  color: rgba(25, 24, 35, 0.9);
}

.ds-nl-crumbs,
.ds-nl-note,
.ds-nl-frame {
  margin-left: 21px !important;
  width: calc(100% - 21px) !important;
}

.ds-nl-crumbs {
  margin-bottom: 67px;
}

.ds-nl-note {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  box-sizing: border-box;
  padding: 8px 16px 8px 24px;
  background: rgb(217, 217, 224);
  color: rgb(44, 42, 59);
  font-size: 16px;
  line-height: 24px;
}

.ds-nl-note svg {
  flex: none;
  margin-top: 8px;
  color: rgba(25, 24, 35, 0.65);
}

.ds-nl-note span {
  padding: 8px 0;
}

iframe.ds-nl-frame {
  display: block;
  border: 0;
  margin-top: 0;
  margin-bottom: 0;
  background: #fff;
}

.ds-nl-signup {
  margin-top: 32px;
  text-align: center;
}

.ds-nl .ds-nl-signup h3 {
  font-size: 32px !important;
  line-height: 40px !important;
  font-weight: 400 !important;
  margin: 32px 0 12.8px !important;
  color: rgba(25, 24, 35, 0.9);
}

.ds-nl .ds-nl-signup p {
  font-size: 18px;
  line-height: 27px;
  margin: 18px 0;
}

.ds-nl a.ds-nl-btn {
  display: flex;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  height: 56px;
  padding: 16px 24px;
  font-size: 16px;
  line-height: 24px;
  font-weight: 500;
  color: rgb(76, 0, 255) !important;
  border: 1px solid rgb(76, 0, 255) !important;
  border-radius: 8px;
  text-decoration: none !important;
}

.ds-nl a.ds-nl-btn:hover {
  background: rgba(76, 0, 255, 0.06);
}
.ds-nl a.ds-nl-btn:focus-visible {
  background: rgba(76, 0, 255, 0.06);
}

:is(.dark, [data-theme="dark"]) .ds-nl,
:is(.dark, [data-theme="dark"]) .ds-nl .ds-nl-signup h3 {
  color: #fff;
}

/* /success: live tiles are 460px squares (no border/radius), 2 per row pushed to the column edges,
   11px between rows, 72px logo, 36/42 title. Hover is a static darker shade. */
.success-stories-grid.ds-success-grid {
  grid-template-columns: repeat(2, 460px);
  justify-content: space-between;
  gap: 11px 0;
  width: calc(100% - 96px);
  max-width: 976px;
  padding: 0;
  margin: 89px auto 80px;
}
.ds-success-grid .success-card {
  border: 0;
  border-radius: 0;
}
.ds-success-grid .success-card-bg,
.ds-success-grid .success-card-icon,
.ds-success-grid .success-card-title {
  transition: none;
}
.ds-success-grid .success-card:hover .success-card-bg,
.ds-success-grid .success-card:hover .success-card-icon,
.ds-success-grid .success-card:hover .success-card-title {
  filter: none;
  transform: none;
}
.ds-success-grid .success-card:focus-within .success-card-bg,
.ds-success-grid .success-card:focus-within .success-card-icon,
.ds-success-grid .success-card:focus-within .success-card-title {
  filter: none;
  transform: none;
}
.ds-success-grid .success-card:hover .success-card-overlay {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.65));
}
.ds-success-grid .success-card:focus-within .success-card-overlay {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.65));
}
.ds-success-grid .success-card-overlay {
  gap: 25px;
}
.ds-success-grid .success-card-icon {
  height: 72px;
  max-width: 305px;
  padding: 0;
  border-radius: 0;
}
body .ds-success-grid .success-card-title {
  font-size: 36px;
  line-height: 42px;
  font-weight: 400;
  text-shadow: none;
}
@media (max-width: 1100px) {

  .success-stories-grid.ds-success-grid {
    grid-template-columns: repeat(2, minmax(0, 460px));
  }

}

/* /developer-spotlight: live "Display" year filter + 305x384 person cards, 3 per row,
   20px column / 38px row gap, 16px inset in the 1008px column. */
.ds-spot-filter,
.ds-spot-grid {
  width: calc(100% - 96px);
  max-width: 976px;
  margin-left: auto;
  margin-right: auto;
}
.ds-spot-filter {
  display: flex;
  flex-direction: column;
  margin-top: 64px;
}
.ds-spot-filter label {
  font-size: 18px;
  line-height: 24px;
  font-weight: 500;
  color: rgb(80, 86, 91);
  margin-bottom: 8px;
}
.ds-spot-filter select {
  cursor: pointer;
  width: 288px;
  height: 40px;
  padding: 0 32px 0 16px;
  font-size: 16px;
  line-height: 24px;
  color: rgba(25, 24, 35, 0.9);
  border: 1px solid rgba(25, 24, 35, 0.65);
  border-radius: 2px;
  -webkit-appearance: none;
  appearance: none;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 7.5l5 5 5-5' fill='none' stroke='%23191823' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 6px center / 20px 20px;
}
.ds-spot-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 305px));
  gap: 38px 20px;
  margin-top: 86px;
  margin-bottom: 80px;
}
a.ds-spot-card {
  display: flex;
  flex-direction: column;
  min-height: 384px;
  color: #000 !important;
  text-decoration: none !important;
  border: 0 !important;
}
.ds-spot-card .external-link-icon,
.ds-spot-card svg.lucide-external-link {
  display: none !important;
}
.ds-spot-card img {
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: 305 / 205 !important;
  object-fit: cover;
  margin: 0 0 32px !important;
  border-radius: 0 !important;
}
.ds-spot-card > span {
  padding: 0 12px;
}
.ds-spot-role {
  font-size: 12px;
  line-height: 18px;
  color: rgba(25, 24, 35, 0.65);
}
.ds-spot-name {
  font-size: 24px;
  line-height: 30px;
  color: rgba(25, 24, 35, 0.9);
  margin-bottom: 5px;
}
.ds-spot-meta {
  font-size: 14px;
  line-height: 16px;
  margin-top: 15px;
}
.ds-spot-sep {
  margin: 0 8px;
  padding: 0 !important;
  color: rgba(25, 24, 35, 0.15);
}
.ds-spot-date {
  font-size: 14px;
  line-height: 21px;
  margin-top: 8px;
  color: rgba(25, 24, 35, 0.9);
}
.ds-spot-card:hover {
  background: rgba(25, 24, 35, 0.05);
}
.ds-spot-card:focus-visible {
  background: rgba(25, 24, 35, 0.05);
}
.ds-spot-card:hover .ds-spot-name {
  color: rgb(0, 105, 236);
}
.ds-spot-card:focus-within .ds-spot-name {
  color: rgb(0, 105, 236);
}
:is(.dark, [data-theme="dark"]) a.ds-spot-card,
:is(.dark, [data-theme="dark"]) :is(.ds-spot-name, .ds-spot-date) {
  color: #fff !important;
}
:is(.dark, [data-theme="dark"]) .ds-spot-role,
:is(.dark, [data-theme="dark"]) .ds-spot-filter label {
  color: rgba(255, 255, 255, 0.65);
}
:is(.dark, [data-theme="dark"]) .ds-spot-sep {
  color: rgba(255, 255, 255, 0.3);
}
:is(.dark, [data-theme="dark"]) .ds-spot-filter select {
  color: #fff;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 7.5l5 5 5-5' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 6px center / 20px 20px;
  border-color: rgba(255, 255, 255, 0.65);
}
:is(.dark, [data-theme="dark"]) .ds-spot-card:hover {
  background: rgba(255, 255, 255, 0.06);
}
:is(.dark, [data-theme="dark"]) .ds-spot-card:focus-visible {
  background: rgba(255, 255, 255, 0.06);
}
:is(.dark, [data-theme="dark"]) .ds-spot-card:hover .ds-spot-name {
  color: #cbc2ff !important;
}
:is(.dark, [data-theme="dark"]) .ds-spot-card:focus-within .ds-spot-name {
  color: #cbc2ff !important;
}

/* Live "StyledLink" (ds-styled-link): no underline, chevron (internal) or
   external glyph (http) after the text, 16/24px, one per row with 24px gaps. */
.ds-styled-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  margin: 24px 0;
}
body a.ds-styled-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  line-height: 24px;
  text-decoration: none !important;
  border-bottom: 0 !important;
}
body a.ds-styled-link:hover {
  text-decoration: underline !important;
}
body a.ds-styled-link:focus-visible {
  text-decoration: underline !important;
}
a.ds-styled-link svg {
  display: none !important;
}
a.ds-styled-link::after {
  content: "";
  flex: none;
  width: 16px;
  height: 16px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m8.34 16 5.41-5.41a.82.82 0 0 0 0-1.18L8.34 4 7 5.34 11.66 10 7 14.66z'/%3E%3C/svg%3E") center / 16px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m8.34 16 5.41-5.41a.82.82 0 0 0 0-1.18L8.34 4 7 5.34 11.66 10 7 14.66z'/%3E%3C/svg%3E") center / 16px no-repeat;
}
a.ds-styled-link[href^="http"]::after {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 13v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h7v2H5v10h10v-6zm3-10h-7v2h4.66L8 14.66 9.34 16 19 6.34V11h2V4a1 1 0 0 0-1-1z'/%3E%3C/svg%3E") center / 16px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 13v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h7v2H5v10h10v-6zm3-10h-7v2h4.66L8 14.66 9.34 16 19 6.34V11h2V4a1 1 0 0 0-1-1z'/%3E%3C/svg%3E") center / 16px no-repeat;
}

/* /docs/sdks: IAM SDKs card has one link per language (live has no card-wide link). */
.ds-hero-body.ds-sdks-body {
  margin-top: 56px;
}
.ds-api-cell.ds-sdk-multi .fern-card {
  padding-bottom: 104px !important;
}
.ds-hero-body .ds-api-cell > .ds-sdk-links {
  position: absolute;
  z-index: 1;
  left: 24px;
  bottom: 24px;
  display: flex;
  flex-direction: column;
}
.ds-hero-body .ds-api-cell > .ds-sdk-links > a.ds-api-ref {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  width: fit-content;
  font-size: 16px;
  line-height: 24px;
}
.ds-hero-body .ds-api-cell > .ds-sdk-links > a.ds-api-ref:hover {
  text-decoration: underline !important;
}
.ds-hero-body .ds-api-cell > .ds-sdk-links > a.ds-api-ref:focus-visible {
  text-decoration: underline !important;
}
.ds-api-cell.ds-sdk-multi:hover .fern-card {
  box-shadow: none;
}
.ds-api-cell.ds-sdk-multi:focus-within .fern-card {
  box-shadow: none;
}

/* API playground: cURL only. `settings.http-snippets: false` trims the endpoint
   page dropdown, but the explorer's request card always renders
   cURL/JavaScript/Python buttons, so hide everything after cURL. */
.fern-explorer-request-header .fern-button-group > .fern-button:not(:first-child) {
  display: none !important;
}

/* Postman collections page (/tools/postman): matches live developers.docusign.com */
.ds-pm-setup {
  display: inline-flex;
  align-items: center;
  margin: 8px 0 16px;
  padding: 16px 24px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: #4c00ff;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  cursor: pointer;
}
.ds-pm-setup:hover {
  background: #26065d;
}
.ds-pm-setup:focus-visible {
  background: #26065d;
}
.ds-pm-run {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 42px;
  padding: 8px 24px;
  border: 1px solid transparent;
  border-radius: 2px;
  background: #f16700;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  white-space: nowrap;
  cursor: pointer;
}
.ds-pm-run:hover {
  background: #fb7c00;
}
.ds-pm-run:focus-visible {
  background: #fb7c00;
}
.ds-pm-modal {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 80px 16px 16px;
  overflow-y: auto;
}
.ds-pm-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(255, 255, 255, 0.9);
}
.ds-pm-backdrop-dark {
  background: rgba(0, 0, 0, 0.5);
}
.ds-pm-panel {
  position: relative;
  width: 640px;
  max-width: 100%;
  border: 1px solid rgba(25, 24, 35, 0.15);
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 32px 64px rgba(25, 24, 35, 0.15);
  color: rgba(25, 24, 35, 0.9);
  font-size: 16px;
  line-height: 24px;
}
.ds-pm-close {
  position: absolute;
  top: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: rgba(25, 24, 35, 0.65);
  cursor: pointer;
}
.ds-pm-close:hover {
  background: rgba(25, 24, 35, 0.06);
}
.ds-pm-close:focus-visible {
  background: rgba(25, 24, 35, 0.06);
}
.ds-pm-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 80px 48px 30px;
}
.ds-pm-title {
  margin: 0 0 40px !important;
  font-size: 32px !important;
  font-weight: 600 !important;
  line-height: 40px !important;
  color: rgba(25, 24, 35, 0.9) !important;
}
.ds-pm-warning {
  display: flex;
  align-items: center;
  gap: 16px;
  align-self: stretch;
  margin-bottom: 40px;
  padding: 16px 24px;
  background: #ffd54f;
  color: #2c2a3b;
}
.ds-pm-warning svg {
  flex-shrink: 0;
  color: #191823;
}
.ds-pm-label {
  margin-bottom: 8px;
  font-weight: 500;
}
.ds-pm-label span {
  margin-left: 8px;
  color: #d0021b;
}
.ds-pm-input {
  align-self: stretch;
  height: 40px;
  margin-bottom: 32px;
  padding: 0 16px;
  border: 1px solid rgba(25, 24, 35, 0.65);
  border-radius: 2px;
  background: #fff;
  color: rgba(25, 24, 35, 0.9);
  font-size: 16px;
}
select.ds-pm-input {
  padding-right: 32px;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='5' viewBox='0 0 10 5' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h10L5 5z' fill='%23191823'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}
.ds-pm-create {
  align-self: stretch;
  height: 45px;
  margin-top: 0;
  border: 1px solid transparent;
  border-radius: 8px;
  background: #4c00ff;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
}
.ds-pm-create:disabled {
  background: #b9d6fa;
  cursor: not-allowed;
}
.ds-pm-done {
  margin: 0 0 32px !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  line-height: 28px !important;
}
.ds-pm-modal-center {
  align-items: center;
}
.ds-pm-fork {
  width: 440px;
  padding: 24px;
  border-radius: 4px;
  font-size: 13px;
  line-height: 20px;
}
.ds-pm-fork-title {
  margin: 8px 0 16px !important;
  font-size: 20px !important;
  font-weight: 500;
  line-height: 28px !important;
}
.ds-pm-fork li,
.ds-pm-fork-view {
  font-size: 13px !important;
  line-height: 20px !important;
}
.ds-pm-fork-list {
  margin: 0 0 24px !important;
  padding-left: 16px !important;
  color: #4b4b55;
}
.ds-pm-fork-view {
  margin: 0 0 24px !important;
}
.ds-pm-fork-view a {
  color: inherit;
  text-decoration: underline;
}
.ds-pm-fork-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}
.ds-pm-cancel,
.ds-pm-fork-btn {
  height: 32px;
  padding: 0 12px;
  border: 0;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
}
.ds-pm-cancel {
  background: #ededed;
  color: #212121;
}
.ds-pm-fork-btn {
  background: #ff6c37;
  color: #fff;
}
.ds-pm-fork-btn:hover {
  background: #e05320;
}
.ds-pm-fork-btn:focus-visible {
  background: #e05320;
}

/* Get-started toolkit pages: live's dark "Starter Kit" banner with the stairs illustration on the right. */
body:has(.ds-kit-hero) h1.fern-page-heading {
  display: none;
}
.ds-kit-hero {
  position: relative;
  overflow: hidden;
  min-height: 350px;
  margin: 0 0 40px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  color: #fff;
  background: linear-gradient(110deg, #5e4b7e 0%, #40325b 100%);
}
.ds-kit-hero > img.ds-kit-hero-art {
  position: absolute;
  top: 0;
  right: 0;
  height: 100% !important;
  width: auto !important;
  max-width: 45% !important;
  margin: 0 !important;
  object-fit: contain;
  object-position: right center;
  pointer-events: none;
}
.ds-kit-hero-content {
  position: relative;
  z-index: 1;
  max-width: 570px;
  padding: 40px 48px;
}
body .ds-kit-hero h1.ds-kit-hero-title,
body:not(:has(.hero-section)) .fern-prose .ds-kit-hero h1.ds-kit-hero-title {
  margin: 0 0 16px !important;
  color: #fff !important;
  font-size: clamp(40px, 4.6vw, 69px) !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
}
.ds-kit-hero p.ds-kit-hero-text {
  margin: 0;
  color: #fff;
  font-size: 20px;
  line-height: 30px;
  font-weight: 400;
}
@media (max-width: 768px) {

  .ds-kit-hero > img.ds-kit-hero-art { opacity: 0.35; max-width: 70% !important; }
  .ds-kit-hero-content { padding: 32px 24px; }

}

/* Agreement Desk: live shows a "Limited Availability" label above the sidebar */
.fern-sidebar-group > li:has(> a.fern-sidebar-link[href="/docs/agreement-desk-api/reference"])::before {
  content: "Limited Availability";
  display: block;
  margin: 0 0 0.5rem 0.5rem;
  color: #4c00fb;
  font-size: 12px;
  font-weight: 600;
}

/* Live "collapsible step" subtitle (example-use-case): grey line under the accordion title. */
.ds-step-head {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: left;
}
.ds-step-sub {
  font-size: 12px;
  line-height: 16px;
  font-weight: 400;
  color: rgba(25, 24, 35, 0.65);
}
:is(.dark, [data-theme="dark"]) .ds-step-sub {
  color: rgba(255, 255, 255, 0.65);
}

/* API overview pages: intro + "Places to start" on the left, overview graphic on the right (like live). */
.ds-api-intro {
  display: flex;
  align-items: flex-start;
  gap: 32px;
}
.ds-api-intro-text {
  flex: 1 1 0;
  min-width: 0;
}
.ds-api-intro-img {
  flex: 1 1 0;
  min-width: 0;
  padding-top: 8px;
}
.ds-api-intro-img img {
  width: 100%;
  height: auto;
}
@media (max-width: 768px) {

  .ds-api-intro {
    flex-direction: column;
    gap: 0;
  }

}

/* ===== Qualtrics "Was this content helpful?" (fern/assets/qualtrics-feedback.js) ===== */
#qualtrics-footer-feedback {
  margin-bottom: 1.5rem;
}
#qualtrics-footer-feedback:empty {
  display: none;
}
main.fern-main > .w-screen > #qualtrics-footer-feedback {
  max-width: 1008px;
  margin: 0 auto;
  padding: 2rem 1rem 0;
}

/* ===== Integration Guide Selector (PartnerGuideSelector.tsx) =====
   Measured on live /partner/partner-implementation-overview at 1568px:
   800px panel, 32px step dots (#0069ec active, dark + check when done),
   24px/600 question, radio list, #4c00ff Next / View guide, #0069ec links. */
.ds-gs-start {
  border: 0;
  cursor: pointer;
}
.ds-gs-panel {
  display: flex;
  flex-direction: column;
  width: 800px;
  max-height: calc(100vh - 96px);
  font-family: inherit;
}
.ds-gs-steps {
  display: flex;
  justify-content: center;
  margin: 0 !important;
  padding: 41px 48px 8px !important;
  list-style: none !important;
}
.ds-gs-steps > li {
  position: relative;
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 !important;
  padding: 0 !important;
}
.ds-gs-steps > li::before {
  content: none !important;
}
.ds-gs-steps > li + li::after {
  content: "";
  position: absolute;
  top: 16px;
  left: calc(-50% + 24px);
  right: calc(50% + 24px);
  height: 1px;
  background: rgba(25, 24, 35, 0.9);
}
.ds-gs-dot {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin-top: 2px;
  border-radius: 50%;
  background: rgba(25, 24, 35, 0.9);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
}
.ds-gs-steps > li.is-active .ds-gs-dot {
  background: #0069ec;
}
.ds-gs-label {
  margin-top: 9px;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  color: rgba(25, 24, 35, 0.9);
  text-align: center;
}
.ds-gs-steps > li.is-active .ds-gs-label {
  font-weight: 700;
  color: #0069ec;
}
.ds-gs-body {
  padding: 40px 48px 40px;
  overflow-x: hidden;
  overflow-y: auto;
}
.ds-gs-question {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.ds-gs-question legend {
  margin: 0 0 24px;
  padding: 0;
  font-size: 24px;
  font-weight: 600;
  line-height: 30px;
  color: rgba(25, 24, 35, 0.9);
}
.ds-gs-answer {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 15px;
  font-size: 16px;
  line-height: 24px;
  color: rgba(25, 24, 35, 0.9);
  cursor: pointer;
}
.ds-gs-answer input {
  flex: none;
  margin: 0 0 0 5px;
  accent-color: #0069ec;
  cursor: pointer;
}
.ds-gs-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 31px;
}
.ds-gs-actions .ds-cta {
  margin: 0;
}
.ds-gs-next {
  border: 0;
  cursor: pointer;
}
.ds-gs-next:disabled {
  background: #0069ec;
  opacity: 0.3;
  cursor: default;
}
.ds-gs-link {
  padding: 8px 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: 16px;
  line-height: 24px;
  color: #0069ec;
  cursor: pointer;
}
.ds-gs-link:hover {
  text-decoration: underline;
}
.ds-gs-link:focus-visible {
  text-decoration: underline;
}
.ds-gs-result {
  padding-bottom: 0;
}
.ds-gs-result h3 {
  margin: 0 !important;
  font-size: 20px !important;
  font-weight: 600 !important;
  line-height: 25px !important;
  color: rgba(25, 24, 35, 0.9) !important;
}
.ds-gs-result h4 {
  margin: 32px 0 0 !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 20px !important;
  color: rgba(25, 24, 35, 0.9) !important;
}
.ds-gs-result p {
  margin: 16px 0 0;
}
.ds-gs-result p a {
  color: #0000ee;
  text-decoration: underline;
}
.ds-gs-result ul {
  margin: 16px 0 0;
  padding-left: 40px;
  list-style: disc;
}
.ds-gs-result li {
  margin: 0 0 9px;
}
.ds-gs-footer {
  margin: 0;
  padding: 16px 48px 40px;
}
.ds-gs-footer.is-split {
  margin-top: 16px;
  border-top: 1px solid rgba(25, 24, 35, 0.15);
}
.ds-gs-option {
  border-bottom: 1px solid rgba(25, 24, 35, 0.15);
}
.ds-gs-option:first-of-type {
  border-top: 1px solid rgba(25, 24, 35, 0.15);
}
.ds-gs-option-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 16px 20px 16px 24px;
  border: 0;
  background: transparent;
  color: rgba(25, 24, 35, 0.65);
  text-align: left;
  cursor: pointer;
}
.ds-gs-option.is-open .ds-gs-option-head,
.ds-gs-option-head:hover {
  background: rgba(25, 24, 35, 0.1);
}
.ds-gs-option-head:focus-visible {
  background: rgba(25, 24, 35, 0.1);
}
.ds-gs-option-body {
  padding: 24px 24px 16px;
}
.ds-gs-option-body h4 {
  margin: 0 !important;
}
.ds-gs-option-body .ds-cta {
  margin: 16px 0 0;
}
@media (max-width: 640px) {

  .ds-gs-modal {
    padding: 24px 12px 12px;
  }
  .ds-gs-panel {
    max-height: calc(100vh - 36px);
  }
  .ds-gs-steps {
    padding: 41px 16px 8px !important;
  }
  .ds-gs-body {
    padding: 32px;
  }
  .ds-gs-question legend,
  .ds-gs-result h3 {
    font-size: 16px;
    line-height: 24px;
  }

}


/* ===== eSignature Quickstart wizard (components/EsignQuickstart.tsx) =====
   Port of the live <ds-quickstart>: 1px rgba(25,24,35,.15) step dividers, 64px step headers
   (16px 16px 16px 24px padding, active header rgba(25,24,35,.1) fill), 32px black number
   circles, 24px/600 step titles; disabled steps at 30% opacity. */
.ds-qs {
  margin: 32px 0;
  border-bottom: 1px solid rgba(25, 24, 35, 0.15);
  color: rgba(25, 24, 35, 0.9);
  font-size: 16px;
  line-height: 24px;
}
.ds-qs-step {
  border-top: 1px solid rgba(25, 24, 35, 0.15);
}
.ds-qs-step-head {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  min-height: 64px;
  padding: 16px 16px 16px 24px;
  background: transparent;
  border: 0;
  text-align: left;
  cursor: pointer;
  color: inherit;
}
.ds-qs-step.is-open .ds-qs-step-head {
  background: rgba(25, 24, 35, 0.1);
}
.ds-qs-step-head:hover:not(:disabled) {
  background: rgba(25, 24, 35, 0.06);
}
.ds-qs-step-head:focus-visible:not(:disabled) {
  background: rgba(25, 24, 35, 0.06);
}
.ds-qs-step.is-open .ds-qs-step-head:hover {
  background: rgba(25, 24, 35, 0.1);
}
.ds-qs-step.is-open .ds-qs-step-head:focus-visible {
  background: rgba(25, 24, 35, 0.1);
}
.ds-qs-step-head:disabled {
  cursor: default;
}
.ds-qs-step.is-disabled .ds-qs-step-head > * {
  opacity: 0.3;
}
.ds-qs-step-num {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 100%;
  background: #191823;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
}
.ds-qs-step.is-done:not(.is-open) .ds-qs-step-num {
  background: #008938;
}
.ds-qs-step-title {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 24px;
}
.ds-qs-step-title h2 {
  margin: 0 !important;
  padding: 0 !important;
  font-size: 24px !important;
  font-weight: 600 !important;
  line-height: 30px !important;
  color: rgba(25, 24, 35, 0.9) !important;
  border: 0 !important;
}
.ds-qs-step-summary {
  font-size: 16px;
  line-height: 24px;
}
.ds-qs-step-chevron {
  flex: none;
  width: 10px;
  height: 10px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  margin: 0 8px 4px;
}
.ds-qs-step.is-open .ds-qs-step-chevron {
  transform: rotate(-135deg);
  margin-bottom: -4px;
}
.ds-qs-step-body {
  padding: 16px 24px 16px;
}
.ds-qs-step-body p {
  margin: 0 0 30px;
}
.ds-qs-step-body .ds-qs-newuser {
  margin: 30px 0 0;
}
.ds-qs .ds-qs-btn {
  border: 1px solid transparent;
  cursor: pointer;
  margin: 0;
}
.ds-qs .ds-qs-btn:disabled {
  background: rgba(25, 24, 35, 0.1);
  color: rgba(25, 24, 35, 0.4) !important;
  cursor: default;
}
.ds-qs-input {
  margin: -14px 0 24px;
}
.ds-qs-input input {
  width: 409px;
  max-width: 100%;
  height: 40px;
  padding: 8px 12px;
  border: 1px solid rgba(25, 24, 35, 0.4);
  border-radius: 4px;
  font: inherit;
  background: #fff;
  color: #191823;
}
.ds-qs-input input[aria-invalid="true"] {
  border-color: #d21c35;
}
.ds-qs-error {
  display: block;
  margin-top: 4px;
  color: #d21c35;
  font-size: 14px;
}
.ds-qs-languages {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin: -6px 0 30px;
}
.ds-qs-language {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 112px;
  height: 112px;
  border: 1px solid rgba(25, 24, 35, 0.15);
  border-radius: 8px;
  background: #fff;
  color: #191823;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}
.ds-qs-language-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
}
.ds-qs-language-icon img {
  max-height: 50px;
  max-width: 70px;
  margin: 0 !important;
}
.ds-qs-language:hover,
.ds-qs-project:hover {
  border-color: rgba(25, 24, 35, 0.4);
}
.ds-qs-language:focus-visible,
.ds-qs-project:focus-visible {
  border-color: rgba(25, 24, 35, 0.4);
}
.ds-qs-language.is-selected,
.ds-qs-project.is-selected {
  border: 2px solid #4c00ff;
  background: rgba(76, 0, 255, 0.04);
}
.ds-qs-projects {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: -6px 0 30px;
}
.ds-qs-project {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(25, 24, 35, 0.15);
  border-radius: 8px;
  background: #fff;
  color: rgba(25, 24, 35, 0.9);
  font-size: 16px;
  line-height: 24px;
  text-align: left;
  cursor: pointer;
}
.ds-qs-project > span:last-child {
  display: flex;
  flex-direction: column;
}
.ds-qs-project b {
  font-weight: 600;
}
.ds-qs-radio {
  flex: none;
  width: 18px;
  height: 18px;
  margin-top: 3px;
  border: 2px solid rgba(25, 24, 35, 0.4);
  border-radius: 100%;
}
.ds-qs-project.is-selected .ds-qs-radio {
  border: 5px solid #4c00ff;
}
.ds-qs-notice {
  margin: -14px 0 24px;
  padding: 12px 16px;
  border-radius: 4px;
  background: #f0ebff;
  color: #191823;
}
.ds-qs-line {
  display: block;
}
.ds-qs .ds-qs-concluding {
  margin: 30px 0 0;
}
.ds-qs-link {
  padding: 0;
  border: 0;
  background: none;
  color: #054ada;
  font: inherit;
  cursor: pointer;
}
.ds-qs-ready {
  border: 1px solid rgba(25, 24, 35, 0.15);
  padding: 0 0 24px;
}
.ds-qs-ready-top {
  background: #191823;
  padding: 25px 25px 45px;
  margin-bottom: 24px;
}
.ds-qs-ready-top h1 {
  margin: 0 !important;
  color: #fff !important;
}
.ds-qs-ready h3,
.ds-qs-ready ol,
.ds-qs-ready .ds-qs-concluding {
  margin-left: 24px;
  margin-right: 24px;
}

/* Use case pages (`<div className="ds-use-case" />` marker): screenshots at
   live's ~472px column width and the intro video at a readable size instead
   of the full article width. Zoom-on-click still shows the full image. */
article:has(.ds-use-case) img {
  max-width: min(100%, 480px);
  height: auto;
}

article:has(.ds-use-case) iframe.ds-use-case-video {
  display: block;
  max-width: 640px;
  margin: 0 auto;
}

/* Left nav runs down beside the footer instead of the footer spanning under it.
   Pages without a sidebar (custom/page layouts, changelog) keep a full-width footer. */
@media (min-width: 1024px) {

  body:has(.fern-main :is(.fern-layout-guide, .fern-layout-reference, .fern-layout-overview)) #fern-sidebar[data-viewport="desktop"][data-state="sticky"] {
    position: fixed;
    top: var(--header-height);
    bottom: 0;
    left: 0;
    height: auto;
    align-self: stretch;
    margin-bottom: 0;
  }

  body:has(.fern-main :is(.fern-layout-guide, .fern-layout-reference, .fern-layout-overview)) .fern-main > #fern-sidebar-spacer {
    display: block;
  }

  body:has(.fern-main :is(.fern-layout-guide, .fern-layout-reference, .fern-layout-overview)) #fern-footer {
    margin-left: var(--sticky-aside-width);
  }

}
