.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: 769px) {
  .doc > h1.page:first-child {
    margin-top: 2.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 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;
}

/* 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;
}
