.elementor-kit-29{--e-global-color-primary:#0E3C53;--e-global-color-secondary:#093449;--e-global-color-text:#4A6B7A;--e-global-color-accent:#FF5029;--e-global-color-ms_tint:#D8E8EE;--e-global-color-ms_surf:#F2F8FA;--e-global-color-ms_line:#C7DCE4;--e-global-color-ms_ondark:#E8F2F6;--e-global-color-ms_white:#FFFFFF;--e-global-color-ms_bluegrey:#A6C3CE;--e-global-color-ms_salmon:#ED8972;--e-global-color-ms_cream:#FFF6E8;--e-global-color-ms_black:#111111;--e-global-typography-primary-font-family:"Montserrat";--e-global-typography-primary-font-size:54px;--e-global-typography-primary-font-weight:700;--e-global-typography-primary-line-height:1.07em;--e-global-typography-primary-letter-spacing:-1.5px;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-size:36px;--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-line-height:1.16em;--e-global-typography-secondary-letter-spacing:-0.8px;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-size:18px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.65em;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-size:16px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-line-height:1.2em;--e-global-typography-ms_hero-font-family:"Montserrat";--e-global-typography-ms_hero-font-size:54px;--e-global-typography-ms_hero-font-weight:700;--e-global-typography-ms_hero-line-height:1.07em;--e-global-typography-ms_hero-letter-spacing:-1.5px;--e-global-typography-ms_h3-font-family:"Montserrat";--e-global-typography-ms_h3-font-size:22px;--e-global-typography-ms_h3-font-weight:700;--e-global-typography-ms_h3-line-height:1.3em;--e-global-typography-ms_lead-font-family:"Roboto";--e-global-typography-ms_lead-font-size:18px;--e-global-typography-ms_lead-font-weight:400;--e-global-typography-ms_lead-line-height:1.6em;--e-global-typography-ms_quote-font-family:"Roboto";--e-global-typography-ms_quote-font-size:20px;--e-global-typography-ms_quote-font-weight:400;--e-global-typography-ms_quote-line-height:1.6em;--e-global-typography-ms_label-font-family:"Montserrat";--e-global-typography-ms_label-font-size:12px;--e-global-typography-ms_label-font-weight:700;--e-global-typography-ms_label-text-transform:uppercase;--e-global-typography-ms_label-line-height:1.2em;--e-global-typography-ms_label-letter-spacing:1.7px;--e-global-typography-ms_small-font-family:"Roboto";--e-global-typography-ms_small-font-size:15px;--e-global-typography-ms_small-font-weight:400;--e-global-typography-ms_small-line-height:1.55em;--e-global-typography-ms_num-font-family:"Montserrat";--e-global-typography-ms_num-font-size:44px;--e-global-typography-ms_num-font-weight:700;--e-global-typography-ms_num-line-height:1em;--e-global-typography-ms_num-letter-spacing:-2px;color:#4A6B7A;font-family:"Roboto", Sans-serif;font-size:18px;font-weight:400;line-height:1.65em;}.elementor-kit-29 button,.elementor-kit-29 input[type="button"],.elementor-kit-29 input[type="submit"],.elementor-kit-29 .elementor-button{background-color:#FF5029;font-family:"Montserrat", Sans-serif;font-size:16px;font-weight:600;letter-spacing:0.2px;color:#FFFFFF;border-radius:300px 300px 300px 300px;padding:18px 38px 18px 38px;}.elementor-kit-29 button:hover,.elementor-kit-29 button:focus,.elementor-kit-29 input[type="button"]:hover,.elementor-kit-29 input[type="button"]:focus,.elementor-kit-29 input[type="submit"]:hover,.elementor-kit-29 input[type="submit"]:focus,.elementor-kit-29 .elementor-button:hover,.elementor-kit-29 .elementor-button:focus{background-color:#0E3C53;color:#FFFFFF;}.elementor-kit-29 e-page-transition{background-color:#FFBC7D;}.elementor-kit-29 a{color:#0E3C53;}.elementor-kit-29 a:hover{color:#FF5029;}.elementor-kit-29 h1{color:#0E3C53;font-family:"Montserrat", Sans-serif;font-size:54px;font-weight:700;line-height:1.07em;letter-spacing:-1.5px;}.elementor-kit-29 h2{color:#0E3C53;font-family:"Montserrat", Sans-serif;font-size:36px;font-weight:700;line-height:1.16em;letter-spacing:-0.8px;}.elementor-kit-29 h3{color:#0E3C53;font-family:"Montserrat", Sans-serif;font-size:22px;font-weight:700;line-height:1.3em;}.elementor-kit-29 h4{color:#0E3C53;font-family:"Montserrat", Sans-serif;font-size:19px;font-weight:600;line-height:1.35em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.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-29 h1{font-size:42px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-29 h1{font-size:32px;}.elementor-kit-29 h2{font-size:28px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS */html { scroll-behavior: smooth; }
[id="lets-chat"] { scroll-margin-top: 100px; }
.elementor-accordion .elementor-tab-title { padding: 22px 0; }
.elementor-accordion .elementor-tab-content { padding: 0 0 22px; }
.elementor-accordion .elementor-accordion-item { border-left: 0 !important; border-right: 0 !important; border-top: 0 !important; }
.elementor-accordion .elementor-accordion-item:first-child { border-top: 1px solid #C7DCE4 !important; }
.elementor-accordion .elementor-accordion-icon { margin-left: auto; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
/* Hero background video: honour reduced-motion by falling back to the poster frame */
@media (prefers-reduced-motion: reduce) {
  .elementor-background-video-container { display: none !important; }
}
.elementor-background-video-container { pointer-events: none; }
/* Animated GIF: swap to a static first frame when the visitor asks for reduced motion */
.ms-motion-still { display: none; }
@media (prefers-reduced-motion: reduce) {
  .ms-motion-gif { display: none !important; }
  .ms-motion-still { display: block !important; }
}
/* hdrcta-narrow-desktop: with 7 nav items the header CTA no longer fits beside the menu
   between the tablet breakpoint and ~1200px, so it hides there. It is already hidden
   at 1024 and below; every page still has a hero CTA and a closing CTA. */
@media (min-width: 1025px) and (max-width: 1365px) {
  .elementor-element-hdrcta { display: none !important; }
}
/* Blog cards: lift + image zoom on hover; whole card clickable via the title link */
.ms-blog-card { position: relative; transition: transform .3s ease, box-shadow .3s ease; }
.ms-blog-card:hover { transform: translateY(-6px); box-shadow: 0 18px 44px rgba(14,60,83,.18) !important; }
/* card body must stretch to the card's full height, otherwise the excerpt has no free
   space to absorb and 'Read Article' sits at a different height on every card */
.ms-blog-card > .ms-card-body { --flex-grow: 1; flex-grow: 1; }
.ms-blog-card > .ms-card-body > .ms-card-exc { flex-grow: 1; }
.ms-card-img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; transition: transform .55s ease; }
.ms-blog-card:hover .ms-card-img img { transform: scale(1.06); }
/* whole-card click: inset:0 resolves against the nearest POSITIONED ancestor, so the
   inner container and title widget must stay static or the overlay only covers the
   title. 'Read Article' is a real link and sits above the overlay on z-index 3. */
.ms-blog-card > .ms-card-body, .ms-blog-card .ms-card-title { position: static; }
.ms-card-title a::after { content: ''; position: absolute; inset: 0; z-index: 2; }
.ms-card-more { position: relative; z-index: 3; }
.ms-card-title a:focus-visible { outline: 3px solid #FF5029; outline-offset: 4px; }
.ms-card-exc p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin: 0; }
.ms-card-more .elementor-button { background: none; padding: 0; border: 0; text-decoration: none; transition: color .25s ease; }
.ms-blog-card:hover .ms-card-more .elementor-button { color: #FF5029; }
.ms-card-more .elementor-button:focus-visible { outline: 3px solid #FF5029; outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) {
  .ms-blog-card, .ms-card-img img, .ms-card-more .elementor-button { transition: none !important; }
  .ms-blog-card:hover, .ms-blog-card:hover .ms-card-img img { transform: none; }
}

/* Single post: article body typography, TOC card, share bar */
.ms-post-body { color:#3A5766; font-family:'Roboto',sans-serif; font-size:18px; line-height:1.75; }
.ms-post-body p { margin:0 0 22px; }
.ms-post-body h2 { font-family:'Montserrat',sans-serif; font-size:30px; font-weight:700; line-height:1.3; letter-spacing:-0.6px; color:#0E3C53; margin:46px 0 14px; scroll-margin-top:110px; }
.ms-post-body h3 { font-family:'Montserrat',sans-serif; font-size:22px; font-weight:700; line-height:1.35; color:#0E3C53; margin:34px 0 12px; scroll-margin-top:110px; }
.ms-post-body h4 { font-family:'Montserrat',sans-serif; font-size:19px; font-weight:700; color:#0E3C53; margin:26px 0 10px; }
.ms-post-body ul, .ms-post-body ol { margin:0 0 22px; padding-left:22px; }
.ms-post-body li { margin-bottom:10px; }
.ms-post-body a { color:#0E3C53; text-decoration:underline; text-underline-offset:3px; }
.ms-post-body a:hover { color:#FF5029; }
.ms-post-body blockquote { margin:30px 0; padding:4px 0 4px 24px; border-left:3px solid #FF5029; font-size:20px; line-height:1.6; color:#0E3C53; }
.ms-post-body img { max-width:100%; height:auto; border-radius:12px; }
.ms-post-body strong { color:#0E3C53; }
.ms-post-hero-img img { width:100%; border-radius:16px; box-shadow:0 20px 50px rgba(14,60,83,.18); display:block; }
.ms-toc .elementor-widget-container { border:0 !important; background:transparent !important; }
.ms-toc .elementor-toc__header { padding: 0 0 12px; margin: 0; }
.ms-toc .elementor-toc__header-title { margin: 0; }
.ms-toc .elementor-toc__toggle-button { color: #4A6B7A; cursor: pointer; }
.ms-toc .elementor-toc__toggle-button:hover { color: #FF5029; }
.ms-toc .elementor-toc__toggle-button svg { width: 14px; height: 14px; }
/* the chevron only means something where the box can actually collapse */
@media (min-width: 1025px) { .ms-toc .elementor-toc__toggle-button { display: none; } }
.ms-toc .elementor-toc__body { padding: 0; }
.ms-toc .elementor-toc__list-item { margin-bottom:9px; }
.ms-toc .elementor-toc__list-item-text { text-decoration:none; }
.ms-copy-link .elementor-button { cursor:pointer; transition:background-color .2s ease, color .2s ease; }
.ms-copy-link .elementor-button.is-copied { background-color:#0E3C53 !important; color:#FFFFFF !important; }
.ms-copy-link .elementor-button:focus-visible { outline:3px solid #FF5029; outline-offset:3px; }

/* sticky-header-above-sticky-sidebar: the single-post sidebar is also sticky, and with
   both elements position:fixed and z-index auto the later one in the DOM wins, so the
   sidebar scrolled over the header. Give the header a stacking order above it. */
.elementor-element-hdrbar { z-index: 100; }

/* heading-strong-weight: the block editor wraps heading text in <strong>, whose default
   font-weight:bolder resolves to 900 against our 700 headings. Inherit instead, so a
   heading stays 700 whether or not its text is bolded in the editor. */
.ms-post-body h1 strong, .ms-post-body h2 strong, .ms-post-body h3 strong,
.ms-post-body h4 strong, .ms-post-body h5 strong, .ms-post-body h6 strong,
.ms-post-body h1 b, .ms-post-body h2 b, .ms-post-body h3 b,
.ms-post-body h4 b, .ms-post-body h5 b, .ms-post-body h6 b { font-weight: inherit; }

/* post-content-buttons: block-editor buttons placed inside an article should match the
   site button. Colour is left to whatever the editor set (it arrives as an inline
   style, so only :hover needs !important to override it). */
.ms-post-body .wp-block-button__link {
  font-family: 'Montserrat', sans-serif; font-size: 16px; font-weight: 600;
  letter-spacing: 0.2px; line-height: 1.4; padding: 18px 38px;
  border-radius: 300px; text-decoration: none;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
/* fall back to brand colours when the editor set none */
.ms-post-body .wp-block-button__link:not(.has-background) { background-color: #FF5029; }
.ms-post-body .wp-block-button__link:not(.has-text-color) { color: #FFFFFF; }
.ms-post-body .wp-block-button__link:hover,
.ms-post-body .wp-block-button__link:focus-visible {
  background-color: #0E3C53 !important; color: #FFFFFF !important;
}
.ms-post-body .wp-block-button__link:focus-visible { outline: 3px solid #FF5029; outline-offset: 3px; }
/* secondary variant: the editor's "Outline" style maps to the site's stroked button */
.ms-post-body .wp-block-button.is-style-outline .wp-block-button__link {
  background-color: transparent !important; color: #0E3C53 !important;
  border: 2px solid #0E3C53; padding: 16px 36px;
}
.ms-post-body .wp-block-button.is-style-outline .wp-block-button__link:hover {
  background-color: #0E3C53 !important; color: #FFFFFF !important;
}
@media (max-width: 767px) {
  .ms-post-body .wp-block-button__link { padding: 16px 30px; }
  .ms-post-body .wp-block-button.is-style-outline .wp-block-button__link { padding: 14px 28px; }
}

/* toc-above-content: on tablet and mobile the article runs full width and the
   'On This Article' box moves above it, with the CTA card left below. display:contents
   lifts the sidebar's two cards into the row so they can be ordered independently. */
@media (max-width: 1024px) {
  .ms-post-side { display: contents; }
  .ms-toc-card { order: 1; width: 100%; }
  .elementor-element-spcontent { order: 2; width: 100%; }
  .ms-cta-card { order: 3; width: 100%; }
}

/* contact-form: Elementor stretches the submit button across the field grid; the site
   button is a pill, so size it to its label instead. */
.ms-contact-form .elementor-field-type-submit { justify-content: flex-start; }
.ms-contact-form .elementor-form .elementor-field-group.elementor-field-type-submit .elementor-button { flex: 0 0 auto; width: auto; padding: 18px 40px; letter-spacing: .2px; transition: background-color .25s ease, color .25s ease; }
.ms-contact-form .elementor-field-group > label { display: block; }
.ms-contact-form .elementor-field-textual { min-height: 50px; }
.ms-contact-form textarea.elementor-field-textual { min-height: 130px; }
.ms-contact-form .elementor-field-textual:focus { border-color: #FF5029; outline: 2px solid rgba(255,80,41,.25); outline-offset: 0; }
.ms-contact-form .elementor-message { font-family: 'Roboto', sans-serif; font-size: 16px; }
.ms-contact-form .elementor-message.elementor-message-success { color: #0E3C53; }
@media (max-width: 767px) { .ms-contact-form .elementor-form .elementor-field-group.elementor-field-type-submit .elementor-button { flex: 1 1 100%; width: 100%; } }

/* footer blurb sits directly above the social icon; drop the trailing paragraph
   margin so the spacing is controlled by the icon's own margin alone */
.elementor-element-ftrblurb p:last-child { margin-bottom: 0; }

/* contact card: orange text on hover for the phone and email rows (scoped to > a, since
   the location and reply-time rows render as a span and are not links) */
.elementor-element-ctinfolist .elementor-icon-list-item > a .elementor-icon-list-text { transition: color .2s ease; }
.elementor-element-ctinfolist .elementor-icon-list-item > a:hover .elementor-icon-list-text,
.elementor-element-ctinfolist .elementor-icon-list-item > a:focus-visible .elementor-icon-list-text { color: #FF5029; }/* End custom CSS */