@font-face {
  font-family: "Roboto Flex";
  src: url("../fonts/roboto-flex/RobotoFlex-3.200.woff2?v=slnt-1") format("woff2");
  font-style: oblique 0deg 10deg;
  font-weight: 100 1000;
  font-stretch: 25% 151%;
  font-display: block;
}

@font-face {
  font-family: "JetBrains Mono";
  src: url("../fonts/jetbrains-mono/JetBrainsMono-Regular-2.304.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

/* Typed values only; native choice, select and button labels keep UI typography. */
input:is(:not([type]), [type="text"], [type="tel"], [type="email"], [type="number"], [type="search"], [type="url"], [type="password"]), textarea {
  font-family: var(--donbuild-font-mono);
  font-weight: 400;
  font-stretch: normal;
  font-synthesis: none;
  font-variant-ligatures: none;
}

body {
  color: var(--donbuild-color-text-primary);
  background: var(--donbuild-color-background);
  font-family: var(--donbuild-type-body-family);
  font-size: var(--donbuild-type-body-size);
  font-weight: var(--donbuild-type-body-weight);
  font-stretch: var(--donbuild-font-width-normal);
  font-optical-sizing: auto;
  line-height: var(--donbuild-type-body-line);
  overflow-wrap: break-word;
}

h1, h2, h3, h4 { margin: 0 0 var(--donbuild-space-4); }
h1 {
  font-family: var(--donbuild-type-h1-family);
  font-size: var(--donbuild-type-h1-size);
  font-weight: var(--donbuild-type-h1-weight);
  font-stretch: var(--donbuild-font-width-display);
  line-height: var(--donbuild-type-h1-line);
}
h2 {
  font-family: var(--donbuild-type-h2-family);
  font-size: var(--donbuild-type-h2-size);
  font-weight: var(--donbuild-type-h2-weight);
  font-stretch: var(--donbuild-font-width-heading);
  line-height: var(--donbuild-type-h2-line);
}
h3 {
  font-family: var(--donbuild-type-h3-family);
  font-size: var(--donbuild-type-h3-size);
  font-weight: var(--donbuild-type-h3-weight);
  font-stretch: var(--donbuild-font-width-heading);
  line-height: var(--donbuild-type-h3-line);
}
h4 {
  font-family: var(--donbuild-type-h4-family);
  font-size: var(--donbuild-type-h4-size);
  font-weight: var(--donbuild-type-h4-weight);
  font-stretch: var(--donbuild-font-width-normal);
  line-height: var(--donbuild-type-h4-line);
}
p { margin: 0 0 var(--donbuild-space-4); }
.donbuild-blog-card .donbuild-card__title a { color: var(--donbuild-color-text-primary); text-decoration: none; }
.donbuild-blog-card .donbuild-card__title a:is(:hover,:focus-visible) { color: var(--donbuild-color-brand-bright-text); }
.donbuild-project-single__hero-copy > .donbuild-label { margin-block-end: var(--donbuild-space-3); }
/* Explicit list spacing wins over editorial list defaults loaded later. */
.donbuild-editorial-content ul.donbuild-document-list { list-style: none; padding-inline-start: 0; }
/* Native editorial bodies only; component/sidebar typography remains independent. */
:is(.donbuild-editorial-content,.donbuild-service-single__prose,.donbuild-complex-single__prose,.donbuild-project-single__prose) { font-size: var(--donbuild-type-body-large-size); line-height: var(--donbuild-type-body-line); }
:is(.donbuild-editorial-content,.donbuild-service-single__prose,.donbuild-complex-single__prose,.donbuild-project-single__prose) :is(.donbuild-lead,.donbuild-dialog,.donbuild-card,.widget,.donbuild-alert,.donbuild-public-cta) { font-size: var(--donbuild-type-body-size); line-height: var(--donbuild-type-body-line); }
@media (min-width:768px) { :is(.donbuild-editorial-content,.donbuild-service-single__prose,.donbuild-complex-single__prose,.donbuild-project-single__prose) { font-size: var(--donbuild-type-editorial-size); } }
small, .donbuild-caption {
  font-family: var(--donbuild-type-caption-family);
  font-size: var(--donbuild-type-caption-size);
  font-weight: var(--donbuild-type-caption-weight);
  font-stretch: var(--donbuild-font-width-compact);
  line-height: var(--donbuild-type-caption-line);
}
strong, b { font-weight: 500; }
a {
  color: var(--donbuild-color-link);
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, currentColor, transparent 80%);
  text-decoration-thickness: 1px;
  text-underline-offset: .175em;
  text-decoration-skip: none;
  text-decoration-skip-ink: none;
}
a:hover { color: var(--donbuild-color-link-hover); text-decoration-color: currentColor; }
a:focus-visible { text-decoration-color: currentColor; }
a:has(u) { text-decoration: none; }
::selection { color: var(--donbuild-color-selection-text, var(--donbuild-color-text-primary)); background: var(--donbuild-color-selection); }
/* Public section headings and prose only; component headings keep their contracts. */
@media (max-width:767px){
:is(.donbuild-editorial-content,.donbuild-service-single__prose,.donbuild-complex-single__prose,.donbuild-project-single__prose) h2:not(:where(.donbuild-lead *,.donbuild-dialog *,.donbuild-card *,.widget *,.donbuild-alert *,.donbuild-public-cta *,form *)),:is(.donbuild-home__section-heading,.donbuild-home-calculator__intro,.donbuild-project-single__section,.donbuild-complex-single__section,.donbuild-service-single__section) > h2{font-size:var(--donbuild-type-editorial-h2-mobile-size)}
:is(.donbuild-editorial-content,.donbuild-service-single__prose,.donbuild-complex-single__prose,.donbuild-project-single__prose) h3:not(:where(.donbuild-lead *,.donbuild-dialog *,.donbuild-card *,.widget *,.donbuild-alert *,.donbuild-public-cta *,form *)),.donbuild-project-single__stages h3,.donbuild-project-single__gallery-group > h3{font-size:var(--donbuild-type-body-large-size)}
:is(.donbuild-editorial-content,.donbuild-service-single__prose,.donbuild-complex-single__prose,.donbuild-project-single__prose) h4:not(:where(.donbuild-lead *,.donbuild-dialog *,.donbuild-card *,.widget *,.donbuild-alert *,.donbuild-public-cta *,form *)){font-size:var(--donbuild-type-body-size)}
:is(.donbuild-editorial-content,.donbuild-service-single__prose,.donbuild-complex-single__prose,.donbuild-project-single__prose) h5:not(:where(.donbuild-lead *,.donbuild-dialog *,.donbuild-card *,.widget *,.donbuild-alert *,.donbuild-public-cta *,form *)){font-size:var(--donbuild-type-editorial-h5-mobile-size);text-transform:uppercase}
:is(.donbuild-editorial-content,.donbuild-service-single__prose,.donbuild-complex-single__prose,.donbuild-project-single__prose) h6:not(:where(.donbuild-lead *,.donbuild-dialog *,.donbuild-card *,.widget *,.donbuild-alert *,.donbuild-public-cta *,form *)){font-size:var(--donbuild-type-body-small-size)}
#main-content .donbuild-label{font-size:var(--donbuild-type-public-label-mobile-size)}
}
