/* Shared typography follows the homepage, after archived Divi/page styles.
   These rules own text roles only: layout, artwork and icon fonts stay intact. */
:root {
  --dd-font-text: "DD Nobel Uno", Helvetica, Arial, sans-serif;
  --dd-font-dictionary: "DD TimeCraft", Georgia, serif;
  --dd-font-phonetic: "Times New Roman", "Noto Serif", "DejaVu Serif", Georgia, Times, serif;
  --dd-type-display: clamp(3.2rem, 5.15vw, 4.9rem);
  --dd-type-section: clamp(2.6rem, 3.65vw, 4.1rem);
  --dd-type-card: clamp(1.3rem, 1.8vw, 1.55rem);
  --dd-type-body: clamp(1rem, 1.12vw, 1.1rem);
  --dd-type-small: 0.875rem;
  --dd-type-word: clamp(1.125rem, 1.25vw, 1.28rem);
  --dd-type-meta: clamp(0.84rem, 0.92vw, 0.94rem);
  --dd-type-definition: clamp(0.93rem, 1.01vw, 1.03rem);
}

html.dd-static body[data-dd-route] {
  font-family: var(--dd-font-text);
  font-weight: 400;
  font-kerning: normal;
}

html.dd-static body[data-dd-route] #page-container #et-main-area :is(h1, h2, h3, h4, h5, h6),
html.dd-static body[data-dd-route] #page-container #et-main-area .et_pb_text:not(.dd-dictionary) .et_pb_text_inner,
html.dd-static body[data-dd-route] #page-container #et-main-area :is(.dd-work-page, .dd-calc-page, .dd-calc-callout),
html.dd-static body[data-dd-route] .dd-language-switch,
html.dd-static body[data-dd-route] #page-container :is(input, select, textarea, button, .et_pb_button) {
  font-family: var(--dd-font-text) !important;
}

/* Inline styles must not split a paragraph or heading into different fonts. */
html.dd-static body[data-dd-route] #page-container #et-main-area .et_pb_text:not(.dd-dictionary) .et_pb_text_inner :is(h1, h2, h3, h4, h5, h6, p, li) :is(span, font),
html.dd-static body[data-dd-route] #page-container #et-main-area :is(h1, h2, h3, h4, h5, h6) :is(strong, b, em, i) {
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}

/* General card/dense-copy level; larger editorial roles are defined below. */
html.dd-static body[data-dd-route]:not([data-dd-route="/"]) #page-container #et-main-area :where(.et_pb_text:not(.dd-dictionary)) :is(h2, h3, h4):where(:not(.et_pb_toggle_title)),
html.dd-static body[data-dd-route] #page-container #et-main-area :is(.dd-project-caption h3, .dd-calc-call h3, .dd-viewer-center h3) {
  font-size: var(--dd-type-card) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.022em !important;
  text-wrap: balance;
}

/* One masthead scale for services, projects, calculator and plain pages. */
html.dd-static body[data-dd-route] #page-container #et-main-area :is(.dd-page-hero h1, .dd-work-hero h1, .dd-calc-masthead h1, article > h1.entry-title, .not_found h1),
html.dd-static body[data-dd-route="/"] #page-container #et-main-area .et_pb_text_24 :is(h1, h2),
html.dd-static body[data-dd-route] #page-container #et-main-area .et-l--post h1 {
  font-size: var(--dd-type-display) !important;
  font-weight: 700 !important;
  line-height: 0.945 !important;
  letter-spacing: -0.032em !important;
  white-space: normal !important;
  text-wrap: balance;
  overflow-wrap: break-word;
  word-break: normal;
}
html.dd-static body[data-dd-route]:not([data-dd-route="/"]) #page-container #et-main-area :is(.dd-page-hero h1, .dd-work-hero h1, .dd-calc-masthead h1, .et-l--post h1) {
  width: 100% !important;
  max-width: 22ch !important;
  margin-inline: auto !important;
}

/* A masthead subtitle is body copy, not another display heading. */
html.dd-static body[data-dd-route]:not([data-dd-route="/"]) #page-container #et-main-area .et-l--post :is(.dd-page-hero h2, .dd-work-hero h2, .dd-calc-masthead h2) {
  font-size: var(--dd-type-body) !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  letter-spacing: -0.01em !important;
  text-wrap: pretty;
}

/* Section titles use the homepage's service-section scale. */
html.dd-static body[data-dd-route]:not([data-dd-route="/"]) #page-container #et-main-area .et-l--post :is(.dd-frame-copy h2, .dd-frame-copy h3, .dd-subpage-row--intro h2, .dd-subpage-row--intro h3, .dd-faq-row > .et_pb_column:first-child h3, .dd-project-story h2, .dd-project-section-heading h2, .dd-calc-after h2, .dd-calc-callout h2) {
  font-size: var(--dd-type-section) !important;
  font-weight: 700 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.032em !important;
  white-space: normal !important;
  text-wrap: balance;
  overflow-wrap: break-word;
  word-break: normal;
}

html.dd-static body[data-dd-route] #page-container #et-main-area :is(.et_pb_blurb_position_left h4, .et_pb_toggle_title) {
  font-size: var(--dd-type-body) !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: -0.01em !important;
}

html.dd-static body[data-dd-route] #page-container #et-main-area .et-l--post .et_pb_text:not(.dd-dictionary) .et_pb_text_inner :is(p, li):not(.dd-breadcrumb li),
html.dd-static body[data-dd-route] #page-container #et-main-area :is(.et_pb_toggle_content, .dd-project-story) :is(p, li),
html.dd-static body[data-dd-route] #page-container #et-main-area :is(.dd-calc-lead, .dd-calc-after > p, .dd-calc-callout p) {
  font-family: var(--dd-font-text) !important;
  font-size: var(--dd-type-body) !important;
  font-weight: 400;
  line-height: 1.65 !important;
  letter-spacing: -0.01em !important;
  text-wrap: pretty;
  overflow-wrap: break-word;
  word-break: normal;
}
html.dd-static body[data-dd-route] #page-container #et-main-area .dd-project-caption p {
  font-size: var(--dd-type-small) !important;
  line-height: 1.65 !important;
  letter-spacing: -0.01em !important;
}

html.dd-static body[data-dd-route] #page-container #et-main-area :is(article > p, .not_found p) {
  font-family: var(--dd-font-text) !important;
  font-size: var(--dd-type-body) !important;
  line-height: 1.65 !important;
  letter-spacing: -0.01em !important;
}

html.dd-static body[data-dd-route] #page-container .dd-breadcrumb {
  font-family: var(--dd-font-text) !important;
  font-size: clamp(0.6875rem, 0.92vw, 0.75rem) !important;
  font-weight: 400;
  line-height: 1.5;
}
html.dd-static body[data-dd-route] #page-container #et-main-area .dd-breadcrumb :is(ol, li, a, span) {
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}

/* Compact form headings stay one level below editorial section headings. */
html.dd-static body[data-dd-route] #page-container #et-main-area .dd-calc-inputs > h2 {
  font-size: clamp(1.625rem, 3vw, 2.25rem) !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.032em !important;
}
html.dd-static body[data-dd-route] #page-container #et-main-area .dd-calc-field :is(input, select, textarea) {
  font-size: 1rem !important;
  font-weight: 400;
  line-height: 1.5 !important;
}

/* Time Craft is the Dictionary face on every route, including the footer.
   Each role also owns inline descendants so archived sizes cannot leak in. */
html.dd-static body[data-dd-route] #page-container .dd-dictionary,
html.dd-static body[data-dd-route] #page-container .dd-dictionary * {
  font-family: var(--dd-font-dictionary) !important;
}
html.dd-static body[data-dd-route] #page-container .dd-dictionary .word,
html.dd-static body[data-dd-route] #page-container .dd-dictionary .word * {
  font-size: var(--dd-type-word) !important;
  font-weight: 700 !important;
  line-height: 1.02 !important;
  letter-spacing: 0.012em !important;
}
html.dd-static body[data-dd-route] #page-container .dd-dictionary .meta,
html.dd-static body[data-dd-route] #page-container .dd-dictionary .meta * {
  font-size: var(--dd-type-meta) !important;
  font-weight: 400 !important;
  line-height: 1.15 !important;
  letter-spacing: normal !important;
}
/* Time Craft has no IPA glyphs. Set the complete transcription in one
   compatible face, not character-by-character fallback with uneven baselines.
   Use the installed Times New Roman; never redistribute its licensed files. */
html.dd-static body[data-dd-route] #page-container .dd-dictionary .meta .dd-phonetic,
html.dd-static body[data-dd-route] #page-container .dd-dictionary .meta .dd-phonetic * {
  font-family: var(--dd-font-phonetic) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  font-synthesis: none;
  line-height: 1.3 !important;
}
html.dd-static body[data-dd-route] #page-container .dd-dictionary .meta .dd-pos {
  font-family: var(--dd-font-dictionary) !important;
  font-style: italic !important;
}
html.dd-static body[data-dd-route] #page-container .dd-dictionary .def,
html.dd-static body[data-dd-route] #page-container .dd-dictionary .def * {
  font-size: var(--dd-type-definition) !important;
  font-weight: 300 !important;
  line-height: 1.36 !important;
  letter-spacing: normal !important;
}

@media (max-width: 767px) {
  :root {
    --dd-type-display: clamp(2.125rem, 10vw, 3rem);
    --dd-type-section: clamp(1.875rem, 8.4vw, 2.5rem);
    --dd-type-card: clamp(1.25rem, 3.1vw, 1.375rem);
    --dd-type-body: 1rem;
  }
  html.dd-static body[data-dd-route] #page-container #et-main-area :is(.dd-page-hero h1, .dd-work-hero h1, .dd-calc-masthead h1, article > h1.entry-title, .not_found h1),
  html.dd-static body[data-dd-route="/"] #page-container #et-main-area .et_pb_text_24 :is(h1, h2),
  html.dd-static body[data-dd-route] #page-container #et-main-area .et-l--post h1 {
    max-width: 100% !important;
    line-height: 1.06 !important;
    letter-spacing: -0.04em !important;
  }
  html.dd-static body[data-dd-route]:not([data-dd-route="/"]) #page-container #et-main-area .et-l--post :is(.dd-frame-copy h2, .dd-frame-copy h3, .dd-subpage-row--intro h2, .dd-subpage-row--intro h3, .dd-faq-row > .et_pb_column:first-child h3, .dd-project-story h2, .dd-project-section-heading h2, .dd-calc-after h2, .dd-calc-callout h2) {
    max-width: 100% !important;
    line-height: 1.1 !important;
  }
}
