.elementor-kit-5{--e-global-color-primary:#141b24;--e-global-color-secondary:#0d2f4f;--e-global-color-text:#4d5660;--e-global-color-accent:#af7c00;--e-global-color-deep_navy:#03172c;--e-global-color-page_cream:#fcfaf6;--e-global-color-surface:#fdfcf9;--e-global-color-surface_alt:#f7f5ef;--e-global-color-border:#d2d8df;--e-global-color-on_dark_body:#c9ced4;--e-global-color-on_dark_heading:#fdfcf8;--e-global-color-trust_bar_text:#f0eeea;--e-global-color-footer_divider:#273442;--e-global-color-footer_muted:#8b9095;--e-global-color-card_link:#123555;--e-global-color-meta_muted:#69737D;--e-global-color-ink_soft:#2B343D;--e-global-typography-primary-font-family:"Libre Baskerville";--e-global-typography-primary-font-size:2.25rem;--e-global-typography-primary-font-weight:700;--e-global-typography-primary-line-height:1.25em;--e-global-typography-secondary-font-family:"Work Sans";--e-global-typography-secondary-font-size:1rem;--e-global-typography-secondary-font-weight:400;--e-global-typography-secondary-line-height:1.65em;--e-global-typography-text-font-family:"Libre Baskerville";--e-global-typography-text-font-size:1.25rem;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.2em;--e-global-typography-accent-font-family:"Work Sans";--e-global-typography-accent-font-size:0.9375rem;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-line-height:1.2em;--e-global-typography-hero_h1-font-family:"Libre Baskerville";--e-global-typography-hero_h1-font-size:3.25rem;--e-global-typography-hero_h1-font-weight:700;--e-global-typography-hero_h1-line-height:1.15em;--e-global-typography-h2_about-font-family:"Libre Baskerville";--e-global-typography-h2_about-font-size:2rem;--e-global-typography-h2_about-font-weight:700;--e-global-typography-h2_about-line-height:1.25em;--e-global-typography-h2_cta-font-family:"Libre Baskerville";--e-global-typography-h2_cta-font-size:1.875rem;--e-global-typography-h2_cta-font-weight:700;--e-global-typography-h2_cta-line-height:1.25em;--e-global-typography-eyebrow-font-family:"Work Sans";--e-global-typography-eyebrow-font-size:0.875rem;--e-global-typography-eyebrow-font-weight:600;--e-global-typography-eyebrow-text-transform:uppercase;--e-global-typography-eyebrow-line-height:1.2em;--e-global-typography-eyebrow-letter-spacing:0.06em;--e-global-typography-body_lg-font-family:"Work Sans";--e-global-typography-body_lg-font-size:1.125rem;--e-global-typography-body_lg-font-weight:400;--e-global-typography-body_lg-line-height:1.6em;--e-global-typography-body_md-font-family:"Work Sans";--e-global-typography-body_md-font-size:1.0625rem;--e-global-typography-body_md-font-weight:400;--e-global-typography-body_md-line-height:1.6em;--e-global-typography-card_body-font-family:"Work Sans";--e-global-typography-card_body-font-size:0.9375rem;--e-global-typography-card_body-font-weight:400;--e-global-typography-card_body-line-height:1.55em;--e-global-typography-ui_semibold_sm-font-family:"Work Sans";--e-global-typography-ui_semibold_sm-font-size:0.875rem;--e-global-typography-ui_semibold_sm-font-weight:600;--e-global-typography-ui_semibold_sm-line-height:1.15em;--e-global-typography-ui_medium-font-family:"Work Sans";--e-global-typography-ui_medium-font-size:0.9375rem;--e-global-typography-ui_medium-font-weight:500;--e-global-typography-ui_medium-line-height:1.2em;--e-global-typography-footer_body-font-family:"Work Sans";--e-global-typography-footer_body-font-size:0.875rem;--e-global-typography-footer_body-font-weight:400;--e-global-typography-footer_body-line-height:1.6em;--e-global-typography-copyright-font-family:"Work Sans";--e-global-typography-copyright-font-size:0.8125rem;--e-global-typography-copyright-font-weight:400;--e-global-typography-copyright-line-height:1.154em;--e-global-typography-page_h1-font-family:"Libre Baskerville";--e-global-typography-page_h1-font-size:clamp(30px, 4vw, 44px);--e-global-typography-page_h1-font-weight:700;--e-global-typography-page_h1-line-height:1.2em;--e-global-typography-body_reading-font-family:"Work Sans";--e-global-typography-body_reading-font-size:1rem;--e-global-typography-body_reading-font-weight:400;--e-global-typography-body_reading-line-height:1.75em;--e-global-typography-stat_number-font-family:"Libre Baskerville";--e-global-typography-stat_number-font-size:2rem;--e-global-typography-stat_number-font-weight:400;--e-global-typography-stat_number-line-height:1.25em;--e-global-typography-stat_label-font-family:"Work Sans";--e-global-typography-stat_label-font-size:0.9375rem;--e-global-typography-stat_label-font-weight:400;--e-global-typography-stat_label-line-height:1.2em;--e-global-typography-h2_section-font-family:"Libre Baskerville";--e-global-typography-h2_section-font-size:1.75rem;--e-global-typography-h2_section-font-weight:700;--e-global-typography-h2_section-line-height:1.25em;--e-global-typography-page_h1_40-font-family:"Libre Baskerville";--e-global-typography-page_h1_40-font-size:2.5rem;--e-global-typography-page_h1_40-font-weight:700;--e-global-typography-page_h1_40-line-height:1.25em;--e-global-typography-page_h1_40_fluid-font-family:"Libre Baskerville";--e-global-typography-page_h1_40_fluid-font-size:clamp(30px, 4vw, 40px);--e-global-typography-page_h1_40_fluid-font-weight:700;--e-global-typography-page_h1_40_fluid-line-height:1.25em;--e-global-typography-page_h1_42-font-family:"Libre Baskerville";--e-global-typography-page_h1_42-font-size:clamp(28px, 4vw, 42px);--e-global-typography-page_h1_42-font-weight:700;--e-global-typography-page_h1_42-line-height:1.2em;--e-global-typography-page_h1_44-font-family:"Libre Baskerville";--e-global-typography-page_h1_44-font-size:2.75rem;--e-global-typography-page_h1_44-font-weight:700;--e-global-typography-page_h1_44-line-height:1.25em;--e-global-typography-faq_question-font-family:"Work Sans";--e-global-typography-faq_question-font-size:1.0625rem;--e-global-typography-faq_question-font-weight:600;--e-global-typography-faq_question-line-height:1.2em;--e-global-typography-faq_answer-font-family:"Work Sans";--e-global-typography-faq_answer-font-size:0.9375rem;--e-global-typography-faq_answer-font-weight:400;--e-global-typography-faq_answer-line-height:1.7em;--e-global-typography-h2_group-font-family:"Libre Baskerville";--e-global-typography-h2_group-font-size:1.375rem;--e-global-typography-h2_group-font-weight:700;--e-global-typography-h2_group-line-height:1.25em;--e-global-typography-card_meta-font-family:"Work Sans";--e-global-typography-card_meta-font-size:0.8125rem;--e-global-typography-card_meta-font-weight:400;--e-global-typography-card_meta-line-height:1.2em;--e-global-typography-list_item-font-family:"Work Sans";--e-global-typography-list_item-font-size:0.9375rem;--e-global-typography-list_item-font-weight:400;--e-global-typography-list_item-line-height:1.9em;--e-global-typography-body_read_170-font-family:"Work Sans";--e-global-typography-body_read_170-font-size:1rem;--e-global-typography-body_read_170-font-weight:400;--e-global-typography-body_read_170-line-height:1.7em;--e-global-typography-h2_detail-font-family:"Libre Baskerville";--e-global-typography-h2_detail-font-size:1.625rem;--e-global-typography-h2_detail-font-weight:700;--e-global-typography-h2_detail-line-height:1.25em;--e-global-typography-crumb-font-family:"Work Sans";--e-global-typography-crumb-font-size:0.875rem;--e-global-typography-crumb-font-weight:400;--e-global-typography-crumb-line-height:1.2em;--e-global-typography-card_body_15-font-family:"Work Sans";--e-global-typography-card_body_15-font-size:0.9375rem;--e-global-typography-card_body_15-font-weight:400;--e-global-typography-card_body_15-line-height:1.2em;--e-global-typography-info_value-font-family:"Work Sans";--e-global-typography-info_value-font-size:0.9375rem;--e-global-typography-info_value-font-weight:400;--e-global-typography-info_value-line-height:1.6em;--e-global-typography-form_label-font-family:"Work Sans";--e-global-typography-form_label-font-size:0.8125rem;--e-global-typography-form_label-font-weight:600;--e-global-typography-form_label-line-height:1.2em;--e-global-typography-footer_link-font-family:"Work Sans";--e-global-typography-footer_link-font-size:0.875rem;--e-global-typography-footer_link-font-weight:400;--e-global-typography-footer_link-line-height:1.143em;color:#4D5660;font-family:"Work Sans", Sans-serif;font-size:1rem;font-weight:400;line-height:1.65em;}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{background-color:#0D2F4F;font-family:"Work Sans", Sans-serif;font-size:0.9375rem;font-weight:600;line-height:1.2em;color:#FDFCF8;border-radius:3px 3px 3px 3px;padding:16px 28px 16px 28px;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 a{color:#0D2F4F;}.elementor-kit-5 h1{color:#141B24;font-family:"Libre Baskerville", Sans-serif;font-size:3.25rem;font-weight:700;line-height:1.15em;}.elementor-kit-5 h2{color:#141B24;font-family:"Libre Baskerville", Sans-serif;font-size:2.25rem;font-weight:700;line-height:1.25em;}.elementor-kit-5 h3{color:#141B24;font-family:"Libre Baskerville", Sans-serif;font-size:1.25rem;font-weight:400;line-height:1.35em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-5{--e-global-typography-primary-font-size:1.75rem;--e-global-typography-hero_h1-font-size:2.5625rem;--e-global-typography-h2_about-font-size:1.75rem;--e-global-typography-h2_cta-font-size:1.625rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-5{--e-global-typography-primary-font-size:1.625rem;--e-global-typography-hero_h1-font-size:2rem;--e-global-typography-h2_about-font-size:1.625rem;--e-global-typography-h2_cta-font-size:1.5rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* NHC — site-wide corrections (kit level: one home for these rules) */

/* Text Editor widgets: kill the trailing paragraph margin so spacing comes ONLY from the
   widget's own margin, matching the source's margin-driven rhythm. Without this every
   text block gains a second, invisible gap on top of the intended one. */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Header wordmark must never wrap to two lines */
.nhc-site-header .elementor-widget-heading .elementor-heading-title { white-space: nowrap; }

/* Buttons: Elementor only emits a transition on the properties it is told to animate, and
   only in the hover direction. Declaring it on the base state makes every button ease in
   AND out consistently, including the border and shadow. */
.elementor-widget-button .elementor-button {
  transition: background-color .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
}

/* Service cards are whole-card links (html_tag=a). Keep them looking like cards, not links,
   and give a clear hover + keyboard focus affordance the source never had. */
.nhc-service-card { justify-content: flex-start; text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease; }
.nhc-service-card:hover { border-color: #0D2F4F; box-shadow: 0 6px 20px -12px rgba(6,24,38,.45); }
.nhc-service-card:focus-visible { outline: 2px solid #0D2F4F; outline-offset: 3px; }

/* Photo placeholders stand in for client photography that has not been supplied.
   Remove these once real Image widgets replace them. */
.nhc-photo-placeholder { align-items: center; justify-content: center; }

/* Service detail pages: the mockup's "What's Included" block is a fixed two-column CSS
   grid (`1fr 1fr`, gap 16). Flex cannot hold two-per-row here — at 50% width the pair
   plus the gap exceeds the 688px container and wraps to one per row. Use a real grid. */
.nhc-included-grid.e-con {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* Service detail breadcrumb: muted links, current page in heading ink. */
.nhc-breadcrumb a { color: #69737D; text-decoration: none; }
.nhc-breadcrumb a:hover { color: #0D2F4F; }
.nhc-breadcrumb .nhc-crumb-current { color: #141B24; }

/* Two-column rows reproduce the mockup's `flex: 1 1 380px` + flex-wrap: side by side
   while both columns still fit at 380px, stacked full-width below that (~824px of
   container). Elementor's _flex_grow / _flex_shrink / _flex_basis child controls all
   persist in the tree but emit NO CSS on this build, so the sizing lives here.
   Scoped to >=768 because below that flex_direction_mobile:column takes over and a
   380px basis would become a 380px minimum HEIGHT. */
@media (min-width: 768px) {
  .nhc-flex2 > .e-con-inner > .e-con,
  .nhc-flex2.e-con-full > .e-con {
    flex: 1 1 380px;
  }
}

/* Homepage service cards: one container, six cards, flex-wrap. The mockup used a
   rigid `repeat(3, 1fr)` grid that squeezed to three cramped columns at every width;
   a 320px basis keeps 3-up on desktop (370.67 each, matching the mockup exactly),
   drops to 2-up on tablet and 1-up on mobile. */
.nhc-card-grid > .e-con-inner > .e-con,
.nhc-card-grid.e-con-full > .e-con {
  flex: 1 1 320px;
}

/* Service photography: the real Image widget shown once svc_hero_image / svc_hub_image
   is supplied. Elementor's Display Conditions swap it with .nhc-photo-placeholder, so
   this must reproduce the placeholder's box exactly — 4:3 (472x354) and a 6px radius. */
.nhc-hero-photo img,
.nhc-hub-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 6px;
}

/* Services hub Loop Grid: the six rows alternated row / row-reverse when they were
   hand-built. Every loop item now renders from one template, so the alternation has
   to come from position instead of per-row settings. */
/* NOTE: Elementor injects a <style> element as the loop container's FIRST child, so
   :nth-child(even) matches items 1,3,5 — the inverse of the design. nth-of-type
   counts only the item <div>s and is immune to that injected node. */
.nhc-services-loop .elementor-loop-container > .e-loop-item:nth-of-type(even) .nhc-service-row {
  flex-direction: row-reverse;
}
@media (max-width: 767px) {
  .nhc-services-loop .elementor-loop-container > .e-loop-item:nth-of-type(even) .nhc-service-row {
    flex-direction: column;
  }
}

/* === QA pass 2026-08-13 === */

/* Nav: the mockup renders the current page at 600 and the rest at 500. Elementor's
   nav-menu widget exposes no typography control for the active state, only colour,
   so the weight has to live here. */
.nhc-site-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-nav-menu .elementor-item.elementor-item-active { font-weight: 600; }

/* "Learn more" sits at the card's bottom edge regardless of how long the blurb is,
   never wraps, and takes the gold accent alongside the card's existing hover.
   (The mockup does NOT bottom-align these — this is a deliberate improvement.) */
.nhc-service-card .nhc-learn-more { margin-top: auto; }
.nhc-service-card .nhc-learn-more .elementor-heading-title {
  white-space: nowrap;
  transition: color .18s ease;
}
a.nhc-service-card:hover .nhc-learn-more.elementor-widget-heading .elementor-heading-title,
a.nhc-service-card:focus-visible .nhc-learn-more.elementor-widget-heading .elementor-heading-title {
  color: var(--e-global-color-secondary);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Contact details are real links now (tel: / mailto: / maps) but must keep the
   surrounding text colour rather than the default link blue. */
.nhc-site-footer a.nhc-footer-contact,
.elementor a.nhc-tel { color: inherit; text-decoration: none; transition: color .18s ease; }
.nhc-site-footer a.nhc-footer-contact:hover,
.nhc-site-footer a.nhc-footer-contact:focus-visible { color: var(--e-global-color-accent); }
/* On the cream ground gold measures 3.5:1 and fails AA, so body-copy tel links
   use Brand Navy + underline, matching the Services hub decision. */
.elementor a.nhc-tel:hover,
.elementor a.nhc-tel:focus-visible { color: var(--e-global-color-secondary); text-decoration: underline; text-underline-offset: 3px; }

/* Button pairs: the mockup's flex row stretches both buttons to a common height, so a
   bordered secondary never sits 2px taller than a solid primary. Elementor leaves
   align-items unset. Stretch the wrapper AND let the anchor fill it. */
.nhc-section-hero .e-con-inner > .elementor-widget-button,
.nhc-section-cta  .e-con-inner > .elementor-widget-button { display: flex; align-items: stretch; }
.nhc-section-hero .elementor-widget-button .elementor-button-wrapper,
.nhc-section-cta  .elementor-widget-button .elementor-button-wrapper { display: flex; }
.nhc-section-hero .elementor-widget-button .elementor-button,
.nhc-section-cta  .elementor-widget-button .elementor-button { display: inline-flex; align-items: center; }

/* Hub loop item: the Learn more heading wraps its own <a>. Keep the kit's
   theme-style link colour off it and give it the same gold hover as the cards. */
.nhc-learn-more .elementor-heading-title a { color: inherit; text-decoration: none; transition: color .18s ease; }
.nhc-learn-more .elementor-heading-title a:hover,
.nhc-learn-more .elementor-heading-title a:focus-visible { color: var(--e-global-color-secondary); text-decoration: underline; text-underline-offset: 3px; }/* End custom CSS */