:root {
  /* Border */
  --border: 0.0625rem solid var(--color-border);
  --border-card: var(--border);
  --border-code: var(--border);

  /* Colors */
  --gray-1: #202224;
  --gray-2: #2d2d2d;
  --gray-3: #555759;
  --gray-4: #6e7072;
  --gray-5: #848688;
  --gray-6: #aaacae;
  --gray-7: #c6c8ca;
  --gray-8: #dcdee0;
  --gray-9: #f0f1f2;
  --gray-10: #f8f8f8;
  --turq-light: #5dc9e2;
  --turq-med: #50b7e0;
  --turq-dark: #007d9c;
  --turq-bright: #00769c;
  --abbey: #3f4042;
  --blue: #bfeaf4;
  --blue-light: #f2fafd;
  --black-1: #000;
  --black-2: #111111;
  --deep-cerulian: #007f9f;
  --green: #3a6e11;
  --green-light: #5fda64;
  --pink: #c85e7a;
  --pink-light: #fdecf1;
  --purple: #542c7d;
  --shark: #2b2d2f;
  --slate: #253443; /* Footer background. */
  --tundora: #414141;
  --white: #fff;
  --yellow: #fddd00;
  --yellow-light: #fff8cc;
  --testimonial: #007f9f;

  /* Color Intents */
  --color-brand-primary: var(--turq-dark);
  --color-background: var(--white);
  --color-background-inverted: var(--slate);
  --color-background-accented: var(--gray-10);
  --color-background-highlighted: var(--blue);
  --color-background-highlighted-link: var(--blue-light);
  --color-background-info: var(--gray-9);
  --color-background-warning: var(--yellow-light);
  --color-background-alert: var(--pink-light);
  --color-background-banner: var(--turq-dark);
  --color-background-card-footer: var(--gray-10);
  --color-background-carousel-button: var(--white);
  --color-background-code: var(--gray-10);
  --color-background-logo: rgba(248, 248, 248, 0.9);
  --color-background-playground-input: #ffffdd;
  --color-background-testimonial: var(--deep-cerulian);
  --color-border: var(--gray-7);
  --color-text: var(--gray-1);
  --color-text-link: var(--turq-dark);
  --color-text-subtle: var(--gray-4);
  --color-text-inverted: var(--white);
  --color-text-alert: #aa536c;
  --color-code-comment: var(--green);
  --color-bright-text-link: var(--turq-bright);
  --color-diff-old: #ffe0e0;
  --color-diff-new: #e0ffe0;

  /* Interactive Colors */
  --color-input: var(--color-background);
  --color-input-text: var(--color-text);
  --color-button: var(--turq-dark);
  --color-button-disabled: var(--gray-9);
  --color-button-text: var(--white);
  --color-button-text-disabled: var(--gray-3);
  --color-button-inverted: var(--color-background);
  --color-button-inverted-disabled: var(--color-background);
  --color-button-inverted-text: var(--color-brand-primary);
  --color-button-inverted-text-disabled: var(--color-text-subtle);
  --color-button-accented: var(--yellow);
  --color-button-accented-disabled: var(--gray-9);
  --color-button-accented-text: var(--gray-1);
  --color-button-accented-text-disabled: var(--gray-3);
}
[data-theme='dark'] {
  --border-card: 0.0625rem solid transparent;
  --border-code: 0.0625rem solid var(--tundora);

  --color-brand-primary: var(--turq-dark);
  --color-background: var(--gray-1);
  --color-background-accented: var(--gray-2);
  --color-background-highlighted: var(--gray-2);
  --color-background-highlighted-link: var(--gray-2);
  --color-background-info: var(--gray-3);
  --color-background-warning: var(--yellow);
  --color-background-alert: var(--pink);
  --color-background-banner: rgba(0, 125, 156, 0.75);
  --color-background-banner-secondary: rgba(248, 248, 248, 0.9);
  --color-background-card-footer: var(--gray-1);
  --color-background-carousel-button: var(--gray-5);
  --color-background-code: var(--shark);
  --color-background-logo: rgba(248, 248, 248, 0.9);
  --color-background-playground-input: var(--slate);
  --color-background-testimonial: var(--gray-2);
  --color-button-text-disabled: var(--gray-6);
  --color-border: var(--gray-4);
  --color-text: var(--gray-9);
  --color-text-link: var(--turq-med);
  --color-text-subtle: var(--gray-7);
  --color-text-alert: #e67193;
  --color-code-comment: var(--green-light);
  --color-bright-text-link: var(--turq-med);
  --color-diff-old: #703030;
  --color-diff-new: #306030;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) {
    --border-card: 0.0625rem solid transparent;
    --border-code: 0.0625rem solid var(--tundora);

    --color-brand-primary: var(--turq-dark);
    --color-background: var(--gray-1);
    --color-background-accented: var(--gray-2);
    --color-background-highlighted: var(--gray-2);
    --color-background-highlighted-link: var(--gray-2);
    --color-background-info: var(--gray-3);
    --color-background-warning: var(--yellow);
    --color-background-alert: var(--pink);
    --color-background-banner: rgb(0, 125, 156, 0.75);
    --color-background-banner-secondary: rgba(248, 248, 248, 0.9);
    --color-background-card-footer: var(--gray-1);
    --color-background-carousel-button: var(--gray-5);
    --color-background-code: var(--shark);
    --color-background-logo: rgba(248, 248, 248, 0.9);
    --color-background-playground-input: var(--slate);
    --color-background-testimonial: var(--gray-2);
    --color-button-primary: var(--yellow-primary);
    --color-button-text-disabled: var(--gray-6);
    --color-border: var(--gray-4);
    --color-text: var(--gray-9);
    --color-text-link: var(--turq-med);
    --color-text-subtle: var(--gray-7);
    --color-text-alert: #e67193;
    --color-code-comment: var(--green-light);
    --color-bright-text-link: var(--turq-med);
    --color-diff-old: #703030;
    --color-diff-new: #306030;
  }
}

*,
:before,
:after {
  box-sizing: border-box;
}
@media (prefers-color-scheme: dark) {
  [data-theme='auto'] .DarkMode-img {
    display: block;
  }
  [data-theme='auto'] .LightMode-img {
    display: none;
  }
}
@media (prefers-color-scheme: light) {
  [data-theme='auto'] .DarkMode-img {
    display: none;
  }
  [data-theme='auto'] .LightMode-img {
    display: block;
  }
}
[data-theme='dark'] .DarkMode-img {
  display: block;
}
[data-theme='dark'] .LightMode-img {
  display: none;
}
[data-theme='light'] .DarkMode-img {
  display: none;
}
[data-theme='light'] .LightMode-img {
  display: block;
}
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial,
    sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
  max-height: 100%;
  line-height: 1.4;
}
button,
input,
select,
textarea {
  font: inherit;
}
h1,
h2,
h3,
h4,
h5,
h6,
p,
ol,
ul {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
table {
  -webkit-border-horizontal-spacing: 0;
  -webkit-border-vertical-spacing: 0;
}
code,
pre,
.linedtextarea .lines div {
  font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
}
pre,
.linedtextarea .lines div {
  font-size: 0.83rem;
  overflow-x: auto;
}
/* Trim spaces to be more like plain text spaces in text like "Use <code>go get</code> to ...", but not in Markdown <pre> blocks. */
code {
  word-spacing: -0.5ch;
}
pre code {
  word-spacing: 0 !important;
}
pre {
  line-height: 1.4;
  overflow-x: auto;
}
pre .comment {
  color: var(--color-text-link);
}
pre .highlight,
pre .highlight-comment,
pre .selection-highlight,
pre .selection-highlight-comment {
  background: var(--yellow);
  color: var(--gray-1);
}
pre .selection,
pre .selection-comment {
  background: var(--yellow);
}
pre .ln {
  /* line number */
  color: #999;
}
pre ins {
  /* For styling highlighted code in examples. */
  color: rgb(0, 125, 156);
  font-weight: bold;
  text-decoration: none;
}
.ln {
  user-select: none;

  /* Ensure 8 characters in the document - which due to floating
   * point rendering issues, might have a width of less than 1 each - are 8
   * characters wide, so a tab in the 9th position indents properly. See
   * https://github.com/webcompat/web-bugs/issues/17530#issuecomment-402675091
   * for more information. */
  display: inline-block;
  width: 8ch;
}
html,
.Site {
  max-height: 100%;
  min-height: 100vh;
}
a,
a:link,
a:visited {
  color: var(--color-text-link);
  text-decoration: none;
}
a:hover,
a:focus {
  text-decoration: underline;
}
.Site {
  display: flex;
  flex-direction: column;
  margin: 0;
}
@media print {
  /* display: flex makes the printer slice text lines in half */
  .Site {
    display: block;
  }
}
.bluebg {
  background: var(--color-background-banner);
}
.SiteContent {
  background: var(--color-background);
  flex: 1;
}
.Site-footer {
  border-top: var(--border);
  color: var(--white);
  font-size: 0.875rem;
}
.Site-header {
  background: var(--color-brand-primary);
  border-bottom: none;
  box-shadow: 0 0.0625rem 0.125rem rgba(171, 171, 171, 0.3);
  top: 0;
  width: 100%;
  z-index: 10;
}
.CaseStudy-aboutBlock {
  background-color: var(--color-background-accented);
  border: var(--border);
  border-radius: 0.25rem;
  box-sizing: border-box;
  padding: 3.75rem 2rem 3.75rem;
}
.CaseStudy-aboutBlockTitle {
  color: var(--color-text);
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 3rem;
  margin-bottom: 0.6875rem;
}
.CaseStudy-aboutBlockImg {
  display: block;
  margin: 0 auto;
  max-height: 3.125rem;
}
.UseCase-halfColumn {
  color: var(--color-text);
  display: inline-block;
  font-size: 1rem;
  width: 100%;
}
@media only screen and (min-width: 48rem) {
  .UseCase-halfColumn {
    padding-right: 1.25rem;
    width: 50%;
  }
}
.UseCase-halfColumn > h2 {
  line-height: 1.55;
}
@media print {
  .Site-header,
  .Site-footer {
    display: none;
  }
}
.Header,
.Container {
  margin: 0 auto;
}
.Container {
  max-width: 75.75rem;
}
.Container--padded {
  padding: 0 1.5rem;
}
.Footer {
  background-color: #253443;
}
.Footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 2rem 1.5rem 2.625rem 1.5rem;
}
.Footer-linkColumn {
  flex: 0 0 9.5rem;
}
a.Footer-link {
  color: var(--white);
  display: flex;
  flex: 1;
  font-size: 0.875rem;
  line-height: 2rem;
}
a.Footer-link--primary {
  font-size: 1.125rem;
  line-height: 1.75rem;
  margin-bottom: 0.5rem;
  margin-top: 0.75rem;
}
.Footer-bottom {
  align-items: center;
  border-top: var(--border);
  display: flex;
  margin: 0 1.5rem;
  min-height: 4.125rem;
}
.Footer-gopher {
  align-self: flex-end;
  width: 5rem;
}
.Footer-listRow {
  display: flex;
  flex: 1;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: center;
}
.Footer-listItem {
  align-items: center;
  display: flex;
  flex: 1 100%;
  justify-content: center;
  margin: 0.4rem 0;
  padding: 0 1rem;
}
.Footer-listItem a:link,
.Footer-listItem a:visited {
  color: var(--white);
}
@media only screen and (min-width: 52rem) {
  .Footer-listItem {
    flex: initial;
  }
  .Footer-listItem + .Footer-listItem {
    border-left: var(--border);
  }
}
.go-Footer-listItem {
  color: var(--white);
  padding: 0;
}
.go-Icon {
  height: 1.125em;
  vertical-align: text-bottom;
  width: auto;
}
.go-Icon--inverted {
  filter: brightness(0) saturate(100%) invert(100%) sepia(97%) saturate(13%)
    hue-rotate(245deg) brightness(103%) contrast(107%);
  @media (forced-colors:active) and (prefers-color-scheme: light) {
    filter: brightness(500%) saturate(100%) invert(100%) sepia(97%) saturate(13%)
    hue-rotate(245deg) brightness(103%) contrast(107%);
  }
}
.Footer-feedbackButton {
  background: none;
  border: none;
  color: var(--white);
  font-size: 0.875rem;
  padding: 0;
}
.Footer-feedbackButton:hover {
  cursor: pointer;
  text-decoration: underline;
}
.Footer-googleLogo {
  align-self: flex-end;
  height: 1.5rem;
  margin-bottom: 1.3rem;
  text-align: right;
}
.Footer-googleLogoImg {
  height: 1.5rem;
}
.Container--fullBleed {
  margin: 0;
  max-width: none;
}
/* Start nav */
.Header-nav {
  align-items: center;
  display: flex;
  height: 3.5rem;
  justify-content: space-between;
}
.Header-rightContent {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: flex-end;
  width: 100%;
}
.Header--dark {
  border-bottom: none;
  color: var(--white);
}
.Header-logo {
  display: block;
  height: 2rem;
  margin-right: 2.25rem;
  width: 5.125rem;
}
.Header-logo--hidden {
  display: none;
}
.Header-logo--hidden {
  display: none;
}
.Header-menuItem {
  display: none;
  position: relative;
}
.Header-menuItem .js-desktop-menu-hover > i {
  pointer-events: none;
}
.Header-menu {
  align-items: stretch;
  display: flex;
  height: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
}

@media only screen and (min-width: 57.7rem) {
  .Header,
  .PlayPage {
    padding: 0 1.5rem;
  }
  .Header-menuItem {
    align-items: stretch;
    display: inline-flex;
    flex: none;
    margin: 0 0.3125rem;
  }
  .Header-menu {
    justify-content: flex-end;
  }
  .Header-navOpen {
    display: none;
  }
}
.Header-menuItem > a:link,
.Header-menuItem > a:visited {
  align-items: center;
  border-bottom: 0.1875rem solid transparent;
  border-top: 0.1875rem solid transparent; /* To ensure the text remains centered. */
  color: var(--color-text);
  display: inline-flex;
  padding: 0 1.5rem;
  text-align: center;
  text-decoration: none;
  width: 100%;
}
.Header--dark
  .Header-menuItem:hover
  > a:not(.forced-closed).js-desktop-menu-hover,
.Header--dark
  .Header-menuItem:focus-within
  > a:not(.forced-closed).js-desktop-menu-hover {
  background: var(--color-background);
  color: var(--color-text-link);
  border-color: var(--color-background);
}
.Header--dark .Header-menuItem a:link,
.Header--dark .Header-menuItem a:visited {
  color: var(--white);
}
.Header-menuItem--active a:link,
.Header-menuItem--active a:visited {
  border-bottom-color: #00add8;
  font-weight: bold;
}
.Header-menuItem a:hover {
  color: var(--color-text);
}
.Header-menuItem a:not(.forced-closed):hover {
  border-bottom-color: var(--white);
}
.Header-navOpen {
  background: no-repeat center/2rem url('/images/menu-24px.svg');
  border: none;
  height: 2.5rem;
  margin: auto 1rem;
  width: 2.5rem;
}
.Header-navOpen--white {
  background: no-repeat center/2rem url('/images/menu-24px-white.svg');
}
.skip-to-content-link {
  background: var(--color-background);
  border-radius: 6px;
  color: var(--color-text);
  font-weight: 500;
  margin: 5px;
  position: absolute;
  overflow: hidden;
  top: 12px;
  clip: rect(0 0 0 0);
  left: 8%;
}
.skip-to-content-link:focus {
  clip: unset;
}
.NavigationDrawer {
  background: var(--color-background);
  height: 100%;
  left: auto;
  max-width: 27rem;
  position: fixed;
  right: 0;
  top: 0;
  transform: translateX(100%);
  transition: transform 100ms ease-in-out;
  width: 85%;
  z-index: 20;
}
.NavigationDrawer-submenuItem {
  width: 100%;
}

.NavigationDrawer-submenuItem .NavigationDrawer-header {
  min-height: 4.0625rem;
  font-size: 1.375rem;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0.5rem;
  padding-left: 1.5rem;
  color: var(--color-text-link);
}

.NavigationDrawer.is-active {
  transform: translateX(0);
}
.NavigationDrawer-header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  border-bottom: 0.0625rem solid #eeeeee;
  margin-bottom: 0.5rem;
}
.NavigationDrawer-listItem.NavigationDrawer-hasSubnav > a i {
  float: right;
  margin-right: -0.5rem;
}
.NavigationDrawer-listItem.NavigationDrawer-hasSubnav
  .NavigationDrawer-header
  a {
  margin-left: 0;
}

.NavigationDrawer-listItem .material-icons {
  color: var(--color-text-link);
  margin-right: 0.5rem;
  display: inline-block;
  vertical-align: sub;
}

.NavigationDrawer-logo {
  display: block;
  height: 2rem;
  margin: 1rem 1rem;
  width: 5.125rem;
}
.NavigationDrawer-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.NavigationDrawer-listItem {
  font-size: 1.125rem;
  margin: 0 0.5rem;
  color: var(--color-text-subtle);
}
.NavigationDrawer-listItem > div:not(.NavigationDrawer),
.NavigationDrawer-listItem a:link,
.NavigationDrawer-listItem a:visited {
  display: block;
  margin: 0 1rem;
  padding: 0.5rem;
}
@media only screen and (max-width: 57.7rem) {
  .NavigationDrawer-listItem .Header-socialIcons {
    padding: 0.5rem 0;
  }

  .NavigationDrawer-listItem a.Header-socialIcon {
    padding: 0 0.5rem;
    margin: 0;
    display: inline-block;
  }
}

.NavigationDrawer-listItem--active {
  background-color: #bfeaf4;
  border-radius: 0.4rem;
}
.NavigationDrawer-scrim {
  display: none;
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 5;
}
.NavigationDrawer.is-active + .NavigationDrawer-scrim {
  background-color: rgba(0, 0, 0, 0.32);
  display: block;
}
.Header-submenu {
  padding: 1.5rem 1.5rem 0;
  list-style-type: none;
  background: transparent;
  visibility: hidden;
  opacity: 0;
  display: none;
  transition: all 0.2s ease;
  margin-top: 3.5rem;
  position: absolute;
  flex-direction: column;
  flex-wrap: wrap;
  color: var(--color-text);
  background-color: var(--color-background);
  border: 0.0625rem solid var(--color-brand-primary);
  border-width: 0 0.0625rem 0.0625rem;
}
.Header-menuItem:hover
  > .js-desktop-menu-hover:not(.forced-closed)
  ~ .Header-submenu,
.Header-menuItem:focus-within
  > .js-desktop-menu-hover:not(.forced-closed)
  ~ .Header-submenu {
  visibility: visible;
  opacity: 1;
  display: flex;
}
.Header-submenu .Header-submenuItem a:link,
.Header-submenu .Header-submenuItem a:visited {
  margin: 0;
  padding: 0;
  border-bottom: none;
  font-weight: 400;
}
.Header-submenu p {
  max-width: 15.5rem;
}
.Header-submenu a:link:hover,
.Header-submenu a:visited:hover {
  text-decoration: none;
  border-bottom: 0.125rem solid var(--color-text-link);
}

.Header-submenu .Header-submenuItem {
  padding-bottom: 1.5rem;
}

.Header-submenu .Header-submenuItem p {
  font-size: 0.875rem;
  color: var(--color-text-subtle);
  margin-top: 0.55rem;
  margin-bottom: 0;
}
.Header-submenu .Header-submenuItem i {
  margin-left: 0.25rem;
  transform: translateY(0.1rem); /* to get bottom alignment w/ text  */
  font-size: 0.75rem;
}
.Header-menuItem .Header-submenuItem a:link,
.Header-menuItem .Header-submenuItem a:visited {
  color: var(--color-text-link);
  display: inline-flex;
  align-items: baseline;
  margin-bottom: -0.125rem;
}
.Header-menu li:nth-child(1) .Header-submenu {
  width: 18.5rem;
  left: -1px;
}
.Header-menu li:nth-child(3) .Header-submenu {
  left: -12rem;
  height: 19.275rem;
  width: 37.25rem;
}
.Header-menu li:nth-child(5) .Header-submenu {
  right: -1px;
  height: 17.65rem;
  width: 37.25rem;
}
.Header-socialIcons {
  display: flex;
  flex-wrap: wrap;
}
.Header-menuItem a.Header-socialIcon {
  flex: 0 1 auto;
  display: inline-flex;
  width: auto;
}
.Header-menuItem a.Header-socialIcon:not(:last-child) {
  margin-right: 0.75rem;
}
[data-theme='dark'] .Header-socialIcon img[src$='/github.svg'] {
  filter: invert(1);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .Header-socialIcon img[src$='/github.svg'] {
    filter: invert(1);
  }
}
.Article {
  color: var(--color-text);
  margin: 0 auto 1.875rem;

  max-width: 75.75rem;
  padding: 0 1.5rem;
}
h1 + h2.subtitle {
  margin-top: -1rem;
  font-size: 1.2rem !important;
  margin-left: 1.25rem; /* note: matches TOC dl */
}
.Talks .author {
  margin-left: 1.25rem;
}
.Talks .author p {
  margin: 0;
}

.Article-author,
.Article-date {
  color: var(--color-text);
  font-size: 0.875rem;
}
.Article-date {
  color: var(--color-text-subtle);
}
.Article h1,
.Article h2,
.Article h3,
.Article h4,
.Article h5,
.Article h6 {
  color: var(--color-text);
}
.Article h1 {
  font-size: 2.25rem;
}
.Article h2 {
  font-size: 1.4rem;
}
.Article h3 {
  font-size: 1.125rem;
}
.Article h4,
.Article h5,
.Article h6 {
  font-size: 1rem;
}
.Article p,
.Article ul,
.Article ol {
  color: var(--color-text);
  font-size: 1rem;
  font-style: normal;
  font-weight: normal;
}
.Article ol .Article pre {
  background-color: var(--color-background-accented);
  border: var(--border);
  border-radius: 0.375rem;
  color: var(--color-text);
  font-size: 1rem;
  overflow-x: auto;
  padding: 1.5rem;
}
.Article pre {
  color: var(--color-text);
}
.Article pre {
  background: var(--color-background-accented);
}
.Article pre {
  padding: 0.5rem 1.75rem;
  border-radius: 4px;
}
.Article img {
  max-width: 100%;
}
.Article a.Article-idLink {
  opacity: 0;
}
.Article h1:hover a.Article-idLink,
.Article h2:hover a.Article-idLink,
.Article h3:hover a.Article-idLink,
.Article h4:hover a.Article-idLink,
.Article a.Article-idLink:hover {
  opacity: 1;
  padding: 0.2rem;
}
.CopyPaste {
  display: flex;
  align-items: center;
  padding: 0.5rem 1.75rem;
  border-radius: 4px;
}
.TabSection .CopyPaste {
  margin-right: 2.5rem;
}
.CopyPaste button {
  display: flex;
  padding: unset;
  background: none;
  border: none;
  margin-left: auto;
  cursor: copy;
}
.CopyPaste button img.CopyPaste-icon {
  margin-left: 1.5rem;
  background-color: unset;
}
.CopyPaste .CopyPaste-icon-dark {
  display: none;
}
[data-theme='dark'] .CopyPaste .CopyPaste-icon {
  display: none;
}
[data-theme='dark'] .CopyPaste .CopyPaste-icon-dark {
  display: block;
}
.Sidebar {
  display: none;
}
.Sidebar a {
  width: 7.5rem;
}
.Sidebar h4 {
  font-style: normal;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.5rem;
}
.Sidebar p, .Sidebar-faq .link {
  font-style: normal;
  font-weight: 400;
  font-size: 0.875rem;
  line-height: 1.5rem;
}
.Sidebar-faq h4 {
  font-size: 0.813rem;
  margin-top: 1.25rem;
  margin-bottom: 0.375rem;
}
.Sidebar-faq p {
  margin-top: 0;
  margin-bottom: 0.625rem;
}
.Sidebar-socialLinks {
  display: flex;
  align-items: center;
}
.Sidebar-socialLinks a {
  display: flex;
  width: unset;
  margin-right: 0.675rem;
}
@media screen and (min-width: 78rem) {
  .Article-columns {
    display: flex;
    gap: 10rem;
  }
  .Article-content {
    flex: 3;
  }
  .Sidebar {
    display: block;
    flex: 1;
  }
}
.Article.Doc img {
  background-color: var(--white);
}
.Article p.DownloadBtn {
  margin-top: 1.5rem;
  margin-bottom: 0.675rem;
}
.Article .DocInstall-footer {
  padding-bottom: 1.5rem;
}
.BreadcrumbNav-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0;
  justify-content: start;
  list-style: none;
  margin: 0 auto;
  max-width: 75.75rem;
  padding: 0 0 1rem;
}
.SiteBreadcrumb {
  list-style:none;
  display:flex;
  align-items:center;
  padding:0;
  margin: 1.5rem 0;
}
.BreadcrumbNav-li {
  align-items: center;
  display: flex;
  white-space: nowrap;
}
a.BreadcrumbNav-link {
  font-size: 0.875rem;
  text-decoration: none;
  &:hover, &:focus {
    text-decoration: underline;
  }
}
.BreadcrumbNav-li:last-child {
  padding-right: 0.812rem;
  white-space: normal;
}
.BreadcrumbNav-li:not(:last-child):after {
  background: url('/images/icons/arrow-forward.svg') no-repeat;
  content: ' ';
  display: block;
  height: 1rem;
  margin: 0 0.8125rem;
  width: 1rem;
}
[data-theme='dark'] .BreadcrumbNav-li:not(:last-child):after {
  background: url('/images/icons/arrow-forward-dark.svg') no-repeat;
  content: ' ';
  display: block;
  height: 1rem;
  margin: 0 0.8125rem;
  width: 1rem;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .BreadcrumbNav-li:not(:last-child):after {
    background: url('/images/icons/arrow-forward-dark.svg') no-repeat;
    content: ' ';
    display: block;
    height: 1rem;
    margin: 0 0.8125rem;
    width: 1rem;
  }
}
.SubHero-gridContainer,
.WhoUses-gridContainer,
.Playground-gridContainer,
.WhoUsesHero-gridContainer,
.WhoUsesCaseStudyList-gridContainer,
.WhyGo-gridContainer,
.UseCases-gridContainer,
.LearnGo-gridContainer,
.Security-gridContainer {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  margin: 0 auto;
  max-width: 75.75rem;
}
.SubHero-gridContainer,
.WhoUses-gridContainer,
.Playground-gridContainer,
.WhoUsesHero-gridContainer,
.WhyGo-gridContainer,
.UseCases-gridContainer,
.LearnGo-gridContainer,
.Security-gridContainer {
  padding: 3rem 1.5rem 1rem;
}
.WhoUsesHero-gridContainer {
  align-items: center;
}
@media only screen and (min-width: 28rem) {
  .WhoUses-gridContainer,
  .WhoUsesHero-gridContainer,
  .WhoUsesCaseStudyList-gridContainer,
  .WhyGo-gridContainer,
  .UseCases-gridContainer,
  .LearnGo-gridContainer,
  .Security-gridContainer {
    flex-direction: row;
    justify-content: space-between;
  }
  .WhoUsesHero-gridContainer {
    align-items: start;
  }
}
.WhyGo,
.WhoUses {
  background-color: var(--color-background);
}
.LearnGo,
.UseCases {
  background-color: var(--color-background-accented);
}
.WhoUses-header,
.WhyGo-header,
.LearnGo-header {
  flex: 0 0 100%;
  text-align: center;
}
.WhoUses-headerH2,
.WhyGo-headerH2,
.GettingStartedGo-headerH2,
.HomeSection-header,
.LearnGo-header h2 {
  color: var(--color-text);
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.75rem;
  margin-bottom: 1.5rem;
  margin-bottom: 0.5rem;
  margin-top: 0;
}
@media only screen and (min-width: 57.7rem) {
  .WhoUses-headerH2,
  .WhyGo-headerH2,
  .GettingStartedGo-headerH2,
  .HomeSection-header,
  .LearnGo-header h2 {
    font-size: 2.25rem;
    line-height: 2.625rem;
    margin-bottom: 1.5rem;
  }
}
.GoCarousel {
  background-color: var(--color-background-accented);
  display: flex;
  justify-items: center;
  overflow-x: hidden;
  position: relative;
}
.GoCarousel-wrapper {
  margin: auto;
  max-width: 62.5rem;
  overflow: hidden;
  position: relative;
  width: 90vw;
  z-index: 1;
}
.GoCarousel-slide {
  border-radius: 0.125rem;
  cursor: pointer;
  display: flex;
  position: relative;
  transition: all 1s;
}
.GoCarousel-controlPrev,
.GoCarousel-controlNext {
  border-radius: 1.25rem;
  border-width: 0;
  box-shadow: 0 0.0625rem 0.1875rem rgba(60, 64, 67, 0.15),
    0 0.0625rem 0.125rem rgba(60, 64, 67, 0.3);
  color: var(--gray-2);
  display: inline-block;
  font-size: 2.5rem;
  height: 2rem;
  line-height: 2.5rem;
  outline: none;
  padding: 0 0.375rem 0 0.25rem;
  position: absolute;
  transition: transform 100ms;
  width: 2rem;
  z-index: 2;
}
.GoCarousel-controlPrev:focus,
.GoCarousel-controlNext:focus {
  box-shadow: 0 0.0625rem 0.5rem rgba(60, 64, 67, 0.25),
    0 0.0625rem 0.25rem rgba(60, 64, 67, 0.4);
  color: var(--color-button-text-disabled);
}
.GoCarousel-controlPrev[hidden],
.GoCarousel-controlNext[hidden] {
  display: none;
}
.GoCarousel-icon {
  transform: translate(5%, -10%);
  user-select: none;
}
.GoCarousel-controlPrev,
.GoCarousel-controlNext {
  cursor: pointer;
  font-size: 1.6875rem;
  text-align: center;
  top: 50%;
  transform: translateY(-50%);
}
.GoCarousel-controlPrev {
  left: 1rem;
}
.GoCarousel-controlNext {
  right: 1rem;
}
.GoCarousel-controlPrev:active,
.GoCarousel-controlNext:active {
  transform: translateY(-50%) scale(0.9);
}
.GoCarousel-controlsContainer {
  display: block;
  margin: 0 auto;
  max-width: 75.75rem;
  position: relative;
  width: auto;
  width: 100%;
}
.GettingStartedGo-gridContainer {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  margin: 0 auto;
  max-width: 75.75rem;
  padding: 3.75rem 1.5rem 2.625rem;
}
@media only screen and (min-width: 57.7rem) {
  .GettingStartedGo-gridContainer {
    flex-direction: row;
  }
  .GoCarousel-controlPrev,
  .GoCarousel-controlNext {
    top: 50%;
  }
}
.GettingStartedGo-header {
  border-right: 0;
  flex: 0 37%;
  margin-bottom: 2rem;
  padding-right: 0;
}
@media only screen and (min-width: 57.7rem) {
  .GettingStartedGo-header {
    border-right: 0.0133rem solid var(--color-border);
    margin-bottom: 0;
    padding-right: 3.375rem;
  }
}
.GettingStartedGo-headerDesc {
  color: var(--color-text);
}
.GettingStartedGo-ctas {
  font-size: 0.875rem;
  font-weight: normal;
  margin-top: 1rem;
}
a.GettingStartedGo-primaryCta {
  background: var(--color-brand-primary);
  border-radius: 0.125rem;
  color: var(--white);
  display: inline-block;
  margin-right: 1.3125rem;
  padding: 0.4375rem 1.3125rem;
  text-decoration: none;
}
.GettingStartedGo-resourcesSection {
  display: flex;
  flex: 1;
  flex-direction: column;
}
@media only screen and (min-width: 38rem) {
  .GettingStartedGo-resourcesSection {
    flex-direction: row;
  }
}
.GettingStartedGo-resourcesList {
  flex: 50%;
  list-style: none;
  margin: 0;
  padding-left: 0;
  padding-right: 2.375rem;
}
@media only screen and (min-width: 57.7rem) {
  .GettingStartedGo-resourcesList {
    padding-left: 3.375rem;
    padding-right: 0;
  }
}
.GettingStartedGo-resourcesHeader {
  color: var(--color-button-text-disabled);
  font-size: 0.6875rem;
  margin-bottom: 1rem;
  text-transform: uppercase;
}
.GettingStartedGo-resourceItem {
  margin-bottom: 1rem;
}
a.GettingStartedGo-resourceItemTitle {
  color: var(--color-text);
  font-weight: 500;
}
.GettingStartedGo-resourceItemDescription {
  color: var(--color-button-text-disabled);
  font-size: 0.8125rem;
}
.WhoUses-header h4,
.WhyGo-subheader,
.LearnGo-header h4,
.WhoUses-subheader {
  color: var(--color-text);
  font-size: 0.875rem;
  font-style: normal;
  font-weight: normal;
  margin-bottom: 1.5rem;
  margin-top: 0;
}
@media only screen and (min-width: 38rem) {
  .WhoUses-header h4,
  .WhyGo-subheader,
  .LearnGo-header h4,
  .WhoUses-subheader {
    font-size: 1rem;
  }
}
.Hero {
  color: var(--white);
}
.Hero h1 {
  font-size: 2.625rem;
  font-weight: 500;
  margin: 1rem 0;
}
.Hero h2 {
  font-size: 1.5rem;
  font-weight: normal;
  max-width: 40rem;
}
.Hero-gridContainer {
  column-gap: 1rem;
  display: grid;
  grid-template-columns: 3fr minmax(6.25rem, 1fr);
  margin: 0 auto;
  max-width: 40rem;
  padding: 1rem 1.5rem 0;
}
.Hero-actions {
  display: flex;
  flex: 3 1;
  flex-direction: column;
  flex-wrap: wrap;
  grid-column: 1 / 3;
  margin-top: 1rem;
}
.Hero-actions > div {
  display: flex;
  width: 100%;
}
.Hero-actions a,
.Hero-actions a:visited,
.Hero-actions a:hover {
  color: var(--white);
  margin: 0.5rem 0;
  max-width: 13.75rem;
  padding: 1rem 0;
  text-align: center;
  text-decoration: underline;
}
.Hero-actions a.Primary,
.Hero-actions a.Secondary {
  align-items: center;
  border-radius: 0.25rem;
  display: flex;
  flex-wrap: nowrap;
  font-size: 0.875rem;
  height: 2.5rem;
  justify-content: center;
  line-height: 1.3125rem;
  margin: 0;
  text-decoration: none;
  width: 100%;
}
.Hero-actions a.Primary {
  margin: 0 1.3125rem 0 0;
}
.Hero-actions a.Primary {
  background-color: var(--color-button-accented);
  border: 0.0625rem solid var(--color-button-accented);
  box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.2);
  color: var(--black-1);
}
.Hero-actions a.Secondary {
  border: 0.0625rem solid var(--white);
  color: var(--white);
}
.DownloadBtn-versionNum {
  font-size: 0.6875rem;
  font-weight: 300;
}
.Hero-gopher {
  align-items: flex-end;
  display: flex;
  grid-column: 2 / 3;
  grid-row: 1 / 2;
  justify-content: flex-end;
}
.Hero-gopherLadder {
  bottom: 0;
  height: 15rem;
  max-width: 8rem;
  object-fit: cover;
  object-position: 100% 0;
  right: 0;
  width: 100%;
}
.Hero-blurb {
  grid-column: 1 / 2;
  margin: 0 auto;
}
.Hero-blurb h1 {
  font-size: 1.375rem;
  font-weight: 500;
  margin-top: 0;
}
.Hero-blurbList {
  font-size: 0.8125rem;
  list-style: none;
  margin-bottom: 0;
  margin-top: 1rem;
  padding: 0;
}
.Hero-blurbList li {
  line-height: 1.125rem;
  margin-bottom: 0.5rem;
  padding-left: 1.5rem;
  position: relative;
}
.Hero-blurbList svg {
  left: 0;
  margin-right: 0.6875rem;
  position: absolute;
  top: 0.3125rem;
}
.Hero-footnote {
  flex-direction: column;
  font-size: 0.8125rem;
  margin: 0.5rem 0 1.5rem;
}
.Hero-footnote p {
  margin: 0;
}
.Hero-footnote p + p {
  margin-top: 0.75rem;
}
.Hero-footnote a {
  color: var(--white);
  text-decoration: underline;
}
.SubHero-gridContainer {
  display: grid;
  gap: 0 5vw;
  grid-template-columns: 1fr;
}
.SubHero-blurb {
  margin: 0 auto 0;
  max-width: 25rem;
}
.SubHero-blurb:not(:last-of-type) {
  margin: 0 auto 4rem;
}
.SubHero-blurb h3 {
  margin-top: 0;
  text-align: center;
}
.SubHero-blurb p {
  margin-bottom: 0;
}
@media only screen and (min-width: 38rem) {
  .Hero-blurb {
    margin: auto;
  }
}
@media only screen and (min-width: 48rem) {
  .Hero-gridContainer {
    gap: 0 5vw;
    grid-template-columns: 2.5fr minmax(auto, 16.25rem);
    max-width: 75.75rem;
  }
  .Hero-gopherLadder {
    height: 23rem;
    max-width: 11.5rem;
  }
  .Hero-actions {
    align-items: flex-start;
    flex: 1 1;
    flex-direction: row;
    grid-column: 1 / 2;
    justify-content: initial;
  }
  .Hero-actions a,
  .Hero-actions a:visited,
  .Hero-actions a:hover {
    max-width: 17.5rem;
  }
  .Hero-actions a.Primary,
  .Hero-actions a.Secondary {
    font-size: 1.5rem;
    height: 4rem;
    line-height: 1.75rem;
  }
  .Hero-actions a.Secondary {
    margin: 0;
  }
  .Hero-footnote {
    margin: 1rem 0 1.5rem;
  }
  .Hero-blurb {
    grid-column: 1 / 2;
    margin: 2.5rem 0 0;
  }
  .Hero-gopher {
    grid-row: 1 / 3;
  }
  .Hero-blurb h1 {
    font-size: 2.45rem;
    font-weight: 500;
  }
  .Hero-blurbList {
    font-size: 1rem;
  }
  .SubHero-gridContainer {
    grid-template-columns: 1fr 1fr 1fr;
  }
  .SubHero-blurb {
    margin: 0 auto;
  }
  .DownloadBtn-versionNum {
    font-size: 1rem;
    font-weight: 300;
  }
}
.WhoUsesHero {
  background-color: var(--color-background-accented);
}
.WhoUses-subheader {
  color: var(--color-text);
  margin-bottom: 0;
  margin-left: auto;
  margin-right: auto;
  max-width: 25rem;
}
.WhoUsesHero-gridContainer {
  display: flex;
  justify-content: space-between;
  width: 100%;
}
.WhoUses-heroImg {
  max-width: 38.75rem;
  width: 100%;
}
.WhoUses-heroInnerLeft {
  margin-bottom: 2rem;
  margin-right: 0;
  max-width: 19.625rem;
  text-align: center;
  width: 90%;
}
@media only screen and (min-width: 57.7rem) {
  .WhoUses-heroInnerLeft {
    margin-right: 2rem;
    text-align: start;
    width: 19.625rem;
  }
  .WhoUses-subheader {
    max-width: none;
  }
}
.WhoUses-heroInnerLeft h3 {
  font-size: 1.5rem;
  font-weight: normal;
  margin: 1.375rem 0;
}
.WhoUses-heroInnerLeft p {
  color: var(--color-text-subtle);
  font-size: 0.875rem;
  margin-bottom: 1.188rem;
}
.WhoUsesCaseStudyList {
  align-content: center;
  display: flex;
  flex: 0 0 100%;
  justify-content: space-evenly;
  list-style: none;
}
.WhoUsesCaseStudyList-gridContainer {
  display: grid;
  gap: 0.8rem;
  grid-template-columns: repeat(3, minmax(0, 33.333%));
  margin: 1.5rem auto 3.75rem;
  padding: 0;
  width: 100%;
}
.WhoUsesCaseStudyList-caseStudy {
  align-items: center;
  display: flex;
  flex: 0 1 50%;
  height: 3.8512rem;
  justify-content: center;
  position: relative;
}
.WhoUsesCaseStudyList-caseStudy p {
  display: none;
}
.WhoUsesCaseStudyList-caseStudyLink:link,
.WhoUsesCaseStudyList-caseStudyLink:visited {
  color: var(--color-text-subtle);
  flex-direction: column;
  text-align: center;
  text-decoration: none;
  transition: box-shadow 0.2s ease-in-out;
}
.WhoUsesCaseStudyList-caseStudyLink:link:hover {
  box-shadow: 0 -0.0625rem 0.3125rem rgba(128, 134, 139, 0.09),
    0 0.1875rem 0.3125rem rgba(128, 134, 139, 0.06),
    0 0.0625rem 0.125rem rgba(60, 64, 67, 0.3),
    0 0.0625rem 0.1875rem rgba(60, 64, 67, 0.15);
}
.WhoUsesCaseStudyList-caseStudyLink img {
  height: auto;
}
@media only screen and (max-width: 38rem) {
  .WhoUsesCaseStudyList-caseStudyLink img {
    max-height: 2rem;
    max-width: 100%;
  }
}
.WhoUsesCaseStudyList-logo {
  margin: auto;
  max-height: 4rem;
  max-width: 9.375rem;
  width: auto;
}
.WhoUsesCaseStudyList-caseStudyLink:link,
.WhoUsesCaseStudyList-caseStudyLink:visited {
  background-color: var(--color-background-logo);
  border-radius: 0.25rem;
  box-shadow: var(--color-border) 0 0.0625rem 0.25rem;
  display: flex;
  height: 100%;
  padding: 0 0.3rem;
  width: 100%;
}
.WhoUsesCaseStudyList-seeAll {
  display: inline-block;
  margin-left: 1rem;
}
.WhoUsesCaseStudyList-seeAll:hover {
  text-decoration: none;
}
@media only screen and (min-width: 32rem) {
  .WhoUsesCaseStudyList-gridContainer {
    gap: 1rem 1.125rem;
  }
  .WhoUsesCaseStudyList-caseStudyLink {
    padding: 0 1.5rem;
  }
  .WhoUsesCaseStudyList-caseStudy {
    height: 5.9375rem;
  }
}
@media only screen and (min-width: 57.7rem) {
  .WhoUsesCaseStudyList-gridContainer {
    grid-template-columns: repeat(4, minmax(0, 25%));
  }
  .WhoUsesCaseStudyList-caseStudyLink:link,
  .WhoUsesCaseStudyList-caseStudyLink:visited {
    color: transparent;
  }
  .WhoUses-caseStudy a:link:hover,
  .WhoUses-caseStudy a:visited:hover {
    box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
  }
  .WhoUsesCaseStudyList-caseStudyLink:link:hover
    .WhoUsesCaseStudyList-caseStudyLink:visited:hover {
    color: var(--color-text-subtle);
    transition: all 0.2s ease-in-out;
  }
}
@media only screen and (min-width: 66.75rem) {
  .WhoUsesCaseStudyList-gridContainer {
    grid-template-columns: repeat(6, 1fr);
  }
  .WhoUsesCaseStudyList-caseStudy {
    flex: 0 1 1fr;
  }
}
.FeaturedUsers {
  margin: 2.375rem auto 3.75rem;
}
.FeaturedUsers table {
  border-collapse: collapse;
  margin-bottom: 1.5rem;
}
.FeaturedUsers table thead {
  background-color: var(--color-background-accented);
}
.FeaturedUsers table thead th {
  color: var(--color-button-text-disabled);
  font-size: 1rem;
  font-weight: 500;
  padding: 0.75rem 0;
}
.FeaturedUsers table thead th:not(:nth-child(1)) {
  text-align: left;
}
.FeaturedUsers table td th:not(:nth-child(1)) {
  text-align: left;
}
.FeaturedUsers table tr td,
.FeaturedUsers table tr th {
  padding: 1rem 0.3rem;
  width: 30%;
}
.FeaturedUsers table tr td:first-of-type {
  padding-left: 1rem;
}
.FeaturedUsers table tr td:first-of-type,
.FeaturedUsers table tr th:first-of-type {
  width: 15%;
}
.FeaturedUsers table tr td:nth-of-type(2),
.FeaturedUsers table tr th:nth-of-type(2) {
  width: 40%;
}
.FeaturedUsers table td {
  color: var(--color-text);
  font-size: 0.875rem;
  vertical-align: top;
}
.FeaturedUsers table td ul {
  margin-top: 0;
  padding-left: 1rem;
}
.FeaturedUsers table td ul li {
  font-size: 0.875rem;
}
.FeaturedUsers table thead {
  color: var(--color-button-text-disabled);
  font-size: 1rem;
  font-weight: 500;
}
.FeaturedUsers table tbody tr {
  border-bottom: var(--border);
}
.FeaturedUsers table tbody tr td {
  margin: 0;
}
.FeaturedUsers table tbody tr td img {
  width: 5rem;
}
.FeaturedUsers-moreProjectsBtn {
  background: transparent;
  border: none;
  color: #5dc9e2;
  cursor: pointer;
  font-size: 0.875rem;
  padding: 0.5rem 0;
  position: relative;
}
.FeaturedUsers--hiddenDesktop {
  display: block;
  height: 3rem;
  margin-bottom: 1rem;
  width: auto;
}
.FeaturedUsers--hiddenMobile {
  display: none;
  vertical-align: middle !important;
}
@media only screen and (max-width: 48rem) {
  .FeaturedUsers table tbody tr td:last-of-type {
    padding-left: 1rem;
    padding-top: 5rem;
  }
}
@media only screen and (min-width: 48rem) {
  .FeaturedUsers--hiddenMobile {
    display: table-cell;
  }
  .FeaturedUsers table tr td {
    padding: 2rem 2rem 1rem 0;
    position: relative;
    width: 30%;
  }
  .FeaturedUsers--hiddenDesktop {
    display: none;
  }
}
.WhoUsesCaseStudy-librariesWrapper {
  margin-bottom: 2.25rem;
  margin-top: 1.875rem;
}
a.WhoUsesCaseStudy-librariesViewMoreLink {
  color: var(--color-text-link);
  font-size: 0.875rem;
}
.WhoUsesCaseStudy-libraryTitle {
  font-weight: normal;
}
.WhoUsesCaseStudy-librariesList {
  column-gap: 7.375rem;
  display: grid;
  grid-template-columns: 1fr;
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
}
.WhoUsesCaseStudy-librariesList h3 {
  font-weight: 500;
}
.WhoUsesCaseStudy-library {
  margin: 0 0 1.5rem;
}
.WhoUsesCaseStudy-library p {
  color: var(--color-text);
  font-size: 1rem;
  line-height: 1.1875rem;
  margin: 0.5rem 0 0;
}
.WhoUsesCaseStudy-view-more {
  margin-bottom: 2.5rem;
}
.WhoUsesCaseStudy-view-more a {
  color: var(--color-text);
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 500;
  margin-bottom: 2.5rem;
  text-align: center;
}
@media only screen and (min-width: 38rem) {
  .WhoUsesCaseStudy-librariesList {
    column-gap: 4rem;
    grid-template-columns: 1fr 1fr;
  }
}
.UseCases-gridContainer {
  flex-direction: row;
  justify-content: space-around;
  margin: -1rem 0 0 -1rem; /* Offset gutters for the leftmost and top cells in the grid. */
}
.UseCase {
  flex: 1 0 15.625rem;
  margin-top: 1rem;
  max-width: 15.625rem;
  padding: 1rem 0 0 1rem; /* Gutter between grid cells. */
}
.UseCase-logo {
  align-items: center;
  background: linear-gradient(
    10.64deg,
    var(--color-text-link) 0%,
    #00a29c 100%
  );
  border-radius: 50%;
  display: flex;
  height: 3.75rem;
  justify-content: center;
  margin: auto;
  width: 3.75rem;
}
.UseCase-logo img {
  height: 2.625rem;
  width: 2.625rem;
}
.UseCase-title {
  text-align: center;
}
.UseCase-action {
  font-size: 1.125rem;
  line-height: 2.5rem;
  text-align: center;
}
.WhyGo-gridContainer {
  align-items: center;
  justify-content: center;
}
.WhyGo-reasons {
  column-gap: 3.313rem;
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  justify-content: space-between;
  list-style: none;
  padding-left: 0;
  row-gap: 2rem;
}
.WhyGo-forwardArrowIcon,
.Solutions-forwardArrowIcon {
  font-size: 1rem;
}
.Solutions-header {
  padding: 0 1.5rem;
  margin: 2.5rem auto;
  max-width: 75.75rem;
}
.Solutions-header .SiteBreadcrumb {
  margin-bottom: 2rem;
}
.Solutions-useCase__title {
  font-style: normal;
  font-weight: 400;
  font-size: 36px;
  line-height: 32px;
  color: var(--color-text);
}
@media only screen and (min-width: 57.7rem) {
  .WhyGo-reasons {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media only screen and (min-width: 72.75rem) {
  .WhyGo-reasons {
    grid-template-columns: repeat(3, 1fr);
  }
}
.WhyGo-reason {
  background-color: var(--color-background-accented);
  border: var(--border-card);
  border-radius: 0.25rem;
  display: flex;
  flex: 0 30%;
  flex-direction: column;
  height: 100%;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  margin-top: 0;
  max-width: 40rem;
}
.WhyGo-reasonDetails {
  padding: 2rem 2rem 0.188rem;
}
.WhyGo-reasonFooter {
  background-color: var(--color-background-card-footer);
  padding: 1rem 2rem 2rem;
}
.WhyGo-reasonIcon {
  margin-bottom: 1rem;
  text-align: left;
}
.WhyGo-reasonIcon img {
  height: 2.25rem;
}
.WhyGo-reasonLearnMoreLink {
  margin-top: 1.5rem;
}
.WhyGo-reasonLearnMoreLink a {
  align-items: center;
  display: flex;
  font-size: 0.875rem;
  text-decoration: none;
  &:hover,
  &:focus {
    text-decoration: underline;
  }
}
.WhyGo-reasonPackages {
  color: var(--color-text);
  font-size: 0.875rem;
}
.WhyGo-reasonPackagesHeader {
  margin-bottom: 0.688rem;
}
.WhyGo-reasonPackagesHeader img {
  height: 0.938rem;
  margin-right: 0.376rem;
  padding: 0.063rem 0 0.063rem;
  vertical-align: bottom;
}
.WhyGo-reasonPackagesList {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  padding: 0;
}
.WhyGo-reasonPackage {
  background: var(--color-background-accented);
  border: var(--border-card);
  border-radius: 0.125rem;
  box-sizing: border-box;
  color: var(--color-text-link);
  font-size: 0.688rem;
  line-height: 0.813rem;
  list-style: none;
  margin: 0.125rem 0.5rem 0.5rem 0;
  padding: 0.188rem 0.188rem;

  text-align: center;
}
.WhyGo-reasonShowMoreImgWrapper {
  align-items: center;
  background-color: var(--color-background-accented);
  border-radius: 50%;
  display: flex;
  height: 14.313rem;
  margin: 2.5rem auto 1.375rem;
  width: 14.313rem;
}
.WhyGo-reasonShowMoreImg {
  margin-left: 5%;
  width: 100%;
}
.WhyGo-reasonShowMoreLink {
  font-size: 0.875rem;
  text-align: center;
}
.WhyGo-reasonShowMoreLink a {
  background-color: var(--color-brand-primary);
  border-radius: 0.125rem;
  box-sizing: border-box;
  color: var(--white);
  display: inline-block;
  padding: 0.275rem 1.063rem 0.275rem 0.275rem;
  text-decoration: none;
}
.WhyGo-reasonShowMoreLink a i {
  padding-bottom: 0.063rem;
  vertical-align: middle;
}
.WhyGo-reasonText p {
  color: var(--color-text);
  font-size: 1rem;
  font-weight: normal;
}
.WhyGo-reasonTitle {
  color: var(--color-text);
  font-size: 1.125rem;
  font-weight: 500;
}
.WhyGo-gopher {
  flex: 1;
  max-width: 28.4375rem;
  text-align: center;
}
.WhyGo-gopher img {
  width: 100%;
}

.headerWithLink {
  display: flex;
  justify-content: space-between;
  width: 100%;
}

.headerWithLink h3 {
  font-weight: 500;
  margin-bottom: 0;
}
.headerLink {
  align-self: center;
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
}
.LearnGo-subHeader {
  display: flex;
  justify-content: space-between;
  width: 100%;
}
.LearnGo-subHeader h3 {
  color: var(--color-text-subtle);
  font-size: 1rem;
  font-weight: normal;
}
.LearnGo-courses {
  display: flex;
  flex: 1 0 100%;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-around;
  list-style: none;
  margin: 0 0 1rem -1rem; /* Offset gutters for the leftmost and top cells in the grid. */
  padding-left: 0;
}
@media only screen and (min-width: 72.75rem) {
  .LearnGo-courses {
    justify-content: space-between;
  }
}
.LearnGo-courseItem {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding: 1rem 0 0 1rem; /* Gutter between grid cells. */
}
.LearnGo-courseItem a {
  color: var(--color-text);
}
.LearnGo-courseTitle {
  text-align: center;
}
.LearnGo-courseImage {
  align-items: center;
  background-color: var(--color-background);
  border-radius: 0.3125rem;
  box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
  display: flex;
  height: 11rem;
  justify-content: center;
  margin: auto;
  max-width: 16.5rem;
  width: 16.5rem;
}
.LearnGo-courseImage img {
  max-height: 100%;
  max-width: 100%;
}
.GoCarousel-eventsWrapper {
  margin: auto;
  max-width: 68rem;
  overflow: hidden;
  position: relative;
  width: 84vw;
}
.GoCarousel-eventsSlides {
  display: flex;
  left: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  top: 0;
  transition: left 0.2s ease-out;
  width: 625rem;
}
.GoCarousel-eventGroup {
  align-items: flex-start;
  border-radius: 0.125rem;
  cursor: pointer;
  display: flex;
  margin: 1rem 0;
  padding: 1rem;
  position: relative;
  transition: all 1s;
  width: 84vw;
}
.GoCarousel-eventsSlidesingleItem {
  display: flex;
  flex: 1;
  margin-right: 2rem;
}
.GoCarousel-eventThumbnail {
  background-color: var(--white);
  border: var(--border);
  border-radius: 0.5rem;
  display: flex;
  height: 100%;
  margin-right: 1.3125rem;
  width: 6.625rem;
}
.GoCarousel-eventThumbnail img {
  align-self: center;
  height: auto;
  object-fit: contain;
  padding: 1rem;
  width: 100%;
}
.GoCarousel-eventBody {
  display: inline-flex;
  flex: 1;
  flex-direction: column;
  height: 100%;
  min-width: 0;
  position: relative;
}
.GoCarousel-eventDate {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.GoCarousel-eventDate p {
  color: var(--color-button-text-disabled);
  font-size: 0.8125rem;
  font-style: normal;
  margin: 0 0 1.5rem 0;
}
.GoCarousel-eventHeader {
  color: var(--color-button-text-disabled);
  font-size: 0.6875rem;
  font-weight: 500;
  margin: 0 0 0.875rem;
  text-transform: uppercase;
}
.GoCarousel-eventName {
  margin: 0 0 0.25rem 0;
  width: 100%;
}
.GoCarousel-eventName a {
  -webkit-box-orient: vertical;
  color: var(--color-text);
  display: -webkit-box;
  font-weight: 500;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}
.LearnGo-eventDescription {
  -webkit-box-orient: vertical; /* See webkit-line-clamp */
  display: -webkit-box; /* See webkit-line-clamp */
  -webkit-line-clamp: 4; /* Elide flex text. webkit-line-clamp is broadly compatible with browsers. */
}
.GoCarousel-viewMore {
  bottom: 0;
  font-size: 0.875rem;
  margin: 0;
  min-width: 6.25rem;
  position: absolute;
}
@media only screen and (min-width: 48rem) {
  .GoCarousel-eventGroup {
    width: 42vw;
  }
}
@media only screen and (min-width: 66.75rem) {
  .GoCarousel-eventThumbnail img {
    display: block;
    margin: auto;
  }
  .GoCarousel-eventDate {
    flex: 0;
    flex-direction: row;
    justify-content: flex-start;
    min-width: 9rem;
  }
  .GoCarousel-eventText {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
    position: relative;
  }
  .GoCarousel-viewMore {
    text-align: left;
    width: 15.625rem;
  }
  .GoCarousel-eventBody {
    display: flex;
    flex-direction: column;
  }
  .GoCarousel-eventGroup {
    max-width: 22.66rem;
    width: 28vw;
  }
}

.Learn-hero,
.Security-hero {
  background-color: var(--color-background-accented);
  color: var(--color-text);
  padding: 0 2.25rem 0;
}
[data-theme='dark'] .Learn-hero .BreadcrumbNav-li:not(:last-child):after,
[data-theme='dark'] .Security-hero .BreadcrumbNav-li:not(:last-child):after {
  background: url('/images/icons/arrow-forward.svg') no-repeat;
  content: ' ';
  display: block;
  height: 1rem;
  margin: 0 0.8125rem;
  width: 1rem;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light'])
    .Learn-hero
    .BreadcrumbNav-li:not(:last-child):after,
  :root:not([data-theme='light'])
    .Security-hero
    .BreadcrumbNav-li:not(:last-child):after {
    background: url('/images/icons/arrow-forward.svg') no-repeat;
  }
}
.Security-hero .Container {
  max-width: 68.125rem;
  position: relative;
  z-index: 1;
}

.Learn-heroInner,
.Security-heroInner {
  display: flex;
  flex-direction: column-reverse;
}
.Learn-heroInner {
  padding-bottom: 3.25rem;
}

.Learn-heroGopher,
.Security-heroGopher {
  display: flex;
  justify-content: flex-start;
  padding-top: 1.25rem;
}

.Learn-heroGopher img,
.Security-heroGopher img {
  height: 8.25rem;
  width: auto;
}

.Learn-heroContent {
  padding-top: 1.125rem;
}

.Learn-heroContent a:not(.js-downloadBtn):not(.BreadcrumbNav-link) {
  text-decoration: underline;
}

.Learn-heroContent h1,
.Security-heroContent h1 {
  font-size: 1.5rem;
  font-style: normal;
  font-weight: normal;
  line-height: 2rem;
}

.Learn-heroContent p,
.Security-heroContent p {
  color: var(--color-text);
  font-size: 0.875rem;
  max-width: 27.1875rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.5rem;
}

.Learn-heroAction,
.Security-heroAction {
  align-items: center;
  background-color: var(--color-brand-primary);
  border-radius: 0.25rem;
  display: flex;
  height: 2.5rem;
  justify-content: center;
  width: 10.5rem;
}

.Learn-heroAction a,
.Learn-heroAction a:hover,
.Learn-heroAction a:visited,
.Security-heroAction a,
.Security-heroAction a:hover,
.Security-heroAction a:visited {
  color: var(--white);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
}

.Learn-heroAction span,
.Security-heroAction span {
  font-weight: normal;
}

/* Learn/Security page grid rules */

.LearnGo-gridContainer,
.Security-gridContainer {
  display: flex;
  padding: 0rem 0rem 1rem;
}

.Learn-cardList,
.Security-cardList {
  column-gap: 2.813rem;
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  justify-content: space-between;
  list-style: none;
  padding-left: 0;
  row-gap: 2.813rem;
}

.Learn-columns {
  display: flex;
  max-width: 78.25rem;
  margin: auto;
  padding: 0 1.25rem;
}

.Learn-columns .Learn-sidebar {
  display: none;
  margin-top: 3.75rem;
  width: 25%;
  height: 100vh;
  min-height: 12.5rem;
  overflow: auto;
  position: sticky;
  top: 5%;
}

.Learn-columns .LearnNav {
  display: flex;
  flex-direction: column;
}

.Learn-columns .LearnNav a {
  display: flex;
  align-items: center;
  margin-bottom: 0.875rem;
  text-decoration: none;
}

.Learn-columns .LearnNav a span {
  margin-left: 0.75rem;
  font-style: normal;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.5rem;
  color: var(--color-text-subtle);
}

.Learn-columns .LearnNav a svg {
  visibility: hidden;
}

.Learn-columns .LearnNav a.active svg {
  visibility: visible;
}

.Learn-columns .LearnNav a.active span,
.Learn-columns .LearnNav a span:hover {
  color: var(--color-text);
  font-weight: 500;
}

.Learn-card,
.Security-card {
  min-height: 13.25rem;
}

@media only screen and (min-width: 48rem) {
  .Learn-cardList,
  .Security-cardList {
    grid-template-columns: repeat(3, 1fr);
  }
  .Learn-card {
    max-width: 15.875rem;
  }
  .Learn-heroGopher img,
  .Security-heroGopher img {
    height: 13.25rem;
  }
}
@media only screen and (min-width: 72.75rem) {
  .Learn-columns .Learn-sidebar {
    display: block;
  }
  .Learn-cardList,
  .Security-cardList {
    grid-template-columns: repeat(3, 1fr);
  }
  .Learn-heroGopher,
  .Security-heroGopher {
    display: flex;
    justify-content: flex-end;
    padding-top: 3.25rem;
  }
}

/* End Learn/Security page grid rules */

/* Learn quickstart grid */

.Learn-hero .Learn-quickstarts {
  margin: 0;
  margin-top: 4rem;
}

.Learn-hero .Learn-quickstart {
  height: auto;
}

.Learn-hero .LearnGo-gridContainer {
  padding: 3rem 0rem 3rem;
}

@media only screen and (min-width: 48rem) {
  .Learn-hero .Learn-cardList {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media only screen and (min-width: 57.7rem) {
  .Learn-hero .Learn-cardList {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media only screen and (min-width: 72.75rem) {
  .Learn-hero .Learn-cardList {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Learn hero section */

@media only screen and (min-width: 57.7rem) {
  .Learn-hero,
  .Security-hero {
    background-position: top -35rem left 30rem;
  }

  .Learn-heroInner,
  .Security-heroInner {
    flex-direction: row;
    justify-content: space-between;
  }

  .Learn-heroContent,
  .Security-heroContent {
    padding-top: 3.75rem;
  }

  .Learn-heroGopher,
  .Security-heroGopher {
    flex: 1;
    justify-content: flex-end;
    align-items: center;
  }

  .Security-heroGopher img {
    height: 21.0625rem;
  }

  .Learn-heroAction,
  .Security-heroAction {
    height: 2.5rem;
    width: 10.25rem;
  }

  .Security-heroAction a,
  .Security-heroAction a:hover,
  .Security-heroAction a:visited {
    font-size: 1.5rem;
  }

  .Learn-heroAction a,
  .Learn-heroAction a:hover,
  .Learn-heroAction a:visited {
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 1rem;
  }

  .Learn-heroAction span,
  .Security-heroAction span {
    font-size: 1rem;
  }
}

@media only screen and (min-width: 91rem) {
  .Learn-hero,
  .Security-hero {
    background-position: top -35rem left 50rem;
  }
}

.Learn-guided,
.Learn-online,
.Learn-selfPaced,
.Learn-books,
.Learn-inPersonTraining,
.Learn-meetups,
.Learn-tutorials {
  margin-top: 3.75rem;
  padding: 0 1.5rem;
}

.Learn-learningResources {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin: 3.75rem 0;
}

.Learn-learningResources h2,
.Learn-learningResourcesHeader h3,
.Security-sectionHeader h3 {
  color: var(--color-text);
  margin: 0;
}

.Learn-learningResources h2 {
  font-size: 2rem;
  font-weight: 500;
  line-height: 2.3125rem;
}

.Learn-learningResourcesHeader,
.Security-sectionHeader {
  color: var(--color-text);
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-direction: column;
}

.Learn-subHeader h2 {
  color: var(--color-text);
}

.Learn-learningResourcesHeader h3 {
  font-size: 1.5rem;
  font-style: normal;
  font-weight: 400;
  line-height: 2.25rem;
}

.Learn-learningResourcesHeader p {
  color: var(--color-text-subtle);
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.375rem;
}

.Learn-selfPaced .Learn-card .Card-content {
  justify-content: space-between;
}

.Learn-online .Card-thumbnail {
  background-position: 1.5rem center;
  background-repeat: no-repeat;
  background-size: auto 1.5rem;
  height: 7.5625rem;
}

@media only screen and (min-width: 48rem) {
  .Learn-learningResourcesHeader h2,
  .Security-sectionHeader h2 {
    font-size: 2.25rem;
    line-height: 2.625rem;
  }
}

.Learn-cardList.Learn-bookList {
  grid-template-columns: repeat(1, 1fr);
  width: 100%;
  grid-gap: 0;
}

.Learn-card.Learn-book {
  height: auto;
  max-width: 26.5rem;
}

@media only screen and (min-width: 48rem) {
  .Learn-cardList.Learn-bookList {
    grid-template-columns: repeat(2, 1fr);
  }
}

.Learn-inPersonList {
  display: grid;
  list-style: none;
  padding-left: 0;
  grid-template-columns: repeat(1, 1fr);
}

.Learn-inPerson {
  flex: 1 1 31.25rem;
  max-width: 36.5rem;
  padding-bottom: 1.25rem;
}

.Learn-inPersonTitle {
  font-size: 1.25rem;
}
.Learn-inPersonBlurb {
  color: var(--color-text);
  line-height: 1.75rem;
}

.Learn-events {
  flex: 1 0 100%;
  list-style: none;
  margin: 0.5rem 0 1.875rem;
  padding: 0;
  width: 100%;
}
.Learn-eventItem {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  padding: 1.875rem 0 0.175rem 0;
}
.Learn-eventItem + .Learn-eventItem {
  border-top: var(--border);
}

.Learn-eventThumbnail {
  align-self: center;
  display: flex;
  flex: 0 0 3rem;
  height: auto;
  margin-bottom: 1rem;
}
.Learn-eventThumbnail--noimage {
  background-color: var(--color-background);
}
.Learn-eventThumbnail img {
  height: auto;

  object-fit: cover;
  width: 100%;
}
.Learn-eventAttendees {
  display: flex;
}
.Learn-eventAttendeesItem img {
  border-radius: 100%;
  height: 2rem;
  width: 2rem;
}
.Learn-eventBody {
  display: flex;
  flex: 1;
  flex-direction: column;
  max-width: 100%;
  min-width: 0;
}
.Learn-eventDate {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;

  margin-bottom: 1rem;
}
.Learn-eventDate p {
  color: var(--color-text-subtle);
  margin: 0;
}
.Learn-eventName {
  color: var(--color-text);
  font-size: 1.25rem;
  font-weight: 500;
  margin: 0;

  margin-bottom: 1rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.Learn-eventName a {
  color: var(--color-text);
  text-decoration: none;
}
.Learn-eventDescription {
  color: var(--color-text);
  -webkit-box-orient: vertical; /* See webkit-line-clamp */
  display: -webkit-box; /* See webkit-line-clamp */
  -webkit-line-clamp: 4; /* Elide flex text. webkit-line-clamp is broadly compatible with browsers. */
  line-height: 24px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.Learn-eventText {
  margin-bottom: 0.5rem;
}
.Learn-viewMore {
  align-items: center;
  display: flex;
  font-size: 0.875rem;
  margin: 0;
  min-width: 6.25rem;
}
.Learn-viewMore:hover {
  text-decoration: none;
}
.Learn-viewMore span {
  font-size: 1rem;
  margin-left: 0.48rem;
}
@media only screen and (min-width: 33.75rem) {
  .Learn-eventItem {
    flex-direction: row;
  }

  .Learn-eventBody {
    max-width: 46.825rem;
  }
  .Learn-eventThumbnail {
    height: 8rem;
    margin-bottom: 0;
    margin-right: 1rem;
    min-width: 8rem;
  }
  .Learn-eventThumbnail img {
    height: 8rem;
    object-fit: contain;
    width: 8rem;
  }
  .Learn-eventDate {
    flex: 0;
    flex-direction: column;
    justify-content: center;
    min-width: 9rem;
  }
  .Learn-eventText {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding-right: 2rem;
  }
  .Learn-eventDescription {
    -webkit-line-clamp: 2; /* see non-media-query definition. */
    margin: 0 0 0.5rem;
  }
  .Learn-viewMore {
    align-self: center;
    text-align: right;
  }
  .Learn-eventItem {
    padding: 1.875rem 0;
  }
}

.Learn-tile a {
  width: 100%;
}

.Learn-tileList {
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
  padding: 0;
}
@media only screen and (min-width: 38rem) {
  .Learn-tileList {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .Learn-inPersonBlurb {
    margin-right: 10rem;
  }
}
@media only screen and (min-width: 48rem) {
  .Learn-tileList {
    justify-content: space-between;
  }
  .Learn-tileList {
    column-gap: 3rem;
  }
  .Learn-inPersonList {
    grid-template-columns: repeat(2, 1fr);
  }
}
.Learn-tile {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.Learn-tile a {
  color: var(--color-text);
}
.Learn-tileTitle {
  display: block;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: normal;
  line-height: 0.875rem;
  margin: 1.5rem auto 0;
  overflow-wrap: break-word;
  text-align: center;
}
.Learn-tileThumbnail {
  align-items: center;
  background-color: var(--color-background);
  border-radius: 0.3125rem;
  box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
  display: flex;
  justify-content: center;
  margin: auto;
  width: 100%;
}
.Learn-tileThumbnail img {
  max-height: 100%;
  max-width: 100%;
}
.Learn-tileThumbnail--book img {
  max-height: 100%;
  max-width: 100%;
}

.Solutions-title,
.Solutions-useCases,
.Solutions-caseStudies {
  margin: auto;
  max-width: 75.75rem;
}
.Solutions-title,
.Solutions-useCases,
.Solutions-caseStudies {
  padding: 0 1.5rem;
}
.SolutionsHeroCarousel-wrapper {
  max-width: 68rem;
  width: 76vw;
}
.SolutionsHeroCarousel-slides {
  transition: left 0.2s ease-out;
}
.GoCarousel-controlNext-solutionsHero {
  right: 0.5rem;
}
.GoCarousel-controlPrev-solutionsHero {
  left: 0.5rem;
}
.SolutionsHeroCarousel-slides {
  display: flex;
  left: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  top: 0;
  width: 625rem;
}
.SolutionsHeroCarousel-slide {
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 68rem;
  padding: 0 0.2rem;
  position: relative;
  width: 76vw;
}
@media only screen and (min-width: 38rem) {
  .SolutionsHeroCarousel-wrapper,
  .SolutionsHeroCarousel-slide {
    width: 82vw;
  }
  .GoCarousel-controlPrev-solutionsHero {
    left: 2rem;
  }
  .GoCarousel-controlNext-solutionsHero {
    right: 2rem;
  }
}
.Solutions-headline .Container {
  display: flex;
}
.Solutions-headline .GoCarousel {
  background-color: var(--color-background-accented);
  color: var(--color-text);
}
.Solutions-useCases,
.Solutions-caseStudies {
  margin-bottom: 6.25rem;
}
.Solutions-title {
  padding: 5rem 1.5rem 3rem;
}
.Solutions-title h1,
.WhoUsesSubPage-heroInner--caseStudy h1,
.WhoUsesSubPage-heroInner--useCase h1 {
  font-size: 1.5rem;
  font-style: normal;
  font-weight: normal;
  line-height: 2rem;
  margin-bottom: 0.5rem;
}
.WhoUsesSubPage-heroInner--caseStudy h1 {
  margin-top: 0;
}
.WhoUsesSubPage-heroInner--useCase h1 {
  margin-top: 1rem;
}
.Solutions-title h1 {
  text-align: center;
}
.Solutions-title h3 {
  color: var(--color-text);
  font-size: 1rem;
  font-weight: normal;
  margin-bottom: 0;
  text-align: center;
}
.Solutions-headlineText {
  display: inline-block;
}
.Solutions-headlineImg {
  margin-top: 1.5rem;
  position: relative;
  width: 100%;
}
.Solutions-headlineImg img {
  display: block;
  width: 100%;
}
.Solutions-headlineBody {
  align-items: flex-start;
  color: var(--color-text-subtle);
  display: flex;
  flex-direction: column;
  font-size: 0.875rem;
  font-weight: normal;
  margin-bottom: 1.5rem;
}
.Solutions-headlineBody a {
  align-items: center;
  display: flex;
  margin-top: 1rem;
  text-decoration: none;
  &:hover, &:focus {
    text-decoration: underline;
  }
}
.Solutions-headlineBody a i,
.WhyGo-reasonLearnMoreLink a i,
.WhyGo-reasonShowMoreLink a i {
  margin-left: 0.2rem;
  text-decoration: none;
  transition: transform 100ms ease-in-out;
}
.Solutions-headlineBody a:hover i,
.WhyGo-reasonLearnMoreLink a:hover i,
.WhyGo-reasonShowMoreLink a:hover i {
  transform: translateX(0.2rem);
}
.Solutions-headlineNotification {
  color: var(--color-text-subtle);
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 500;
  line-height: 2.25rem;
  margin: 1.5rem 0;
}
.Solutions-headline {
  background-color: var(--color-background-accented);
}
.Solutions-headline h2 {
  font-size: 1.5rem;
  font-style: normal;
  font-weight: normal;
  line-height: 2rem;
  margin-bottom: 1rem;
}
@media only screen and (min-width: 66.75rem) {
  .SolutionsHeroCarousel-slide {
    align-items: center;
    flex-direction: row-reverse;
    justify-content: space-between;
  }
  .Solutions-headlineText {
    width: 33%;
  }
  .Solutions-headlineImg {
    height: 100%;
    margin-bottom: 0;
    width: 60%;
  }
  .Solutions-headlineImg img {
    max-height: 100%;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translate(0, -50%);
  }
}
.SolutionsTabs-tabList {
  margin-top: 4rem;
  width: 100%;
}
.SolutionsTabs-tabList hr {
  border: var(--border);
  margin: -0.0625rem 0 2rem;
}
.SolutionsTabs-tab {
  background-color: var(--color-background);
  border-style: none;
  color: var(--color-text);
  cursor: pointer;
  font-size: 1rem;
  font-weight: 500;
  line-height: 2.25rem;
  margin-right: 1.625rem;
  outline: none;
  padding: 0.375rem 0;
}
.SolutionsTabs-tab:focus {
  border-bottom: 0.25rem solid #c6c8ca;
}
.SolutionsTabs-tab:last-of-type {
  margin-right: 0;
}
.SolutionsTabs-tab[aria-selected='true'] {
  border-bottom: 0.25rem solid var(--color-brand-primary);
}
@media only screen and (min-width: 48rem) {
  .SolutionsTabs-tab {
    font-size: 1.125rem;
    margin-right: 4rem;
  }
}
.Solutions-useCasesHeader h2,
.Solutions-caseStudiesHeader h2 {
}
.MarketingCardList {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 1.75rem;
  padding: unset;
}
.MarketingCard {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 0 1.75rem;
  text-align: left;
  box-sizing: border-box;
  width: auto;
  height: auto;
  min-height: 24.625rem;
  background: var(--color-background);
  border: var(--border);
  border-radius: 0.25rem;
}
.MarketingCard a:hover,
.MarketingCard a:focus {
  text-decoration: none;
}
.MarketingCard-section {
  margin-top: 2.625rem;
}
.MarketingCard-section__bottom {
  position: absolute;
  bottom: 2.625rem;
}
.MarketingCard-section__spacer {
  padding-bottom: 6.25rem;
}
.MarketingCard-title {
  color: var(--color-text);
  font-size: 1.125rem;
  line-height: 1.5rem;
  font-weight: 500;
  font-style: normal;
}
.MarketingCard-body {
  font-style: normal;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.5rem;
  letter-spacing: 0.1px;
  color: var(--color-text-subtle);
}
.MarketingCard-action {
  font-style: normal;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.5rem;
  letter-spacing: 0.1px;
  color: var(--color-text-link);
  background: unset;
  border: none;
  padding: unset;
  cursor: pointer;
}
.Solutions-cardList,
.Solutions-caseStudyList {
  display: grid;
  grid-gap: 1.5rem;
  grid-template-columns: repeat(1, 1fr);
  list-style: none;
  padding-left: 0;
}
.Solutions-cardList[hidden] {
  display: none;
}
.Solutions-caseStudiesList {
  margin: 0 0 1rem 0;
}
.Solutions-card {
  background: var(--color-background-accented);
  border: var(--border-card);
  border-radius: 0.625rem;
  box-sizing: border-box;
  flex: 0 100%;
}
@media only screen and (min-width: 38rem) {
  .Solutions-cardList, .MarketingCardList {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media only screen and (min-width: 57.7rem) {
  .Solutions-card {
    box-shadow: none;
    flex: 0 48%;
  }
  .Solutions-card:hover {
    box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
    transition: all 0.2s ease-in-out;
  }
  .Solutions-cardList, .MarketingCardList {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media only screen and (min-width: 62.5rem) {
  .Solutions-card {
    box-shadow: none;
    flex: 0 30%;
  }
}
.Solutions-useCaseLogo {
  height: 5rem;
  margin: 0 2rem;
  width: 100%;
}
.Solutions-card a:link,
.Solutions-card a:visited {
  color: var(--color-text);
  display: block;
  text-decoration: none;
}
.Solutions-useCaseAction {
  bottom: 1rem;
  color: var(--color-text-link);
  font-size: 1rem;
  font-weight: normal;
  position: absolute;
}
.Solutions-useCaseAction {
  align-items: center;
  display: flex;
}
.Solutions-useCaseAction i {
  margin-left: 0.5rem;
}
.Solutions-useCaseDescription {
  color: var(--color-text-subtle);
  font-size: 1rem;
  font-style: normal;
  font-weight: normal;
}
.Solutions-useCaseTitle {
  color: var(--color-text);
  font-size: 1.125rem;
  font-weight: 500;
}
.Solutions-useCaseBody {
  flex: 1;
  justify-content: center;
  margin-bottom: 2.5rem;
}

.Solutions-useCaseLogo {
  display: flex;
  flex: 1;
  justify-content: center;
  margin: 0;
}

.Solutions-useCaseLogo img {
  align-self: center;
  max-height: 4rem;
  max-width: 11rem;
}
.Solutions-useCaseLink {
  height: 100%;
  padding: 2rem 2rem 3rem;
  position: relative;
}
.Solutions-footer {
  margin: 2rem 0 2.875rem;
}
.Solutions-footer p {
  color: var(--color-text);
  font-size: 1.125rem;
  font-weight: normal;
}
.TestimonialsGo-quotes {
  display: flex;
  left: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  top: 0;
  transition: left 0.2s ease-out;
  width: 625rem;
}
.TestimonialsGo-quoteGroup {
  align-items: flex-start;
  display: flex;
  margin: 0 0;
  max-width: 62.5rem;
  padding: 3.75rem 2rem 2.25rem;
  width: 90vw;
}
.TestimonialsGo-quoteSingleItem {
  display: flex;
  flex: 1;
}
.TestimonialsGo-quoteContainer {
  display: inline-flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}
.TestimonialsGo-quoteSection {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.TestimonialsGo-quoteSection p {
  color: var(--color-text);
  font-size: 0.875rem;
  text-align: center;
}
.TestimonialsGo-author {
  color: var(--color-text);
  font-size: 0.8rem;
  font-style: normal;
  font-weight: normal;
  text-align: right;
  width: 100%;
}
.PullQuote-title,
.BackgroundQuote-title {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.NoWrapSpan {
  white-space: nowrap;
}
@media only screen and (min-width: 52rem) {
  .TestimonialsGo-quote {
    font-size: 1.3125rem;
  }
  .TestimonialsGo-author {
    font-size: 1rem;
  }
  .TestimonialsGo-quoteSection p {
    font-size: 1.3125rem;
    line-height: 2.25rem;
  }
}
.PullQuote {
  color: var(--color-text-subtle);
  margin-bottom: 2rem;
}
.PullQuote-body {
  margin: 1.5rem 0 1rem;
}
.PullQuote-link,
p.PullQuote-body,
p.BackgroundQuote-body {
  color: inherit;
}
.PullQuote-author,
.BackgroundQuote-author {
  display: flex;
  flex-wrap: wrap;
  font-style: normal;
  font-weight: 500;
  justify-content: flex-end;
  margin-left: auto;
  margin-top: 1rem;
}
a.BackgroundQuote-link {
  color: inherit;
}
.PullQuote-author {
  font-size: 0.875rem;
}
.BackgroundQuote {
  background-color: var(--color-background-testimonial);
  color: var(--white);
  margin: 1.5rem auto;
  padding: 2rem 1.5rem;
}
p.BackgroundQuote-body {
  font-size: 1.3125rem;
  line-height: 2.25rem;
}
.QuoteBlock {
  border-bottom: 0.25rem solid var(--color-brand-primary);
  border-top: 0.25rem solid var(--color-brand-primary);
  display: block;
  float: none;
  margin-bottom: 1.5rem;
  margin-left: 0;
  margin-right: 0;
  margin-top: 1.5rem;
  padding-bottom: 0.5rem;
  width: 100%;
}
@media only screen and (min-width: 48rem) {
  .QuoteBlock {
    float: right;
    margin-top: 0;
    width: 46%;
  }
  .PullQuote-body {
    font-size: 1.125rem;
    line-height: 1.75rem;
    margin: 1.5rem 0 1rem;
  }
  .BackgroundQuote-body {
    margin-top: 0;
  }
  .BackgroundQuote {
    padding: 3rem 4rem 2rem;
  }
  .PullQuote-author {
    font-size: 1rem;
  }
}
.QuoteBlock-body {
  color: var(--color-text);
  font-size: 1.125rem;
  line-height: 2rem;
}
.QuoteBlock-author {
  color: var(--color-text);
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: 3rem;
}
.QuoteBlock-link {
  color: var(--color-text-subtle);
}
.LargeMedia {
  align-items: flex-start;
  display: flex;
  padding: 2.125rem 0.5rem;
}
.LargeMedia + .LargeMedia {
  border-top: var(--border);
}
.LargeMedia-image {
  height: 5rem;
  margin-right: 1rem;
  object-fit: contain;
  width: 5rem;
}
.LargeMedia-body {
  flex: 1;
}

.SmallMedia-image {
  height: 3rem;
  margin-right: 1rem;
  object-fit: contain;
  width: 3rem;
}

.XLargeMedia-image {
  height: 8rem;
  margin-right: 1rem;
  object-fit: contain;
  width: 8rem;
}

@media only screen and (min-width: 48rem) {
  .LargeMedia {
    align-items: center;
  }
  .SmallMedia-image {
    height: 9rem;
    margin-right: 5.5rem;
    width: 9rem;
  }
  .LargeMedia-image {
    height: 12.5rem;
    margin-right: 5.5rem;
    width: 12.5rem;
  }
  .XLargeMedia-image {
    height: 18rem;
    margin-right: 1rem;
    object-fit: contain;
    width: 18rem;
  }
}
.MediaList {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  list-style: none;
  padding: 0;
}
.MediaList-item {
  flex: 0 1 14rem;
  justify-content: space-around;
  text-align: center;
}
.MediaList-itemImage {
  height: 10rem;
  object-fit: contain;
  width: 10rem;
}
.MediaList-itemTitle {
  color: var(--color-text);
}
.MediaList-itemBody {
  color: var(--color-button-text-disabled);
}
@media only screen and (min-width: 48rem) {
  .MediaList {
    margin-left: -2rem; /* First item of each row should have no left gutter */
  }
  .MediaList-item {
    flex: 0 0 12rem;
    margin-left: 2rem; /* Gutter between items */
  }
}
.MediaList-itemBox {
  background-color: #f8f8f8;
  box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
  flex: 0 1 33.125rem;
  justify-content: space-around;
  margin-top: 2rem;
  padding: 1.5rem;
}
.MediaList-itemBoxHeader-top {
  align-items: center;
  flex-direction: column;
  margin: auto;
  text-align: center;
  width: 10.75rem;
}
.MediaList-itemBoxHeader {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin: auto;
  text-align: center;
  width: 10.75rem;
}
.MediaList-itemBoxImage {
  height: 5.125rem;
  object-fit: contain;
  width: 5.125rem;
}
.MediaList-itemBox .MediaList-itemBoxTitle {
  color: var(--color-text);
  font-size: 1.5rem;
  font-weight: normal;
  margin: 0.5rem 0 0 0;
}
.MediaList-itemBox .MediaList-itemBoxBody {
  align-self: flex-end;
  color: var(--color-button-text-disabled);
  flex: 1;
}
.MediaList-itemBox .MediaList-itemBoxBody-top {
  align-self: flex-start;
  color: var(--color-button-text-disabled);
  flex: 1;
  margin: auto !important;
}
@media only screen and (min-width: 48rem) {
  .MediaList-itemBoxHeader {
    justify-content: flex-end;
    margin: 0 1rem 1.5rem 0;
  }
  .MediaList-itemBox {
    display: flex;
    flex: 0 0 33.125rem;
    margin: 2rem 0 0 2rem; /* Gutter between grid cells. */
    min-height: 15.0625rem;
  }
  .MediaList-itemBox .MediaList-itemBoxBody {
    margin: 0 1.3rem 2rem 0;
  }
}
.StarItem {
  align-items: flex-start;
  display: flex;
}
.StarItem-icon {
  align-items: center;
  background: linear-gradient(
    10.64deg,
    var(--color-brand-primary) 0%,
    #00a29c 100%
  );
  border-radius: 50%;
  display: flex;
  height: 1.5rem;
  justify-content: center;
  margin: 1.1rem 1.25rem 0 0;
  width: 1.5rem;
}
.StarItem-image {
  height: 1.25rem;
  object-fit: contain;
  width: 1.25rem;
}
.StarItem-body {
  flex: 1;
}
.StarItem-title {
  margin: 1rem 0;
}

.Right {
  float: right;
  margin-left: 1rem;
}
.Left {
  float: left;
  margin-right: 1rem;
}
.SearchForm {
  align-items: center;
  background-color: transparent;
  border-radius: 0.25rem;
  display: flex;
  flex: 1;
  font-size: 1rem;
  height: 2rem;
  margin: 0.6875rem 0;
  max-width: 2rem;
  transition: max-width 200ms;
}
.SearchForm--open {
  background-color: var(--color-background);
  margin-left: 1.5rem;
  max-width: 100%;
}
.SearchForm svg {
  fill: var(--color-background);
}
.SearchForm--open svg {
  fill: var(--color-button-text-disabled);
  margin-right: 0.5rem;
}
.SearchForm-input {
  height: 100%;
  opacity: 0;
  padding: 0;
  transition: width 200ms, padding 200ms, opacity 200ms;
  width: 0;
}
.SearchForm--open .SearchForm-input {
  flex: 1;
  opacity: 1;
  padding: 0.5rem;
  transition: width 200ms, padding 200ms;
  width: 100%;
}
.SearchForm-input::placeholder {
  color: #848688;
}
.SearchForm-input {
  background-color: transparent;
  border: none;
  box-sizing: border-box;
  font: inherit;
  opacity: 0;
  outline: none;
}
.SearchForm-submit {
  background-color: transparent;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
  display: flex;
  outline: 0;
  padding: 0;
}
.SearchForm svg {
  box-sizing: border-box;
  cursor: pointer;
  margin-left: 0.5rem;
  width: 1.4375rem;
}
@media only screen and (min-width: 32rem) {
  .Header-rightContent {
    width: 100%;
  }
  .SearchForm {
    background-color: var(--color-background);
    margin: 0.6rem 1.4rem 0.6rem 0;
    max-width: none;
  }
  .SearchForm-input {
    opacity: 1;
    padding: initial;
    width: 100%;
  }
  .SearchForm svg {
    fill: var(--color-button-text-disabled);
    margin-right: 0.5rem;
  }
}
.Series-list {
  list-style: none;
  padding: 0;
}
.Series-listItem {
  display: flex;
}
.Series-listItem a {
  display: flex;
  flex: 1;
  padding: 1.25rem 0;
}
.Series-listItem + .Series-listItem {
  border-top: var(--border);
}
.Series-listItemIcon {
  margin-right: 1rem;
}
.Series-listItemIcon img {
  width: 4rem;
}
.Series-listItemText {
  flex: 1;
}
.Series-listItemPrimary {
  display: block;
  font-size: 1.125rem;
  margin: 0;
}
.Series-listItemSecondary {
  color: var(--color-text);
  display: inline-block;
  margin-bottom: 0;
  text-decoration: none;
}
.UseCaseSubNav {
  background-color: var(--color-background);
  box-shadow: 0 0.125rem 0.125rem rgba(171, 171, 171, 0.405239);
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 10;
}
.UseCaseSubNav--default {
  top: 3.5rem;
}
.UseCaseSubNav-menu {
  background-color: var(--color-background);
  box-shadow: 0 0.125rem 0.125rem rgba(171, 171, 171, 0.405239);
  max-height: 0;
  overflow: hidden;
  padding-left: 1rem;
  position: absolute;
  transition: max-height 100ms ease-in-out;
  width: 100%;
}
.UseCaseSubNav-menuHeader {
  align-items: center;
  background: transparent;
  border: none;
  color: var(--color-button-text-disabled);
  cursor: pointer;
  display: flex;
  font-size: 0.875rem;
  justify-content: space-between;
  outline: none;
  padding: 0.8125rem 1rem 0.8125rem 1.6875rem;
  width: 100%;
}
.UseCaseSubNav-menuIcon {
  pointer-events: none;
  transition: transform 100ms ease-in-out;
}
.UseCaseSubNav-menuIcon--open {
  transform: rotate(180deg);
}
.UseCaseSubNav-menu--open {
  max-height: 25rem;
  padding-bottom: 2rem;
}
.UseCase-content {
  display: flex;
  flex-direction: row;
}
.CaseStudy-content {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
}
.CaseStudy-contentBody img {
  width: 100%;
}
.CaseStudy-contentBody hr {
  border: var(--border);
  margin: 2rem 0 2rem;
}
.CaseStudy-contentAside {
  flex: 0 0 33.33%;
  min-width: 18.75rem;
}
.UseCase-contentAside {
  display: none;
}
.UseCase-content {
  margin-top: 2rem;
}
.UseCase-contentBody {
  flex: 0 0 100%;
  margin-top: 1rem;
  max-width: 47.8125rem;
  width: 100%;
}
.UseCase-contentBody h2:first-of-type,
.UseCase-contentBody h3:first-of-type {
  margin-top: 0;
}
.UseCase-contentBody h2,
.FeaturedUsers h2:first-of-type {
  margin-bottom: 1.5rem;
  margin-top: 3rem;
}
@media only screen and (min-width: 57.7rem) {
  .CaseStudy-content {
    grid-template-columns: 2fr 1fr;
  }
  .UseCase-contentAside {
    display: block;
    flex: 0 0 20%;
    position: sticky;
  }
  .UseCaseSubNav {
    display: none;
  }
  .UseCase-contentBody {
    flex: 0 0 80%;
    order: 1;
    width: 80%;
  }
  .CaseStudy-contentAside {
    order: 2;
  }
  .CaseStudy-contentBody {
    order: 1;
  }
}
.UseCaseSubNav-anchorLinks {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
}
.UseCaseSubNav-anchorLinks--sticky {
  position: sticky;
  top: 2rem;
}
a.UseCase-anchorLink {
  background: transparent;
  border: none;
  color: var(--color-text);
  font-size: 1.125rem;
  font-weight: normal;
  margin-top: 1rem;
  padding-left: 0.5rem;
  position: relative;
}
a.UseCase-anchorLink:first-of-type {
  margin-top: 1.5rem;
}
a.UseCase-anchorLink.selected {
  font-weight: 500;
}
a.UseCase-anchorLink.selected::before {
  background-color: var(--color-text-link);
  border-radius: 1rem;
  content: ' ';
  display: inline-block;
  height: 0.3rem;
  left: -0.5rem;
  position: absolute;
  top: 0.5rem;
  width: 0.3rem;
}
.WhoUsesSubPage-hero--useCase {
  margin-top: 2.625rem;
}
.WhoUsesSubPage-heroInner--caseStudy,
.WhoUsesSubPage-heroInner--useCase {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-bottom: 1.5rem;
  position: relative;
}
.WhoUsesSubPage-heroInner--useCase {
  background-color: var(--color-background-accented);
  padding-bottom: 2.5rem;
  padding-top: 3.5rem;
}
.WhoUsesSubPage-heroInner--caseStudy > div {
  justify-content: center;
}
.WhoUsesSubPage-heroContent--caseStudy {
  display: flex;
  flex-direction: column-reverse;
  max-width: 75.75rem;
  position: relative;
  z-index: 1;
}
.WhoUsesSubPage-heroContent--useCase {
  margin: auto;
  max-width: 75.75rem;
  width: 100%;
}
.WhoUsesSubPage-heroText--caseStudy,
.WhoUsesSubPage-heroText--useCase {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
}
.WhoUsesSubPage-heroText--caseStudy {
  padding: 2rem 1.5rem;
}
.WhoUsesSubPage-heroText--useCase {
  padding: 0 1.5rem;
}
.WhoUsesSubPage-heroText--caseStudy h1,
.WhoUsesSubPage-heroText--useCase h1 {
  color: var(--color-text);
}
.WhoUsesSubPage-heroImg {
  background: -webkit-linear-gradient(
    0deg,
    var(--color-background-accented) 50vw,
    #bfeaf4 50vw
  );
  display: flex;
  max-width: 75.75rem;
  padding-left: 1.5rem;
  position: relative;
  width: 100%;
  z-index: 1;
}
.WhoUsesSubPage-heroImg img {
  height: auto;
  max-height: 10.625rem;
  min-height: 8rem;
  width: auto;
}
@media only screen and (min-width: 38rem) {
  .Solutions-title h1,
  .WhoUsesSubPage-heroInner--caseStudy h1,
  .WhoUsesSubPage-heroInner--useCase h1 {
    font-size: 2.25rem;
    line-height: 3rem;
  }
  .WhoUsesSubPage-heroImg {
    background: -webkit-linear-gradient(
      0deg,
      var(--color-background-accented) 40vw,
      #bfeaf4 40vw
    );
  }
  .WhoUsesSubPage-heroImg img {
    max-height: 15.625rem;
    min-height: 10.625rem;
  }
}
@media only screen and (min-width: 57.7rem) {
  .WhoUsesSubPage-hero--useCase {
    margin-top: 0;
  }
  .WhoUsesSubPage-heroInner--caseStudy {
    background: -webkit-linear-gradient(
      0deg,
      var(--color-background-accented) 70vw,
      #bfeaf4 70vw
    );
    flex-direction: row;
  }
  .WhoUsesSubPage-heroContent--caseStudy {
    align-items: center;
    flex-direction: row;
  }
  .WhoUsesSubPage-heroImg {
    background: transparent;
    min-width: 37.75rem;
    padding: 0;
    width: 55%;
  }
  .WhoUsesSubPage-heroText--caseStudy {
    width: 45%;
  }
  .WhoUsesSubPage-heroImg img {
    max-height: none;
    min-height: 18.75rem;
    width: 100%;
  }
  .WhoUsesSubPage-heroInner--useCase h1 {
    margin-top: 3rem;
  }
}
.ToolsBlurbs {
  display: grid;
  gap: 2rem 3.4375rem;
  grid-template-columns: 1fr;
  margin-top: 1.5rem;
}
.ToolsBlurbs-blurb {
  background-color: var(--color-background-accented);
  border: var(--border);
  border-radius: 0.25rem;
  padding: 1.5rem 1rem;
}
.ToolsBlurbs-blurbHeader {
  align-items: center;
  display: flex;
}
.ToolsBlurbs-blurbIcon {
  height: 1.5rem;
  margin-right: 1rem;
  width: 1.5rem;
}
@media only screen and (min-width: 48rem) {
  .ToolsBlurbs {
    grid-template-columns: 1fr 1fr;
  }
}
img.PullQuote-image {
  width: 2.625rem;
}
.FlatCard {
  border: var(--border);
  border-radius: 0.25rem;
  padding: 0 1.5rem;
  padding-bottom: 0.75rem;
  width: 100%;
  min-height: 11.25rem;
}
.FlatCard-wrapper {
  display: grid;
  grid-gap: 2rem;
  grid-auto-flow: row;
  grid-template-columns: 1fr 1fr 1fr;
  margin-top: 1rem;
}
.FlatCard-column {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  width: 100%;
  margin-top: 1rem;
}
.FlatCard-bottom-spacer {
  margin-bottom: 4rem;
}
.FlatCard-column .FlatCard {
  width: 100%;
}
.FlatCard h3 {
  font-style: normal;
  font-weight: 500;
  font-size:  1rem;
  line-height: 1.5rem;
}
.Masonry {
  column-count: 1;
  column-gap: 3.5rem;
  row-gap: 3.5rem;
  column-fill: balance;
}
.BigCard {
  border: var(--border);
  border-radius: 0.25rem;
  padding: 0 1.75rem;
  padding-bottom: 1rem;
  margin-bottom: 1.5rem;
}
.Masonry .BigCard {
  margin-bottom: unset;
  margin-top: 1.5rem;
  min-width: 33%;
  height: max-content;
  display: inline-block;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  break-inside: avoid;
  width: 100%;
}
.BigCard h2 {
  margin-top: 1.5rem;
  font-style: normal;
  font-weight: 400;
  font-size: 1.125rem;
  line-height: 2rem;
  border-bottom: var(--border);
  padding-bottom: 0.5rem;
}
@media only screen and (min-width: 48rem) {
  .Masonry {
    column-count: 2;
  }
}
.Card {
  background-color: var(--white);
  border: var(--border);
  border-radius: 0.25rem;
  height: 100%;
}
[data-theme='dark'] .Card {
  background-color: var(--abbey);
  border: none;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .Card {
    background-color: var(--abbey);
    border: none;
  }
}
.Card a,
.Card a:visited,
.Card a:hover {
  text-decoration: none;
}

.Card-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.Card-thumbnail {
  background-position: center;
  background-size: cover;
  height: 9.5625rem;
}

.Card-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1.5rem;
}

.Card-contentTitle {
  color: var(--color-text);
  font-size: 1.125rem;
  font-weight: 500;
}

.Card-contentBody {
  color: var(--color-text-subtle);
  font-size: 0.875rem;
  margin-top: 1rem;
}

.Card-lineClamp {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
}

.Card-contentCta {
  align-items: center;
  display: flex;
  margin-top: auto;
}

.Card-contentCta span {
  margin-right: 0.6875rem;
}

.Card-selfPacedFooter {
  display: flex;
}

.Card-selfPacedCredits {
  color: var(--color-text-subtle);
  flex: 1;
  font-size: 0.75rem;
}

.Card-selfPacedRating {
  width: 5rem;
}

.Card-starRating {
  background-image: url('/images/learn/star-rating.png');
  background-position: left;
  background-repeat: no-repeat;
  height: 1rem;
}

.Book a,
.Book a:visited,
.Book a:hover {
  text-decoration: none;
}

.Book-inner {
  display: flex;
  align-items: flex-start;
}

.Book-thumbnail {
  width: 6.625rem;
}

.Book-thumbnail img {
  width: 6.25rem;
  height: 7.875rem;
  border-radius: 0.625rem;
  filter: drop-shadow(0 0.125rem 0.125rem rgba(200, 200, 200, 0.29458));
}

.Book-content {
  margin-left: 2rem;
}

.Book-eyebrow {
  font-style: normal;
  font-weight: 400;
  font-size: 0.688rem;
  letter-spacing: 0.063rem;
  text-transform: uppercase;
  color: var(--color-text-subtle);
  margin-top: 0;
}

.Book-title {
  color: var(--color-text);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5rem;
  margin: 0 0 0.5rem;
}

.Book-description {
  color: var(--color-text-subtle);
  font-size: 0.875rem;
}

.Book-cta {
  align-items: center;
  display: flex;
  height: 1.5rem;
}

.Book-cta span {
  margin-right: 0.6875rem;
  font-style: normal;
  font-weight: 400;
  font-size: 0.875rem;
  line-height: 1rem;
  letter-spacing: 0.016rem;
}

#blog h1.small {
  font-weight: bold;
  font-size: 1rem;
}
#blog a.head {
  color: black;
  text-decoration: none !important;
}
#blog a.head:hover {
  text-decoration: underline;
}
#blog #content .author {
  font-style: italic;
}
#blog #content .Article {
  margin-bottom: 50px;
}
#blog #content .date {
  color: var(--color-text-subtle);
}
#blog #content .tags {
  color: #999;
  font-size: smaller;
}
#blog #content .iframe,
#content .image {
  margin: 20px;
}
#blog #content .title {
  margin: 20px 0;
}
#blog #content img {
  max-width: 100%;
}
#blog .Article {
  max-width: 55rem;
}
#blog .Article[data-slug='/blog/go-fonts'] {
  font-family: Go, sans-serif;
}
#blog .Article[data-slug='/blog/go-fonts'] pre,
#blog .Article[data-slug='/blog/go-fonts'] code {
  font-family: 'Go Mono', monospace;
}
#blog pre,
#blog code {
  font-family: monospace;
}
#blog svg {
  fill: var(--color-text);
}
#blog .image > img {
  background-color: var(--white);
}
#blogindex p.blogtitle a {
  font-weight: bold;
}
#blogindex p.blogsummary {
  margin-block-start: 0px;
}
#blogindex p.blogtitle {
  margin-block-end: 0px;
}
#blogindex div.prevnext {
  margin-top: 2em;
}
#blog .Article[data-slug='/blog/'] h1 {
  margin-top: 1em;
}

#blog pre .highlight {
  font-weight: bold;
}

/* Inline runnable snippets (play.js/initPlayground) */
#blog pre,
#content .code pre,
#content .playground pre,
#content .output pre {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  outline: 0 solid transparent;
  overflow: auto;
}
#content .playground .number,
#content .code .number {
  color: #999;
}
#blog pre,
#content .code,
#content .playground,
#content .output {
  width: auto;
  margin: 1.25rem;
  padding: 0.625rem;
  border-radius: 0.3125rem;
}
#blog pre,
#content .code,
#content .playground {
  background: var(--color-background-accented);
}
#content .output {
  background: #202020;
}
#content .output .stdout,
#content .output pre {
  color: #e6e6e6;
}
#content .output .stderr,
#content .output .error {
  color: rgb(244, 74, 63);
}
#content .output .system,
#content .output .exit {
  color: rgb(255, 209, 77);
}
#content .buttons {
  position: relative;
  float: right;
  top: -3.125rem;
  right: 1.875rem;
}
#content .output .buttons {
  top: -3.75rem;
  right: 0;
  height: 0;
}
#content .buttons .kill {
  display: none;
  visibility: hidden;
}
a.error {
  font-weight: bold;
  color: white;
  background-color: darkred;
  border-bottom-left-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
  padding: 0.125rem 0.25rem 0.125rem 0.25rem;
  /* TRBL */
}
.downloading {
  background: #f9f9be;
  padding: 0.625rem;
  text-align: center;
  border-radius: 0.3125rem;
}
.Security-gridContainer,
.Security-comingSoon {
  padding: 3rem 1.5rem 1rem;
}
.Security-card .Card-content ul {
  padding-left: 1rem;
}
.Security-card .Card-content li {
  margin-bottom: 1rem;
  list-style: initial;
}
.Security-card .Card-contentCta {
  margin-top: 1rem;
}
.Security-foundations {
  padding: 2rem 0;
}
.Security-foundations .Card {
  border: none;
}
.Security-foundations .Card-content {
  padding: 0;
}
.Security-foundations .Card-contentBody {
  flex: 0;
}
.Security-foundations .Card-icon {
  padding-bottom: 1.5rem;
}
.Security-comingSoon,
.Security-comingSoonTitle,
.Security-comingSoonContent,
.Security-comingSoonImage {
  display: flex;
  justify-content: center;
}
.Security-comingSoon {
  flex-direction: column;
}
.Security-comingSoonTitle {
  justify-content: center;
}
.Security-comingSoonTitle h3 {
  color: #71757b;
  font-weight: normal;
  font-size: 1.5rem;
}
.Security-comingSoonContent ul {
  padding-left: 1rem;
}
.Security-comingSoonContent li {
  margin-bottom: 1rem;
}
.Security-getStarted {
  background: var(--color-brand-primary);
}
.Security-getStarted,
.Security-recentupdates {
  padding: 2.5rem 0;
}
.Security-getStarted .Security-sectionHeader {
  color: var(--white);
}
.Security-getStarted .Security-sectionHeader,
.Security-recentupdates .Security-sectionHeader {
  justify-content: center;
  margin-bottom: 1.25rem;
}
.Security-getStarted .Security-sectionHeader h2,
.Security-recentupdates .Security-sectionHeader h2 {
  font-size: 2.25rem;
  margin: 0;
}
.Security-getStarted .Security-card {
  height: auto;
}
.Security-getStarted .Card-icon {
  padding: 1.5rem 0 0 1.5rem;
}
.Security-getStarted .Card-contentTitle {
  flex: 1;
}
.Security-getStarted .Card-contentImage {
  flex: 1;
}
.Security-comingSoonImage img {
  width: 100%;
  max-width: 14.063rem;
}
.Security-secondary-cta {
  background-color: var(--color-brand-primary);
}
.Security-secondary-cta .Container {
  display: flex;
  flex-direction: column;
}
.Security-secondary-cta-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.Security-secondary-cta-body a {
  height: 4rem;
  margin-top: 1.25rem;
}
.Security-secondary-cta-body a:hover {
  text-decoration: none;
}
.Security-secondary-cta-body span {
  text-align: center;
  padding: 1.25rem 4.7rem;
  background-color: var(--color-button-accented);
  border-radius: 0.25rem;
  color: #000;
}
.Security-secondary-cta-body h2 {
  color: var(--white);
  font-size: 2.25rem;
  line-height: 2.925rem;
  font-weight: normal;
}
.Security-secondary-cta-image {
  font-size: 0;
}
.Security-secondary-cta-image img {
  max-width: 100%;
}
@media only screen and (min-width: 72.75rem) {
  .Security-getStarted,
  .Security-recentupdates {
    padding: 3.75rem 0 5rem 0;
  }
  .Security-getStarted .Security-sectionHeader {
    margin-bottom: 2.5rem;
  }
  .Security-getStarted .Security-cardList {
    grid-template-columns: repeat(3, 1fr);
  }
  .Security-comingSoon {
    flex-direction: row;
  }
  .Security-comingSoonTitle {
    flex-direction: column;
    justify-content: center;
    flex: 1 0 12.5rem;
    align-items: center;
  }
  .Security-comingSoonContent {
    flex-direction: column;
    justify-content: center;
    flex: 1 1 auto;
  }
  .Security-comingSoonImage {
    flex: 1 1 12.5rem;
  }
  .Security-secondary-cta {
    background: #beeaf5;
    background-image: radial-gradient(
      60.0625rem 60.0625rem,
      var(--color-brand-primary) 50%,
      #beeaf5 50%
    );
    background-position: -13rem 50%;
    background-size: 75rem 75rem;
    background-repeat: no-repeat;
    min-height: 22.5rem;
  }
  .Security-secondary-cta .Container {
    display: flex;
    flex-direction: row;
    align-items: center;
  }
  .Security-secondary-cta-image img {
    max-width: initial;
  }
}
.Playground-headerContainer {
  text-align: center;
}
.Playground-popout {
  background: url('/images/play-link.svg') no-repeat;
  background-position: right center;
  cursor: pointer;
  display: block;
  font-size: 1rem;
  padding: 0 1.688rem;
}
.Playground-input,
.Playground-output {
  padding: 0;
  margin: 0;
  font-family: Menlo, monospace;
  font-size: 0.875rem;
}
.Playground-inputContainer {
  border-top-left-radius: 0.3125rem;
  border-top-right-radius: 0.3125rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.PlayPage {
  color: var(--color-text);
}
.PlayPage .Playground-inputContainer {
  height: 30em;
}
.PlayPage .Playground-outputContainer {
  height: 20em;
}
@media screen and (min-height: 50em) {
  .PlayPage .Playground-inputContainer {
    height: 40em;
  }
}
.PlayAbout {
  color: var(--color-text);
  font-size: 83%;
}
.Playground-input {
  width: 100%;
  height: 100%;
  border: none;
  outline: none;
  padding: 0 0.625rem 0 0.625rem;
  min-height: 13rem;
  resize: none;
}
.Playground-inputContainer #wrap {
  height: 100%;
  min-height: 0; /* prevent #wrap from overflowing the container */
}
.Playground-outputContainer {
  border-bottom-right-radius: 0.3125rem;
  border-bottom-left-radius: 0.3125rem;
  border-top: none !important;
  padding: 0.625rem;
  height: 5rem;
  margin-bottom: 1rem;
  overflow: auto;
}
.Playground-output {
  padding: 0;
  border-radius: 0;
}
.Playground-output .stderr {
  color: var(--color-text-alert);
}
.Playground-output .system {
  color: var(--color-text-subtle);
}
.Playground-inputContainer,
.Playground-input {
  background: var(--color-background-playground-input);
}
.Playground-runButton {
  background-color: var(--color-background-playground-input) !important;
}
.Playground-outputContainer,
.Playground-output {
  background: var(--color-background-code);
}
.Playground-inputContainer,
.Playground-input,
.Playground-outputContainer,
.Playground-output {
  color: var(--color-text);
}
.Playground-inputContainer,
.Playground-outputContainer {
  border: var(--border-code);
  resize: vertical;
}
.Playground-preContainer {
  font-size: 0.8em;
  font-style: italic;
  padding: 0.3rem 0 0.3rem 0.625rem;
}
.Playground-controls {
  display: flex;
  flex-wrap: wrap;
}
.Playground-buttons {
  display: flex;
  flex: 1;
  flex-wrap: nowrap;
  gap: 0.5rem;
  justify-content: flex-end;
}
.Playground-selectExample,
.Playground-selectGoVersion,
.Playground-shareURL {
  background-color: var(--color-background);
  border-radius: 3px;
  border: var(--border);
  color: var(--color-input-text);
  font-family: inherit;
  font-size: 16px;
  /* Prevents automatic zoom on mobile devices */
  height: 1.75rem;
  margin: 0 0 0.5rem 0;
  width: 100%;
}
.Playground-secondaryButtons {
  white-space: nowrap;
}
.Playground-secondaryButtons .Button:not(:first-child) {
  margin-left: 0.4375rem;
}
@media only screen and (min-width: 27.8125rem) {
  .Playground-outputContainer {
    margin-bottom: 1.688rem;
  }
  .Playground-controls {
    flex-wrap: nowrap;
  }
  .Playground-selectExample,
  .Playground-selectGoVersion,
  .Playground-shareURL {
    margin: 0 0.4375rem 0 0;
    width: auto;
  }
}
h1.Playground-title {
  line-height: 1.75rem;
  display: inline;
  margin: 0;
}
h2.Playground-about {
  font-size: 1rem;
  line-height: 2rem;
  vertical-align: bottom;
  height: 1.75rem;
  display: inline;
  margin: 0;
  margin-left: 1rem;
}
.PlayPage .Playground-controls {
  align-items: start;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.5rem;
  margin-top: 1.5rem;
  padding: 0 1rem;
}
@media only screen and (min-width: 57.7rem) {
  .PlayPage .Playground-controls {
    align-items: initial;
    flex-direction: row;
    margin-bottom: 1.5rem;
    margin-top: 3rem;
    padding: 0;
  }
}
.linedtextarea .lines {
  float: left;
  overflow: hidden;
  text-align: right;
}
.linedtextarea .lines div {
  padding-right: 5px;
  color: lightgray;
  overflow: hidden;
}
.linedtextarea .lineerror {
  color: black !important;
  background: #fdd;
}
.linedtextarea textarea {
  height: 100%;
  width: 100%;
  float: right;
  padding: 0;
  font-size: 0.83rem;
}
.Button,
.Button:link,
.Button:visited {
  align-items: center;
  background-color: var(--color-background-accented);
  border: none;
  border-radius: 0.1875rem;
  box-shadow: 0 0.125rem 5px rgba(0, 0, 0, 0.2);
  box-sizing: border-box;
  color: var(--color-text-link);
  cursor: pointer;
  display: inline-flex;
  font: bold 0.875rem Roboto, sans-serif;
  height: 1.75rem;
  padding: 0 0.625rem;
  justify-content: center;
  min-width: 4.063rem;
  text-decoration: none;
}
.Button:active {
  box-shadow: 0 0.0625rem 3px rgba(0, 0, 0, 0.2);
}
.Button--primary,
.Button--primary:link,
.Button--primary:visited {
  border: 0.0625rem solid #00add8;
}
.Playground-button,
.WhyGo-reasonLink {
  color: var(--color-bright-text-link) !important;
}
/* Auto-generated table of contents */
.TOC table {
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}
.TOC table td {
  vertical-align: top;
}
.TOC th {
  padding-left: 1.25rem;
  max-width: 50rem;
  text-align: left;
  font-weight: normal;
}
.TOC dl {
  margin-left: 1.25rem;
  max-width: 50rem;
  font-size: 0.875rem;
  margin-block-end: 0;
  margin-block-start: 0;
}
.TOC dd {
  margin: 0 0 0 1.25rem;
  font-size: 0.875rem;
}
.expandAll {
  cursor: pointer;
  margin: 1.25rem 0;
  font-weight: normal;
  font-size: 0.8em;
}
.toggleButton {
  cursor: pointer;
  background-color: var(--color-background-accented);
  padding: 0.5rem;
}
h3.toggleButton {
  font-style: normal;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.5rem;
  padding-left: 1rem;
  display: flex;
  align-items: center;
}
#archive h2.toggleButton {
  background-color: var(--color-background);
}
.toggleButton span.toggleText {
  font-style: normal;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.5rem;
  color: var(--color-text-link);
  margin-left: 0.625rem;
}
.toggleButton-img {
  display: block;
}
.toggleButton-img-dark {
  display: none;
}
[data-theme='dark'] .toggleButton-img {
  display: none;
}
[data-theme='dark'] .toggleButton-img-dark {
  display: block;
}
.toggle .collapsed img {
  transform: rotate(180deg);
}
.toggle > .collapsed {
  display: block;
}
.toggle > .expanded {
  display: none;
}
.toggleVisible > .collapsed {
  display: none;
}
.toggleVisible > .expanded {
  display: block;
}
/* for doc/go1.html */
table.codetable {
  margin-left: auto;
  margin-right: auto;
  border-style: none;
}
table.codetable td {
  padding-right: 0.625rem;
}
/* for various doc pages */
img.gopher {
  float: right;
  margin-left: 0.625rem;
  margin-bottom: 0.625rem;
  z-index: -1;
}
/* for pkg.tmpl */
div.play {
  padding: 0 1.25rem 2.5rem 1.25rem;
}
div.play pre,
div.play textarea,
div.play .lines {
  padding: 0;
  margin: 0;
  font-family: Menlo, monospace;
  font-size: 0.875rem;
}
div.play .input {
  padding: 0.625rem;
  margin-top: 0.625rem;

  border-top-left-radius: 0.3125rem;
  border-top-right-radius: 0.3125rem;

  overflow: hidden;
}
div.play .input textarea {
  width: 100%;
  height: 100%;
  border: none;
  outline: none;
  resize: none;

  overflow: hidden;
}
div#playground .input textarea {
  overflow: auto;
  resize: auto;
}
div.play .output {
  border-top: none !important;

  padding: 0.625rem;
  max-height: 12.5rem;
  overflow: auto;

  border-bottom-right-radius: 0.3125rem;
  border-bottom-left-radius: 0.3125rem;
}
div.play .output pre {
  padding: 0;
  border-radius: 0;
}
div.play .input,
div.play .input textarea,
div.play .output,
div.play .output pre {
  background: var(--color-background-accented);
  color: var(--color-text);
}
div.play .input,
div.play .output {
  border: var(--border);
}
div.play .buttons {
  float: right;
  padding: 0.625rem 0;
  text-align: right;
}
div.play .buttons .Button {
  margin-left: 0.3125rem;
}

/* TODO(rsc): are these selectors stale? It looks like they were not ported to go.dev/play.
 * See for example .Playground-output .stderr. */
.output .stderr {
  color: #933;
}
.output .system {
  color: #999;
}

.permalink {
  display: none;
}
:hover > .permalink {
  display: inline;
}
#pkg-index h3 {
  font-size: 1rem;
}
.pkg-dir {
  padding: 0 0.625rem;
}
.pkg-dir table {
  border-collapse: collapse;
  border-spacing: 0;
}
.pkg-name {
  margin-left: 0.625rem;
  padding-right: 0.625rem;
}
th.pkg-name {
  text-align: left;
}
/* for docs */
.Note {
  /* For styling "Note" sections. */
  background-color: var(--color-background-accented);
  font-size: 0.875rem;
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
  max-width: 50rem;
  padding: 0.5rem 0.5rem 0.5rem 0.625rem;
}
/* Tabs */
.TabSection {
  background: var(--color-background);
  border: var(--border);
  border-radius: 0.3125rem;
  box-shadow: none;
  max-width: 50rem;
}
.TabSection-tabList {
  flex-shrink: 0;
  position: relative;
  border-bottom: var(--border);
}
.TabSection-tab {
  background: var(--color-background);
  border: none;
  color: var(--color-text);
  line-height: 3rem;
  padding: 0 1.125rem;
  position: relative;
  border-radius: 0.3125rem;
}
.TabSection-underline {
  display: none;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}
.TabSection-tab[aria-selected='true'] .TabSection-underline {
  display: block;
  background-color: var(--color-background);
}
.TabSection-tab[aria-selected='true'] {
  color: var(--color-text-link);
  outline: 0;
}
.TabSection-tab:focus {
  color: var(--color-text-link);
  outline: 0;
}
.TabSection-tabPanel {
  font-size: 0.875rem;
  padding: 1rem 0;
}
/* Tutorial previous and next links */
.Navigation {
  font-size: 0.875rem;
}
.Navigation-prev {
  float: left;
  font-weight: bold;
}
.Navigation-next {
  float: right;
  font-weight: bold;
}
/* Table in doc topics. */
.DocTable {
  border-collapse: collapse;
  font-size: 0.875rem;
  margin: 1.25rem;
  max-width: 50rem;
}
.DocTable-row {
  border-bottom: var(--border);
  height: 3rem;
  vertical-align: top;
}
.DocTable-head {
  background: var(--color-background-accented);
  border-bottom: var(--border);
  border-top: var(--border);
  height: 3rem;
}
.DocTable-cell {
  padding: 0.4375rem;
}
.DocTable-cell pre {
  font-size: 0.775rem;
}
.DocTable-cell p,
.DocTable-cell pre {
  margin: 0rem 0rem 0.875rem;
}
.DocTable-row--highlighted {
  background: #f0f0f0;
  border-bottom: var(--border);
  height: 3rem;
}
/* for doc/install */
a.btn {
  background: var(--deep-cerulian);
  font-style: normal;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1rem;
  border-radius: 0.3125rem;
  color: #FFF;
  display: block;
  padding: 0.625rem;
  text-align: center;
  text-decoration: none;
}
a#start .big {
  display: block;
  font-size: 1.25rem;
  font-weight: bold;
}
a#start .desc {
  display: block;
  font-size: 0.875rem;
  font-weight: normal;
  margin-top: 0.3125rem;
}
.download {
  width: 10.25rem;
  height: 2.5rem;
}
table.downloadtable {
  width: 100%;
  border-collapse: collapse;
}
table.downloadtable thead {
  border: 2px solid var(--color-background-accented);
}
table.downloadtable tr:nth-child(2n),
table.downloadtable tr.first,
table.downloadtable tr {
  background-color: var(--color-background);
  border: 2px solid var(--color-background-accented);
}
table.downloadtable tr.first[aria-expanded] {
  cursor: pointer;
}
table.downloadtable tr.first[aria-expanded] th::after {
  content: "⌵";
  display: inline-block;
  padding: 0 0.5rem;
  transform: rotate(180deg);
  vertical-align: sub;
}
table.downloadtable tr.first[aria-expanded="true"] th::after {
  bottom: 0.3125rem;
  position: relative;
  transform: rotate(0);
}
table.downloadtable tr.first[aria-expanded="false"] ~ tr.secondary {
  display: none;
}
table.downloadtable tr.first[aria-expanded="true"] ~ tr.secondary {
  display: table-row;
}
table.downloadtable tr.first th {
  text-align: left;
  font-style: normal;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.5rem;
}
table.downloadtable td {
  font-style: normal;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.5rem;
}
table.downloadtable td.filename, table.downloadtable tr.first th:nth-child(1) {
  padding-left: 4.5rem;
}
table.downloadtable td,
table.downloadtable th {
  white-space: nowrap;
  padding: 6px 10px;
}
table.downloadtable tt {
  font-size: xx-small;
}
table.downloadtable tr.highlight td {
  font-weight: bold;
}
a.downloadBox {
  display: flex;
  flex-direction: column;
  color: var(--color-text);
  background: var(--color-background-accented);
  width: 13.875rem;
  height: 8.375rem;
  float: left;
  padding: 1rem;
}
a.downloadBox:hover {
  text-decoration: none;
}
.downloadBox .platform {
  font-size: large;
  margin-bottom: 0.75rem;
}
.downloadWrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
}
.downloadBox .filename {
  display: flex;
  align-items: center;
  margin-top: auto;
}
.downloadBox .filename img {
  margin-right: 0.375rem;
}
.downloadBox .filename span {
  color: var(--color-text-link);
  font-style: normal;
  font-weight: 400;
  font-size: 0.75rem;
  line-height: 0.75rem;
}
a.downloadBox:hover .filename span {
  text-decoration: underline;
}
.downloadBox .size {
  font-size: small;
  font-weight: normal;
}
.downloadBox .reqs {
  font-style: normal;
  font-weight: 400;
  font-size: 0.75rem;
  line-height: 1rem;
  color: var(--color-text-subtle);
}
.downloadBox .checksum {
  font-size: 5pt;
}
#manual-nav dl,
#pkg-examples dl {
  margin-left: 1.25rem;
  font-size: 0.875rem;
  margin-block-end: 0;
  margin-block-start: 0;
}
#manual-nav dd,
#pkg-examples dd {
  margin: 0 0 0 1.25rem;
  font-size: 0.875rem;
}
.go-Button {
  align-items: center;
  background-color: var(--color-button);
  border: 0.0625rem solid transparent;
  border-radius: var(--border-radius);
  color: var(--color-button-text);
  cursor: pointer;
  display: inline-flex;
  font-weight: 500;
  gap: 0.25rem;
}
.go-Button:not(.go-Button--inline) {
  padding: 0.5rem;
}
.go-Button--inverted,
.go-Button--text,
.go-Button--inline {
  background-color: var(--color-button-inverted);
  color: var(--color-button-inverted-text);
}
.go-Button--inline {
  background-color: transparent;
}
.go-Button--inverted {
  border: var(--border);
}
.go-Button:hover {
  box-shadow: var(--focus-box-shadow);
  filter: contrast(0.95);
}
.go-Button--inline:hover {
  box-shadow: none;
  text-decoration: underline var(--color-button-inverted-text);
}
.go-Button:focus {
  filter: contrast(0.95);
}
.go-Button--inverted:focus {
  border-color: var(--color-button-inverted-text);
}
.go-Button:active {
  box-shadow: none;
  filter: contrast(0.85);
}
.go-Button:disabled {
  background-color: var(--color-button-disabled);
  box-shadow: none;
  color: var(--color-button-text-disabled);
  cursor: initial;
  filter: none;
  text-decoration: none;
}
.go-Button--accented:disabled {
  background-color: var(--color-button-accented-disabled);
  color: var(--color-button-accented-text-disabled);
}
.go-Button--inverted:disabled,
.go-Button--text:disabled,
.go-Button--inline:disabled {
  background-color: var(--color-button-inverted-disabled);
  color: var(--color-button-inverted-text-disabled);
}
.go-Button--inline:disabled {
  background-color: transparent;
}
.go-Footer-listItem {
  align-items: center;
  display: flex;
  flex: 1 100%;
  justify-content: center;
  margin: 0.4rem 0;
  padding: 0 1rem;
}
.go-Footer-listItem a:link,
.go-Footer-listItem a:visited {
  color: var(--color-text-inverted);
}
.go-Footer-listItem .go-Button--text {
  background-color: transparent;
  font-size: 1rem;
  margin: -0.5rem 0;
}
.go-Footer-listItem [data-value] {
  display: none;
}
[data-theme='auto'] .go-Footer-listItem [data-value='auto'],
:root:not([data-theme]) .go-Footer-listItem [data-value='auto'] {
  display: initial;
}
[data-theme='dark'] .go-Footer-listItem [data-value='dark'] {
  display: initial;
}
[data-theme='light'] .go-Footer-listItem [data-value='light'] {
  display: initial;
}
.go-Footer-toggleTheme,
.go-Footer-keyboard {
  margin: 0 0 0.5rem 0;
}

@media only screen and (min-width: 52rem) {
  .go-Footer-listItem {
    flex: initial;
  }
  .go-Footer-listItem + .go-Footer-listItem {
    border-left: var(--border);
  }
  .go-Footer-toggleTheme {
    margin: 0 0 0 -0.5rem;
  }
  .go-Footer-keyboard {
    margin: 0;
  }
}

.Cookie-notice {
  align-items: center;
  background-color: var(--color-background);
  border-top: var(--border);
  bottom: 0;
  color: var(--color-text);
  display: none;
  gap: 1rem;
  justify-content: center;
  left: 0;
  padding: 1rem;
  position: fixed;
  right: 0;
  z-index: 100;
}

.Cookie-notice--visible {
  display: flex;
}

@media print {
  .Cookie-notice,
  .Cookie-notice--visible {
    display: none;
  }
}

hr {
  border: none;
  border-top: 1px solid var(--color-border);
  height: 1px;
}

/* default styles for markdown tables */
div.markdown table {
  border-collapse: collapse;
}
div.markdown th,
div.markdown td {
  border:	1px solid #ccc;
  padding: 	0.1em 2em 0.1em 2em;
}
div.markdown th {
  background-color: var(--color-background-accented);
}

