/* Final presentation rules. Load after legacy-layout.css. */
:root { --cd-article-blue: #2ea3f2; }

/* Divi's dark-background heading inheritance must be explicit without Divi. */
.cd-legacy.cd-page-home-2 .cd-m4 h1,
.cd-legacy.cd-page-about-us .cd-m4 h1,
.cd-legacy.cd-page-services .cd-m4 h1,
.cd-legacy.cd-page-contact .cd-m4 h1,
.cd-legacy.cd-page-contact .cd-m5 h3,
.cd-legacy.cd-page-home-2 .cd-m4 h1 *,
.cd-legacy.cd-page-about-us .cd-m4 h1 *,
.cd-legacy.cd-page-services .cd-m4 h1 *,
.cd-legacy.cd-page-contact .cd-m4 h1 * {
  color: #fff !important;
}

/* Use the bundled icon font; ordinary content lists keep their checkmarks. */
.cd-legacy.cd-page-home-2 .cd-m8 .cd-benefits li {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #fff;
  font-weight: 700;
  text-align: left;
}
.cd-legacy.cd-page-home-2 .cd-m8 .cd-benefits li::before {
  display: inline-block;
  flex: 0 0 28px;
  margin: 0;
  color: #fff;
  font-family: CDIcons;
  font-weight: 900;
  font-size: 26px;
  line-height: 1;
  text-align: center;
}
.cd-legacy.cd-page-home-2 .cd-m11 li::before { content: "\f274"; }
.cd-legacy.cd-page-home-2 .cd-m14 li::before { content: "\f279"; }
.cd-legacy.cd-page-home-2 .cd-m17 li::before { content: "\f688"; }

/* Measured against the live article archive, including its left-aligned grid. */
.cd-articles-page { padding-top: 6%; }
.cd-articles-page > h1 {
  color: var(--cd-article-blue);
  line-height: 1;
  letter-spacing: 1.08px;
  overflow-wrap: break-word;
}
.cd-articles-page > p { position: relative; top: -14px; padding: 0; }
.cd-articles-page > hr {
  height: 23px;
  margin: 0;
  border-top-color: var(--cd-article-blue);
}
.cd-articles-page .article-grid {
  margin: 2vw 0 0;
  gap: 20px;
}
.cd-articles-page .article-card { border-color: #666; }
.cd-articles-page .article-card h2 {
  line-height: 1;
  padding: 0;
  margin: 0 3px 20px 0;
}
.cd-articles-page .article-card h2,
.cd-articles-page .article-card h2 a,
.cd-articles-page .article-card-body > a { color: var(--cd-article-blue); }
.cd-articles-page .article-card p { padding: 0; line-height: 1; }
.cd-articles-page .article-card-body > a {
  display: block;
  line-height: 2;
}
.cd-articles-page .article-card-body > a span {
  color: #07203f;
  font-size: 20px;
  line-height: 1;
  display: inline-block;
  margin-left: 25px;
}
.cd-articles-page .article-card a:hover { text-decoration: underline; }

@media (min-width: 981px) {
  .header-inner { padding-top: 18px; padding-bottom: 18px; min-height: 96px; }
  .header-cta { font-size: 20px; }
}
@media (max-width: 980px) {
  .cd-articles-page { padding-top: 80px; }
  .cd-articles-page .article-grid { margin-top: 30px; }
}
@media (max-width: 767px) {
  .cd-articles-page > h1 { font-size: clamp(32px, 10vw, 50px); }
  .cd-legacy.cd-page-home-2 .cd-m8 .cd-benefits li::before { font-size: 20px; }
}

/* Long source URLs in article text must fit tablets as well as phones. */
.cd-single-body-bg .article-body { overflow-wrap: anywhere; }

/* Keep the mobile menu accessible while matching the live hamburger control. */
@media (max-width: 980px) {
  .menu-toggle {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    padding: 10px;
    border: 0;
    background: transparent;
    color: #959d93;
    cursor: pointer;
  }
  .menu-toggle .menu-icon { display: block; }
}

/* Restore light headings on the original dark and gold sections. */
.cd-legacy.cd-page-home-2 .cd-m31 h2,
.cd-legacy.cd-page-home-2 .cd-m38 h6,
.cd-legacy.cd-page-home-2 .cd-m40 h6,
.cd-legacy.cd-page-home-2 .cd-m42 h6,
.cd-legacy.cd-page-about-us .cd-m14 h3,
.cd-legacy.cd-page-about-us .cd-m19 h2,
.cd-legacy.cd-page-about-us .cd-m24 h2,
.cd-legacy.cd-page-about-us .cd-m29 h2,
.cd-legacy.cd-page-about-us .cd-m34 h2,
.cd-legacy.cd-page-about-us .cd-m39 h2,
.cd-legacy.cd-page-about-us .cd-m44 h2,
.cd-legacy.cd-page-contact .cd-m18 h4,
.cd-legacy.cd-page-contact .cd-m19 h4,
.cd-legacy.cd-page-contact .cd-m20 h4,
.cd-legacy.cd-page-footer .cd-m4 h3 {
  color: #fff;
}

/* Footer navigation uses the live site’s pale blue, not body gray. */
.cd-page-footer .cd-footer-menu a { color: #aaccee; }
.cd-page-footer .cd-footer-menu a:hover,
.cd-page-footer .cd-footer-menu a:focus-visible { color: #fff; }

/* 0.4.29: live biography layout, with accessible bundled portrait images. */
.cd-page-about-us .cd-col-1_3.cd-photo-column {
  background-image: none !important;
  overflow: hidden;
}
.cd-page-about-us .cd-col-1_3.cd-photo-column > .cd-copy {
  position: absolute;
  inset: 0;
  margin: 0;
}
.cd-page-about-us .cd-col-1_3.cd-photo-column .cd-team-portrait {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
@media (max-width: 767px) {
  .cd-page-about-us .cd-col-1_3.cd-photo-column .cd-team-portrait {
    object-position: center;
  }
}

/* Contact fields follow the live form; keep checkbox sizing separate from text inputs. */
.cd-name-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.cd-contact-form .cd-service-fields{border:0;padding:0;margin:20px 0;min-width:0}
.cd-contact-form .cd-service-fields legend{font-size:.9rem;font-weight:600;margin-bottom:8px}
.cd-contact-form .cd-service-fields label{display:flex;align-items:baseline;gap:8px;font-weight:400;margin:6px 0}
.cd-contact-form input[type=checkbox]{width:auto;flex:none;margin:0;accent-color:var(--gold)}
.cd-message-count{display:block;text-align:right;font-size:12px;color:#666;margin-bottom:18px}
@media(max-width:600px){.cd-name-fields{grid-template-columns:minmax(0,1fr);gap:0}}

/* Only JavaScript-enabled, observed elements acquire this temporary state. */
.cd-reveal-pending{opacity:var(--cd-reveal-opacity,0);transform:var(--cd-reveal-transform,none)}
@media(prefers-reduced-motion:reduce){.cd-reveal-pending{opacity:1!important;transform:none!important}}
@media print{.cd-reveal-pending{opacity:1!important;transform:none!important}}

/* 0.4.8: align article titles and shared callout spacing with the live site. */
.cd-single-header { padding-top: min(4%, 54px); }
.cd-single-heading-row { padding-top: min(2%, 27px); }
.cd-single-title h1,
.cd-articles-page > h1,
.cd-legacy .cd-m4 h1,
.cd-page-home-2 .cd-m24 h2 {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
}
.cd-single-title h1 { line-height: 1; }
.cd-articles-page { padding-top: min(6%, 81px); }
.cd-articles-page .article-card h2 {
  font-family: Lato, Helvetica, Arial, Lucida, sans-serif;
}
.cd-page-about-us :is(.cd-m19,.cd-m24,.cd-m29,.cd-m34,.cd-m39,.cd-m44) h2 {
  line-height: 1em;
}
/* Replace the heading's 10px bottom padding with equal breathing room above/below.
   Keep the live row height while centering text and the button together. */
.cd-page-footer .cd-m1 { padding: min(4%, 54px) 0; }
.cd-page-footer .cd-m1 > .cd-m2 {
  padding: calc(min(2%, 27px) + 5px) 0;
  align-items: center;
}
.cd-page-footer .cd-m1 .cd-m4 { margin-bottom: 0; }
.cd-page-footer .cd-m1 .cd-m4 h3 { padding-bottom: 0; }
@media (max-width: 980px) {
  .cd-single-header { padding-top: 50px; }
  .cd-single-heading-row { padding-top: 30px; }
  .cd-single-title h1 { font-size: 62px; line-height: 1; }
  .cd-articles-page { padding-top: 80px; }
  .cd-page-footer .cd-m1 { padding: 50px 0; }
  .cd-page-footer .cd-m1 > .cd-m2 {
    padding: 35px 0;
    gap: 30px;
  }
  .cd-page-footer .cd-m1 > .cd-m2 > .cd-column { margin-bottom: 0; }
}
@media (max-width: 767px) {
  .cd-articles-page > h1 { font-size: 50px; line-height: 1; }
}

/* 0.4.12: live Services benefit-strip icons (30px on desktop and phone). */
.cd-legacy.cd-page-services .cd-m7 .cd-benefits li {
  display: flex;
  align-items: center;
  gap: 10px;
}
.cd-legacy.cd-page-services .cd-m7 .cd-benefits li::before {
  content: "\f058";
  display: inline-block;
  flex: 0 0 30px;
  width: 30px;
  margin: 0;
  color: #fff;
  font-family: CDIcons;
  font-style: normal;
  font-weight: 900;
  font-size: 30px;
  line-height: 30px;
  text-align: center;
}

/* 0.4.13: keep Account Login below the last footer-navigation link. */
.cd-legacy.cd-page-footer .cd-m17 {
  display: table;
  margin-top: 16px;
}

/* 0.4.14: service paragraphs align with their headings on tablets and phones. */
@media (max-width: 980px) {
  .cd-legacy.cd-page-services .cd-m24,
  .cd-legacy.cd-page-services .cd-m33,
  .cd-legacy.cd-page-services .cd-m46,
  .cd-legacy.cd-page-services .cd-m55 {
    padding-left: 0;
    padding-right: 0;
  }
}

/* 0.4.15: solid white behind the Services process section at every width. */
.cd-legacy.cd-page-services .cd-m62 {
  background-color: #fff;
  background-image: none;
}

/* 0.4.16: center the footer logo on phone screens. */
@media (max-width: 767px) {
  .cd-legacy.cd-page-footer .cd-m10 {
    margin-left: auto;
    margin-right: auto;
  }
}

/* Restore live's 50px bio insets and independent 500px-minimum rows.
   legacy-layout.css supplies row padding, minimum height and stacked photos. */
.cd-legacy.cd-page-about-us :is(.cd-m18,.cd-m23,.cd-m28,.cd-m33,.cd-m38,.cd-m43) > .cd-copy {
  margin-bottom: 0;
}

/* 0.4.19: registered marks are smaller and raised without enlarging line boxes. */
.cd-registered-mark {
  font-size: 0.6em !important;
  line-height: 0;
  vertical-align: super;
  position: static;
  top: auto;
}
/* An already-superscripted mixed-text parent supplies the vertical positioning. */
sup .cd-registered-mark { vertical-align: baseline; }

/* 0.4.20: keep the call button visually grouped with Option 1. */
.cd-legacy.cd-page-contact .cd-m10 {
  margin-bottom: 6px;
}
.cd-legacy.cd-page-contact .cd-m10 h4 {
  padding-bottom: 0;
}
.cd-legacy.cd-page-contact .cd-m11 {
  display: table;
  margin-top: 0;
  margin-bottom: 12px;
}
.cd-legacy.cd-page-contact .cd-m12 {
  margin-top: 0;
}

/* 0.4.21: this element sizes a background photo; it is not a visible separator. */
.cd-legacy.cd-page-home-2 .cd-m90 > .cd-m91 {
  border: 0;
  background: none;
}

/* This divider is an invisible photo-height spacer, not a line over the image. */
.cd-legacy.cd-page-about-us .cd-m69 > .cd-m70 {
  border: 0;
  background: none;
}

/* 0.4.24: photo-height spacers never draw separators over photographs. */
.cd-legacy .cd-photo-column > hr {
  border: 0;
  background: none;
  visibility: hidden;
}

/* Match live's two-column tablet credential layout and logo proportions. */
@media (min-width: 768px) and (max-width: 980px) {
  .cd-legacy.cd-page-home-2 .cd-m67,
  .cd-legacy.cd-page-about-us .cd-m46 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 5.5%;
    row-gap: 30px;
    align-items: start;
    width: 80%;
    padding: 30px 0;
  }
  .cd-legacy.cd-page-home-2 .cd-m67 > .cd-column,
  .cd-legacy.cd-page-about-us .cd-m46 > .cd-column {
    width: auto;
    min-width: 0;
    margin-bottom: 0;
  }
  .cd-legacy.cd-page-home-2 .cd-m67 .cd-copy,
  .cd-legacy.cd-page-about-us .cd-m46 .cd-copy {
    margin-bottom: 0;
  }
  .cd-legacy.cd-page-home-2 .cd-m67 .cd-image,
  .cd-legacy.cd-page-about-us .cd-m46 .cd-image {
    height: auto;
    max-height: none;
    margin: 0;
  }
}

/* The empty desktop column must not expose a strip above the tablet overlay. */
@media (max-width: 980px) {
  .cd-legacy.cd-page-home-2 .cd-m93 > .cd-m94 {
    display: none;
  }
  .cd-legacy.cd-page-home-2 .cd-m93 {
    margin-top: 0;
    padding-top: 0;
  }
}

/* 0.4.25: public author details are supplied by Core. */
.cd-article-attribution { margin-bottom: 24px; font-size: .9em; line-height: 1.6; }
.cd-article-attribution p { padding-bottom: .5em; }

/* Native fragment fallback; JavaScript measures the actual sticky header. */
.cd-page-about-us :is(#justin-hutt,#dustin-osborne,#mark-bowers,#jo-vanderploeg,#julie-henegar,#alex-bergsma) { scroll-margin-top: var(--cd-anchor-offset, 104px); }
@media(max-width:980px) { .cd-page-about-us .cd-row[id] { scroll-margin-top: var(--cd-anchor-offset, 88px); } }
@media(max-width:767px) { .cd-page-about-us .cd-row[id] { scroll-margin-top: var(--cd-anchor-offset, 72px); } }

/* Divi uses grayscale antialiasing on macOS; retain its lighter rendering. */
body { -webkit-font-smoothing: antialiased; }

/* 0.4.30: content rhythm and photographic crops measured against live. */
.cd-legacy.cd-page-home-2 .cd-m8 .cd-benefits li,
.cd-legacy.cd-page-services .cd-m8 .cd-benefits li { padding-top: 0; padding-bottom: 0; }
.cd-legacy .cd-card h2:empty { display: none; }
.cd-page-home-2 :is(.cd-m84,.cd-m86,.cd-m88) .cd-card-copy,
.cd-page-about-us :is(.cd-m63,.cd-m65,.cd-m67) .cd-card-copy,
.cd-page-services :is(.cd-m68,.cd-m70,.cd-m72) .cd-card-copy {
  padding-bottom: 20px;
  line-height: 1.9em;
}
.cd-page-home-2 .cd-card p { line-height: 1.9em; }

/* Article typography follows the live text module, including nested solid bullets. */
.cd-single-body-bg .article-body :is(h1,h2,h3,h4,h5,h6) { line-height: 1em; }
.cd-single-body-bg .article-body :is(ul,ol) {
  margin: 0;
  padding: 0 0 1em 1em;
  line-height: 26px;
  list-style-position: outside;
}
.cd-single-body-bg .article-body ul { list-style-type: disc; }
.cd-single-body-bg .article-body ol { list-style-type: decimal; }
.cd-single-body-bg .article-body li { margin: 0; padding: 0; }
.cd-single-body-bg .article-body hr {
  height: 2px;
  margin: .5em auto;
  padding: 0;
  border: 1px inset #808080;
  background: none;
}

/* Restore the live footer navigation title and outlined account button. */
.cd-page-footer .cd-m16 { font-size: 20px; line-height: 1.9em; }
.cd-page-footer .cd-footer-links-heading {
  color: #cbcbcd;
  font: 500 20px/1.9em 'Open Sans', Arial, sans-serif;
  margin: 0;
  padding: 0 0 16px;
}
.cd-page-footer .cd-m17 {
  color: #aaccee !important;
  background: transparent;
  border: 2px solid #aaccee;
  border-radius: 3px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7em;
  padding: .3em 1em;
}
.cd-page-footer .cd-m17:hover,
.cd-page-footer .cd-m17:focus-visible { background: rgba(255,255,255,.08); color: #aaccee !important; }

/* Live text modules trim the last paragraph even when a heading/list follows. */
.cd-legacy .cd-copy p:last-of-type,
.cd-legacy .cd-card-copy p:last-of-type,
.cd-single-body-bg .article-body p:last-of-type { padding-bottom: 0; }
.cd-icon-left .cd-module-icon { margin-bottom: 0; }
@media(min-width:981px) {
  .cd-page-home-2 :is(.cd-m20,.cd-m93) > .cd-column { --cd-module-gap: 0px; }
}
/* Live text lists use the same reset as the article text modules. */
.cd-legacy .cd-copy :is(ul,ol) { margin: 0; padding: 0 0 1em 1em; line-height: 26px; }
.cd-legacy .cd-copy ul { list-style-type: disc; }
.cd-page-home-2 .cd-m26 li { line-height: 2.5em; }
.cd-page-footer .cd-m16 { margin-bottom: var(--cd-module-gap); }
.cd-page-footer .cd-footer-menu { padding-bottom: 23px; line-height: 26px; }
.cd-page-footer .cd-footer-menu li { margin: 0 0 16px; padding: 0; }
.cd-page-footer .cd-footer-menu li:last-child { margin-bottom: 0; }
.cd-page-footer .cd-footer-menu a { font-size: 18px; line-height: 1.9em; }
.cd-legacy.cd-page-footer .cd-m17 { margin-top: -20px; margin-bottom: 20px; }
/* Icon-label line boxes scale with their 20/26px labels, as on live. */
.cd-legacy .cd-benefits li { line-height: 1.7em; }
/* Include the live archive's final row spacing and its row's bottom padding. */
.cd-articles-page { padding-bottom: 6%; }
.cd-articles-page .article-grid { padding-bottom: 20px; }
.cd-articles-page .article-card-body > a { padding-bottom: 1.4px; }
/* Preserve the live divider's spacer height inside the Home text overlay. */
.cd-legacy.cd-page-home-2 .cd-m98 {
  position: relative;
  height: 23px;
  margin: 30px 0 0;
  border: 0;
}
.cd-page-home-2 .cd-m98::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  border-top: 3px solid #aaccee;
}
/* Original background photos are sized by their spacers, not a 300px floor. */
.cd-legacy .cd-photo-column { min-height: 1px; }
.cd-legacy .cd-photo-column:empty::after { content: ''; display: block; height: 7px; }
.cd-legacy .cd-photo-column > hr {
  box-sizing: content-box;
  height: 23px;
  margin: 0;
}
@media(max-width:980px) {
  .cd-legacy.cd-page-home-2 .cd-m21 {
    height: 1px;
    min-height: 1px;
    margin-bottom: 0;
    overflow: hidden;
  }
  .cd-legacy.cd-page-home-2 :is(.cd-m20,.cd-m93) .cd-copy { margin-bottom: 0; }
}
/* Restore live's original biography mark widths and baselines for identical wrapping. */
.cd-page-about-us :is(.cd-m19,.cd-m24,.cd-m29,.cd-m34,.cd-m39,.cd-m44) .cd-registered-mark {
  font-size: 1em !important;
  line-height: inherit;
  vertical-align: baseline;
}
@media(max-width:767px) {
  .cd-page-home-2 .cd-m36 .cd-icon-left .cd-module-icon {
    width: 35.02px;
    flex: 0 0 35.02px;
    font-size: 45px;
    text-align: center;
  }
}
.cd-articles-page .article-grid { margin-top: min(2vw,27px); }
@media(max-width:980px) {
  .cd-articles-page { padding-bottom: 80px; }
  .cd-articles-page .article-grid { margin-top: 30px; }
  .cd-articles-page > p { font-size: .9em; line-height: 2em; }
}
@media(max-width:767px) {
  .cd-articles-page > p { font-size: .8em; line-height: 1.6em; }
}

/* 0.4.31: restore Home's live near-black paragraph palette. */
.cd-legacy.cd-page-home-2 :is(.cd-m50,.cd-m55,.cd-m58,.cd-m65,.cd-m82,.cd-m84,.cd-m86,.cd-m88,.cd-m100) {
  color: #101316;
}

/* Center the About introduction's existing 90% text block, as on live. */
.cd-legacy.cd-page-about-us .cd-m9 {
  margin-left: auto;
  margin-right: auto;
}

/* Let copyright use the whole footer row before wrapping at word boundaries. */
.cd-legacy.cd-page-footer .cd-m22 {
  width: 90%;
  max-width: 1280px;
}
.cd-legacy.cd-page-footer .cd-m23 {
  width: 100%;
  margin-bottom: 0;
}
.cd-legacy.cd-page-footer .cd-m25 { display: none; }
.cd-legacy.cd-page-footer .cd-m24 {
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
}

/* The successful receipt replaces the form and remains visible without JavaScript. */
.cd-contact-success { scroll-margin-top: 120px; }
.cd-contact-success .cd-contact-confirmation {
  margin: 0;
  padding: 24px;
  border: 2px solid #35724a;
  border-left-width: 6px;
  border-radius: 3px;
  background: #f0f7f1;
  color: #173f29;
  font-size: 18px;
  line-height: 1.7;
}
.cd-contact-success .cd-contact-confirmation h4 {
  margin: 0;
  padding: 0 0 10px;
  color: #173f29;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
}
.cd-contact-success .cd-contact-confirmation p { margin: 0; padding: 0; font-size: 18px; }
