.doc {
  color: var(--doc-font-color);
  font-size: var(--doc-font-size);
  hyphens: auto;
  line-height: var(--doc-line-height);
  margin: var(--doc-margin);
  max-width: var(--doc-max-width);
  padding: 0 1rem 4rem;
}

@media screen and (min-width: 1024px) {
  .doc {
    font-size: var(--doc-font-size--desktop);
    margin: var(--doc-margin--desktop);
    max-width: var(--doc-max-width--desktop);
    min-width: 0;
  }
}

.doc h1,
.doc h2,
.doc h3,
.doc h4,
.doc h5,
.doc h6 {
  color: var(--heading-font-color);
  font-weight: var(--heading-font-weight);
  hyphens: none;
  line-height: 1.3;
  margin: 1rem 0 0;
  text-transform: uppercase;
}

.static > h1:first-child,
.doc > h1.page:first-child {
  font-size: calc(36 / var(--rem-base) * 1rem);
  margin: 1.5rem 0;
}

@media screen and (min-width: 1278px) {
  .doc > h1.page:first-child {
    margin-top: 2.5rem;
  }
}

@media screen and (max-width: 1277px) {
  .doc > h1.page:first-child {
    margin-top: 3rem;
  }

  @media screen and (max-width: 1023px) {
    .doc > h1.page:first-child {
      margin-top: 5rem;
    }
  }
}

#preamble + .sect1,
.doc .sect1 + .sect1 {
  margin-top: 2rem;
}

.doc h1.sect0 {
  background: var(--abstract-background);
  font-size: 1.8em;
  margin: 1.5rem -1rem 0;
  padding: 0.5rem 1rem;
}

.doc h2:not(.discrete) {
  border-bottom: 1px solid var(--section-divider-color);
  margin-top: 1rem;
  margin-left: -1rem;
  margin-right: -1rem;
  padding: 0.4rem 1rem 0.1rem;
  overflow-wrap: break-word;
}

.doc h3:not(.discrete) {
  font-weight: var(--alt-heading-font-weight);
  overflow-wrap: break-word;
}

.doc h1 .anchor,
.doc h2 .anchor,
.doc h3 .anchor,
.doc h4 .anchor,
.doc h5 .anchor,
.doc h6 .anchor {
  position: absolute;
  text-decoration: none;
  width: 1.75ex;
  margin-left: -1.5ex;
  visibility: hidden;
  font-size: 0.8em;
  font-weight: normal;
  padding-top: 0.05em;
}

.doc h1 .anchor::before,
.doc h2 .anchor::before,
.doc h3 .anchor::before,
.doc h4 .anchor::before,
.doc h5 .anchor::before,
.doc h6 .anchor::before {
  content: '\00a7';
}

.doc h1:hover .anchor,
.doc h2:hover .anchor,
.doc h3:hover .anchor,
.doc h4:hover .anchor,
.doc h5:hover .anchor,
.doc h6:hover .anchor {
  visibility: visible;
}

.doc p {
  margin: 0;
}

.doc .table-wrapper {
  overflow-x: auto;
}

.doc .table-wrapper::-webkit-scrollbar {
  height: var(--scrollbar-thickness);
}

.doc .table-wrapper::-webkit-scrollbar-track {
  background: var(--scrollbar-track-color);
  border-radius: var(--scrollbar-radius);
}

.doc .table-wrapper::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb-color);
  border-radius: var(--scrollbar-radius);
}

.doc .table-wrapper::-webkit-scrollbar-thumb:hover,
.doc .table-wrapper::-webkit-scrollbar-thumb:active {
  background: var(--scrollbar-thumb-active-color);
}

.doc .table-wrapper table {
  width: 100%;
}

.doc .tableblock p {
  font-size: inherit;
}

.doc :not(td) > p,
.doc :not(td) > .content,
.doc .tableblock td:not(:first-child) > p,
.doc .tableblock thead {
  hyphens: auto;
}

.doc a {
  color: var(--link-font-color);
  word-break: break-word;
}

.doc a:hover {
  color: var(--link_hover-font-color);
}

.doc a.unresolved {
  color: var(--link_unresolved-font-color);
}

.doc i.fa {
  font-style: normal;
}

.doc p code,
.doc thead code {
  color: var(--code-font-color);
  background: var(--code-background);
  border-radius: 0.2rem;
  font-size: calc(14 / var(--rem-base) * 1rem);
  padding: 0.075rem 0.25rem 0.125rem;
  overflow-wrap: break-word;
}

.doc pre {
  font-size: calc(14 / var(--rem-base) * 1rem);
  line-height: 1.5;
  margin: 0;
}

.doc blockquote {
  margin: 0;
}

.doc .right {
  float: right;
}

.doc .left {
  float: left;
}

.doc .underline {
  text-decoration: underline;
}

.doc .line-through {
  text-decoration: line-through;
}

.doc .paragraph,
.doc .dlist,
.doc .olist,
.doc .ulist,
.doc .exampleblock,
.doc .imageblock,
.doc .listingblock,
.doc .literalblock,
.doc .sidebarblock,
.doc .verseblock,
.doc .quoteblock,
.doc .partintro {
  margin: 1rem 0 0;
  word-break: break-word;
}

.doc table.tableblock {
  border-collapse: collapse;
  font-size: calc(15 / var(--rem-base) * 1rem);
  margin: 2rem 0;
  /* enable table-layout: fixed if you want the table width to be enforced strictly */
  /* alternative is to wrap table in div and set overflow-x: auto on the wrapper */
  /* table-layout: fixed; */
}

.doc table.stretch {
  width: 100%;
}

.doc table.tableblock thead th {
  border-bottom: 2.5px solid var(--table-border-color);
  padding: 0.5rem;
}

.doc table.tableblock td,
.doc table.tableblock > :not(thead) th {
  border-top: 1px solid var(--table-border-color);
  border-bottom: 1px solid var(--table-border-color);
  padding: 0.5rem;
}

.doc .halign-left {
  text-align: left;
}

.doc .halign-right {
  text-align: right;
}

.doc .halign-center {
  text-align: center;
}

.doc .valign-top {
  vertical-align: top;
}

.doc .valign-bottom {
  vertical-align: bottom;
}

.doc .valign-middle {
  vertical-align: middle;
}

.doc .admonitionblock {
  margin: 1.4rem 0 0;
  box-shadow: inset 0 0 1.75px var(--abstract-border-color);
}

.doc .admonitionblock p,
.doc .admonitionblock td.content {
  font-size: calc(16 / var(--rem-base) * 1rem);
}

.doc .admonitionblock td.content > :first-child {
  margin: 0;
}

.doc .admonitionblock pre {
  font-size: calc(15 / var(--rem-base) * 1rem);
}

.doc .admonitionblock > table {
  border-collapse: collapse;
  table-layout: fixed;
  position: relative;
  width: 100%;
}

.doc .admonitionblock td.content {
  padding: 1rem 1rem 0.75rem;
  background: var(--admonition-background);
  width: 100%;
}

.doc .admonitionblock .icon {
  position: absolute;
  top: 0;
  left: 0;
  font-size: calc(15 / var(--rem-base) * 1rem);
  padding: 0 0.5rem;
  height: 1.25rem;
  line-height: 1;
  font-weight: var(--admonition-label-font-weight);
  text-transform: uppercase;
  border-radius: 0.45rem;
  transform: translate(-0.5rem, -50%);
}

.doc .admonitionblock.caution .icon {
  background-color: var(--caution-color);
  color: var(--caution-on-color);
}

.doc .admonitionblock.important .icon {
  background-color: var(--important-color);
  color: var(--important-on-color);
}

.doc .admonitionblock.note .icon {
  background-color: var(--note-color);
  color: var(--note-on-color);
}

.doc .admonitionblock.tip .icon {
  background-color: var(--tip-color);
  color: var(--tip-on-color);
}

.doc .admonitionblock.warning .icon {
  background-color: var(--warning-color);
  color: var(--warning-on-color);
}

.doc .admonitionblock .icon i {
  display: inline-flex;
  align-items: center;
  height: 100%;
}

.doc .admonitionblock .icon i::after {
  content: attr(title);
  hyphens: none;
}

.doc .imageblock {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.doc .imageblock img {
  display: block;
}

.doc .imageblock img,
.doc .image > img {
  height: auto;
  max-width: 100%;
}

#preamble .abstract blockquote {
  background: var(--abstract-background);
  border-left: 5px solid var(--abstract-border-color);
  color: var(--abstract-font-color);
  font-size: calc(16 / var(--rem-base) * 1rem);
  padding: 0.75em 1em;
}

.doc .quoteblock {
  background: var(--quote-background);
  border-left: 5px solid var(--quote-border-color);
  color: var(--quote-font-color);
  padding: 0.25rem 2rem 1.25rem;
}

.doc .quoteblock .attribution {
  color: var(--quote-attribution-font-color);
  font-size: calc(15 / var(--rem-base) * 1rem);
  margin-top: 0.75rem;
}

.doc .quoteblock blockquote {
  margin-top: 1rem;
}

.doc .quoteblock .paragraph {
  font-style: italic;
}

.doc .quoteblock cite {
  padding-left: 1em;
}

.doc table.tableblock .paragraph {
  margin: 0;
  padding: 0;
}

.doc table.tableblock .admonitionblock,
.doc .ulist .admonitionblock,
.doc .olist .admonitionblock {
  padding: 0;
}

.doc ol,
.doc ul {
  margin: 0;
  padding: 0 0 0 2rem;
}

.doc ol.arabic {
  list-style-type: decimal;
}

.doc ol.decimal {
  list-style-type: decimal-leading-zero;
}

.doc ol.loweralpha {
  list-style-type: lower-alpha;
}

.doc ol.upperalpha {
  list-style-type: upper-alpha;
}

.doc ol.lowerroman {
  list-style-type: lower-roman;
}

.doc ol.upperroman {
  list-style-type: upper-roman;
}

.doc ol.lowergreek {
  list-style-type: lower-greek;
}

.doc ul.checklist {
  padding-left: 0.5rem;
  list-style: none;
}

.doc ul.checklist p > i.fa-check-square-o:first-child,
.doc ul.checklist p > i.fa-square-o:first-child {
  display: inline-flex;
  justify-content: center;
  width: 1.25rem;
}

.doc ul.checklist i.fa-check-square-o::before {
  content: '\2713';
}

.doc ul.checklist i.fa-square-o::before {
  content: '\274f';
}

.doc .dlist .dlist,
.doc .dlist .olist,
.doc .dlist .ulist,
.doc .olist .dlist,
.doc .olist .olist,
.doc .olist .ulist,
.doc .ulist .dlist,
.doc .ulist .olist,
.doc .ulist .ulist {
  margin-top: 0.5rem;
}

.doc .olist li,
.doc .ulist li {
  margin-bottom: 0.5rem;
}

.doc .ulist .listingblock,
.doc .olist .listingblock,
.doc .admonitionblock .listingblock {
  padding: 0;
}

.doc .admonitionblock .title,
.doc .exampleblock .title,
.doc .imageblock .title,
.doc .literalblock .title,
.doc .listingblock .title,
.doc .openblock .title,
.doc .tableblock caption {
  color: var(--caption-font-color);
  font-size: calc(16 / var(--rem-base) * 1rem);
  font-weight: var(--caption-font-weight);
  font-style: italic;
  hyphens: none;
  letter-spacing: 0.01em;
  padding-bottom: 0.075rem;
  text-align: left;
}

.doc .imageblock .title {
  margin-top: 0.5rem;
  padding-bottom: 0;
}

.doc .admonitionblock .title + .paragraph {
  margin-top: 0;
}

.doc .exampleblock > .content {
  background: var(--example-background);
  border: 0.25rem solid var(--example-border-color);
  border-radius: 0.5rem;
  padding: 0.75rem;
}

.doc .exampleblock > .content > :first-child {
  margin-top: 0;
}

.doc .sidebarblock {
  background: var(--sidebar-background);
  border-radius: 0.75rem;
  padding: 0.75rem 1.5rem;
}

.doc .sidebarblock > .content > .title {
  font-size: calc(22.5 / var(--rem-base) * 1rem);
  font-weight: var(--alt-heading-font-weight);
  line-height: 1.3;
  margin-bottom: -0.3em;
  text-align: center;
}

.doc .sidebarblock > .content > :not(.title):first-child {
  margin-top: 0;
}

/* NEEDS REVIEW prevent pre in table from causing article to exceed bounds */
.doc .tableblock pre,
.doc .listingblock.wrap pre {
  white-space: pre-wrap;
}

.doc pre:not(.highlight),
.doc pre.highlight code {
  background: var(--pre-background);
  box-shadow: inset 0 0 1.75px var(--pre-border-color);
  display: block;
  overflow-x: auto;
  padding: 0.75rem;
}

.doc pre.highlight code::-webkit-scrollbar {
  height: var(--scrollbar-thickness);
}

.doc pre.highlight code::-webkit-scrollbar-track {
  background: var(--scrollbar-track-color);
  border-radius: var(--scrollbar-radius);
}

.doc pre.highlight code::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb-color);
  border-radius: var(--scrollbar-radius);
}

.doc pre.highlight code::-webkit-scrollbar-thumb:hover,
.doc pre.highlight code::-webkit-scrollbar-thumb:active {
  background: var(--scrollbar-thumb-active-color);
}

/* NOTE assume pre.highlight contains code[data-lang] */
.doc pre.highlight {
  position: relative;
}

.doc .listingblock code[data-lang]::before {
  content: attr(data-lang);
  display: none;
  color: var(--pre-annotation-font-color);
  font-size: calc(13.5 / var(--rem-base) * 1rem);
  letter-spacing: 0.05em;
  line-height: 1;
  text-transform: uppercase;
  position: absolute;
  top: 0.25rem;
  right: 0.25rem;
}

.doc .listingblock:hover code[data-lang]::before {
  display: block;
}

.doc .dlist dt {
  font-style: italic;
}

.doc .dlist dd {
  margin: 0 0 0.3rem 1.5rem;
}

.doc .colist {
  font-size: calc(16 / var(--rem-base) * 1rem);
  margin: 0.25rem 0 -0.25rem;
}

.doc .colist > table > tr > :first-child,
.doc .colist > table > tbody > tr > :first-child {
  padding: 0.25em 0.5rem 0;
  vertical-align: top;
}

.doc .colist > table > tr > :last-child,
.doc .colist > table > tbody > tr > :last-child {
  padding: 0.25rem 0;
}

.doc .conum[data-value] {
  border: 1px solid currentColor;
  border-radius: 100%;
  display: inline-block;
  font-family: var(--body-font-family);
  font-size: calc(13.5 / var(--rem-base) * 1rem);
  font-style: normal;
  height: 1.25em;
  line-height: 1.2;
  text-align: center;
  width: 1.25em;
  letter-spacing: -0.25ex;
  text-indent: -0.25ex;
}

.doc .conum[data-value]::after {
  content: attr(data-value);
}

.doc .conum[data-value] + b {
  display: none;
}

.doc b.button {
  white-space: nowrap;
}

.doc b.button::before {
  content: "[";
  padding-right: 0.25em;
}

.doc b.button::after {
  content: "]";
  padding-left: 0.25em;
}

.doc kbd {
  display: inline-block;
  font-size: calc(12 / var(--rem-base) * 1rem);
  background: var(--kbd-background);
  border: 1px solid var(--kbd-border-color);
  border-radius: 0.25em;
  box-shadow: 0 1px 0 var(--kbd-border-color), 0 0 0 0.1em var(--body-background) inset;
  padding: 0.25em 0.5em;
  vertical-align: text-bottom;
  white-space: nowrap;
}

.doc kbd,
.doc .keyseq {
  line-height: 1;
}

.doc .keyseq {
  font-size: calc(16 / var(--rem-base) * 1rem);
}

.doc .keyseq kbd {
  margin: 0 0.125em;
}

.doc .keyseq kbd:first-child {
  margin-left: 0;
}

.doc .keyseq kbd:last-child {
  margin-right: 0;
}

.doc .menuseq i.caret::before {
  content: "\203a";
  font-size: 1.1em;
  font-weight: var(--body-font-weight-bold);
  line-height: calc(1 / 1.1);
}

.doc a.bare,
.doc b.button,
.doc code,
.doc .path,
.doc kbd,
.doc .menuseq,
.doc .icon i::after {
  hyphens: none;
}

/* for mobile screens */
@media screen and (max-width: 626px) {
  #preamble + .sect1,
  .doc .sect1 + .sect1 {
    overflow-wrap: break-word;
  }
}

@media screen and (max-width: 1023px) and (min-width: 480px) {
  .doc p code,
  .doc thead code {
    font-size: var(--body-font-size);
  }
}

table.tableblock thead {
  background: var(--color-smoke-90);
  font-weight: var(--body-font-weight-bold);
}

/* Status badges used in Camel Quarkus extension pages */
div.badges p {
  text-align: left;
}

div.badges span {
  color: var(--color-white);
  padding: 0.15rem 0.3rem 0.15rem 0.3rem;
  font-weight: normal;
  font-style: normal;
  font-size: 0.8rem;
}

div.badges span.badge-key {
  background-color: var(--color-gray-60);
  border-radius: 0.2rem 0 0 0.2rem;
}

div.badges span.badge-version {
  background-color: var(--note-color);
  border-radius: 0 0.2rem 0.2rem 0;
}

div.badges span.badge-supported {
  background-color: var(--tip-color);
  border-radius: 0 0.2rem 0.2rem 0;
}

div.badges span.badge-unsupported {
  background-color: var(--important-color);
  border-radius: 0 0.2rem 0.2rem 0;
}
