/* Keyboard users must be able to jump past the header on every public page. */
.cms-skip-link{position:absolute;left:-9999px;top:1rem;z-index:2000;padding:.8rem 1rem;border-radius:.6rem;background:var(--site-primary,#3454d1);color:#fff;text-decoration:none}
.cms-skip-link:focus{left:1rem}

@font-face {
  font-family: "Inter";
  src: url("../../assets/fonts/inter-variable.260c81a4759b.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --cms-primary: var(--site-primary, #3454d1);
  --cms-ink: #162033;
  --cms-muted: #667085;
  --cms-surface: #f7f9fc;
}

html,
body.cms-site {
  max-width: 100%;
  overflow-x: clip;
}
body.cms-site a,
body.cms-site a:hover,
body.cms-site a:focus-visible {
  text-decoration: none !important;
}

body {
  color: var(--cms-ink);
  background: #fff;
}

body.cms-site {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.cms-site ::selection {
  background: color-mix(in srgb, var(--site-accent, #c8102e) 22%, white);
  color: var(--site-secondary, #04152f);
}

/* Talon theme header: Meditex-inspired image-only brand and compact nav. */
.cms-el-rh-header-main .cms-section-columns {
  align-items: center;
  flex-wrap: nowrap;
}

.cms-el-rh-logo img {
  width: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: left center;
}

.cms-el-rh-navigation {
  display: flex;
  justify-content: flex-end;
}

.cms-el-rh-navigation .cms-menu-panel > ul {
  justify-content: flex-end;
  gap: .2rem;
}

.cms-el-rh-navigation .cms-menu-panel > ul > li > a:not(.cms-menu-button) {
  color: #212127;
  font-family: "Inter", system-ui, sans-serif;
  font-size: .87rem;
  font-weight: 700;
  letter-spacing: .02em;
  padding: .8rem .72rem;
  text-transform: uppercase;
  white-space: nowrap;
}

.cms-el-rh-navigation .cms-menu-button {
  min-height: 38px;
  padding: .5rem 1rem !important;
  font-size: .8rem;
  line-height: 1.15;
  white-space: nowrap;
}

@media (max-width: 767.98px) {
  .cms-el-rh-navigation .cms-menu-toggle {
    margin-left: auto;
    max-width: 100%;
    padding: .7rem .8rem;
    white-space: nowrap;
  }
}

.cms-el-rh-navigation .cms-menu-panel > ul > li > a:hover,
.cms-el-rh-navigation .cms-menu-panel > ul > li > a:focus {
  color: #c8102e;
}

.cms-el-rh-navigation .cms-menu-button-primary {
  border-color: #c8102e;
  background: #c8102e;
  color: #fff;
}

.cms-el-rh-navigation .cms-menu-button-primary:hover,
.cms-el-rh-navigation .cms-menu-button-primary:focus {
  border-color: #9f0c24;
  background: #9f0c24;
  color: #fff;
}

@media (max-width: 991.98px) and (min-width: 768px) {
  .cms-el-rh-header-top-phone-col {
    width: 30% !important;
    flex-basis: 30% !important;
  }

  .cms-el-rh-header-top-right {
    width: 70% !important;
    flex-basis: 70% !important;
  }
}

.cms-menu-panel-header {
  display: none;
}

@media (max-width: 991.98px) {
  .cms-nav-tablet-offcanvas .cms-menu-panel-header,
  .cms-nav-mobile-offcanvas .cms-menu-panel-header {
    display: flex;
    min-height: 52px;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .9rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid rgba(8, 43, 97, .12);
  }

  .cms-menu-panel-logo {
    display: inline-flex;
    min-width: 0;
    align-items: center;
  }

  .cms-menu-panel-logo img {
    display: block;
    width: auto;
    max-width: 138px;
    max-height: 68px;
    object-fit: contain;
    object-position: left center;
  }

  .cms-menu-panel-header .cms-menu-close {
    position: static;
    flex: 0 0 44px;
    margin-left: auto;
  }
}

.cms-el-rh-header-top,
.cms-el-rh-header-top a,
.cms-el-rh-header-top li,
.cms-el-rh-header-top .cms-text {
  color: #fff !important;
}

/* Full-bleed Talon service hero slider. */
.cms-el-rh-hero-slider .carousel-item,
.cms-el-rh-hero-slider .cms-slider-layout {
  min-height: clamp(360px, 31vw, 440px) !important;
}

.cms-el-rh-hero-slider .carousel-item {
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 45%, rgba(200, 16, 46, .22), transparent 26rem),
    linear-gradient(115deg, #04152f 0%, #082b61 58%, #061b3b 100%);
  transition: opacity .85s ease-in-out;
}

.cms-el-rh-hero-slider .carousel-item::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, rgba(4, 21, 47, .98) 0%, rgba(4, 21, 47, .86) 40%, rgba(4, 21, 47, .15) 72%, rgba(4, 21, 47, .05) 100%);
  pointer-events: none;
}

.cms-el-rh-hero-slider .cms-slider-layout {
  width: min(100% - 60px, 1170px);
  padding: 0;
}

.cms-el-rh-hero-slider .cms-slider-content {
  width: min(53%, 650px);
  padding: 2.4rem 0 2.9rem;
}

.cms-el-rh-hero-slider .cms-slider-content h1,
.cms-el-rh-hero-slider .cms-slider-content h2 {
  max-width: 15ch;
  margin: .5rem 0 .75rem;
  color: #fff !important;
  font-size: clamp(2rem, 3.4vw, 3.15rem);
  font-weight: 800;
  line-height: 1.08;
}

.cms-el-rh-hero-slider .cms-slider-content > .small {
  color: #ffb2bf;
  font-size: .78rem;
  letter-spacing: .14em;
}

.cms-el-rh-hero-slider .cms-slider-excerpt {
  max-width: 56ch;
  margin: .9rem 0 1.25rem;
  color: #e1e9f4;
  font-size: .96rem;
  line-height: 1.6;
}

.cms-el-rh-hero-slider .cms-slider-button {
  border-color: #c8102e;
  border-radius: 999px;
  background: #c8102e;
  color: #fff !important;
}

.cms-el-rh-hero-slider .cms-slider-button span {
  background: rgba(255, 255, 255, .18);
}

.cms-el-rh-hero-slider .cms-slider-media {
  width: 58%;
  height: 100%;
  object-fit: cover;
  object-position: 65% center;
  opacity: .9;
}

.cms-el-rh-hero-slider .carousel-indicators button.active {
  border-color: #ff294a;
  background: #ff294a;
}

/* Progressive scroll reveal; content remains visible if JS is unavailable. */
.cms-scroll-reveal {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition: opacity .55s ease, transform .55s cubic-bezier(.2, .7, .2, 1);
  transition-delay: var(--cms-reveal-delay, 0ms);
  will-change: opacity, transform;
}

.cms-scroll-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

@media (max-width: 767.98px) {
  .cms-el-rh-hero-slider .carousel-item,
  .cms-el-rh-hero-slider .cms-slider-layout {
    min-height: 440px !important;
  }

  .cms-el-rh-hero-slider .cms-slider-layout {
    width: min(100% - 36px, 1170px);
  }

  .cms-el-rh-hero-slider .cms-slider-content {
    width: 100%;
    padding: 2rem 0 11.5rem;
  }

  .cms-el-rh-hero-slider .cms-slider-content h1,
  .cms-el-rh-hero-slider .cms-slider-content h2 {
    font-size: clamp(1.85rem, 8.5vw, 2.55rem);
  }

  .cms-el-rh-hero-slider .cms-slider-media {
    width: 100%;
    height: 48%;
    object-position: 66% center;
  }

  .cms-el-rh-hero-slider .carousel-item::after {
    background: linear-gradient(180deg, rgba(4, 21, 47, .98) 0%, rgba(4, 21, 47, .88) 52%, rgba(4, 21, 47, .18) 78%, rgba(4, 21, 47, .06) 100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cms-scroll-reveal,
  .cms-scroll-reveal.is-visible,
  .cms-el-rh-hero-slider .carousel-item {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.site-navbar {
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(10px);
}

.site-brand-mark {
  width: 2.25rem;
  height: 2.25rem;
  display: inline-grid;
  place-items: center;
  border-radius: .7rem;
  color: #fff;
  font-weight: 800;
  background: var(--cms-primary);
  box-shadow: 0 .35rem 1rem rgba(17, 24, 39, .12);
}

.site-brand {
  color: var(--cms-ink);
  font-weight: 800;
  text-decoration: none;
}

.site-brand:hover { color: var(--cms-ink); }

.cms-placeholder-hero {
  position: relative;
  overflow: hidden;
  padding: 7rem 0 5.5rem;
  background:
    radial-gradient(circle at 85% 5%, rgba(52,84,209,.15), transparent 28rem),
    radial-gradient(circle at 5% 80%, rgba(13,202,240,.10), transparent 24rem),
    linear-gradient(180deg, #fff 0%, #f8faff 100%);
}

.cms-placeholder-badge {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .45rem .75rem;
  border: 1px solid rgba(52,84,209,.18);
  border-radius: 999px;
  color: var(--cms-primary);
  background: rgba(52,84,209,.06);
  font-size: .85rem;
  font-weight: 700;
}

.cms-placeholder-title {
  max-width: 760px;
  font-size: clamp(2.6rem, 7vw, 5.5rem);
  line-height: .98;
  letter-spacing: -.055em;
  font-weight: 800;
}

.cms-placeholder-copy {
  max-width: 660px;
  color: var(--cms-muted);
  font-size: clamp(1.05rem, 2vw, 1.25rem);
}

.btn-cms-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--cms-primary);
  --bs-btn-border-color: var(--cms-primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: color-mix(in srgb, var(--cms-primary) 88%, #000);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--cms-primary) 88%, #000);
  border-radius: .75rem;
  padding: .8rem 1.1rem;
  font-weight: 700;
}

.cms-feature-card {
  height: 100%;
  padding: 1.4rem;
  border: 1px solid #e8ecf3;
  border-radius: 1rem;
  background: rgba(255,255,255,.86);
  box-shadow: 0 1rem 3rem rgba(17,24,39,.05);
}

.cms-feature-icon {
  width: 2.7rem;
  height: 2.7rem;
  display: inline-grid;
  place-items: center;
  margin-bottom: 1rem;
  border-radius: .8rem;
  color: var(--cms-primary);
  background: rgba(52,84,209,.08);
  font-size: 1.2rem;
  font-weight: 800;
}

.cms-setup-panel {
  border: 1px solid #e8ecf3;
  border-radius: 1.25rem;
  background: #fff;
  box-shadow: 0 1.5rem 4rem rgba(17,24,39,.07);
}

.cms-step-number {
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  background: var(--cms-primary);
  font-size: .8rem;
  font-weight: 800;
}

.cms-placeholder-footer {
  color: var(--cms-muted);
  background: var(--cms-surface);
}

@media (max-width: 767.98px) {
  .cms-placeholder-hero { padding: 4.5rem 0 3.5rem; }
}
.cms-query-loop,.cms-image-carousel{display:grid;grid-template-columns:repeat(var(--cms-columns,3),minmax(0,1fr));gap:1rem}.cms-image-carousel img{width:100%;height:100%;object-fit:cover}.cms-container{min-width:0}.cms-slider-content{position:relative;z-index:2}
@keyframes cms-fade{from{opacity:0}to{opacity:1}}@keyframes cms-fade-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes cms-zoom{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
/* A visitor who asked for less motion gets none of it. Durations collapse
   rather than `animation:none`, because a `both`-filled entrance whose animation
   is removed would stay stuck on its opening keyframe at opacity 0 — visibly
   broken. Collapsing the duration lands every element on its final frame
   immediately. This is the site shell only; the admin is unaffected. */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body.cms-site *,body.cms-site *::before,body.cms-site *::after{animation-duration:1ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}
}
.cms-navigation ul{display:flex;align-items:center;gap:1.25rem;margin:0;padding:0;list-style:none}.cms-navigation li{position:relative}.cms-navigation a{color:inherit;text-decoration:none}.cms-navigation li>ul{display:none;position:absolute;z-index:20;top:100%;left:0;min-width:190px;padding:.5rem;background:#fff;box-shadow:0 .5rem 1.5rem rgba(0,0,0,.12);flex-direction:column;align-items:stretch;gap:0}.cms-navigation li:hover>ul,.cms-navigation li:focus-within>ul{display:flex}.cms-navigation-vertical>ul{flex-direction:column;align-items:stretch}.cms-navigation-vertical li>ul{left:100%;top:0}
.cms-menu-toggle,.cms-menu-close,.cms-menu-backdrop{display:none}.cms-menu-panel>ul>li{order:var(--cms-menu-order-d)}.cms-nav-desktop-vertical .cms-menu-panel>ul{flex-direction:column;align-items:stretch}.cms-submenu-toggle{display:none;border:0;background:transparent;color:inherit}.cms-menu-button{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1rem;border-radius:.45rem;font-weight:700}.cms-menu-button-primary{background:var(--cms-primary,#3454d1);color:#fff!important}.cms-menu-button-secondary{background:var(--cms-secondary,#1f2937);color:#fff!important}.cms-menu-button-outline{border:1px solid currentColor}.cms-menu-hide-desktop{display:none!important}
@media(max-width:991.98px) and (min-width:768px){.cms-menu-hide-desktop{display:list-item!important}.cms-menu-hide-tablet{display:none!important}.cms-menu-panel>ul>li{order:var(--cms-menu-order-t)}.cms-nav-tablet-vertical .cms-menu-panel>ul{flex-direction:column;align-items:stretch}.cms-nav-tablet-offcanvas .cms-menu-toggle{display:inline-flex}.cms-nav-tablet-offcanvas .cms-menu-panel{position:fixed;z-index:1055;top:0;bottom:0;width:min(88vw,380px);padding:calc(env(safe-area-inset-top, 0px) + .875rem) 1.25rem calc(env(safe-area-inset-bottom, 0px) + 1.25rem);background:var(--cms-menu-panel-bg,#fff);transition:transform .22s ease;overflow:auto}.cms-nav-tablet-offcanvas.cms-nav-panel-left .cms-menu-panel{left:0;transform:translateX(-105%)}.cms-nav-tablet-offcanvas.cms-nav-panel-right .cms-menu-panel{right:0;transform:translateX(105%)}.cms-nav-tablet-offcanvas.is-open .cms-menu-panel{transform:none}.cms-nav-tablet-offcanvas .cms-menu-panel>ul{flex-direction:column;align-items:stretch}.cms-nav-tablet-offcanvas .cms-menu-close{display:grid}.cms-nav-tablet-offcanvas.is-open .cms-menu-backdrop{display:block}}
@media(max-width:767.98px){.cms-menu-hide-desktop{display:list-item!important}.cms-menu-hide-mobile{display:none!important}.cms-menu-panel>ul>li{order:var(--cms-menu-order-m)}.cms-nav-mobile-vertical .cms-menu-panel>ul{flex-direction:column;align-items:stretch}.cms-nav-mobile-offcanvas .cms-menu-toggle{display:inline-flex}.cms-nav-mobile-offcanvas .cms-menu-panel{position:fixed;z-index:1055;top:0;bottom:0;width:min(88vw,360px);padding:calc(env(safe-area-inset-top, 0px) + .875rem) 1.25rem calc(env(safe-area-inset-bottom, 0px) + 1.25rem);background:var(--cms-menu-panel-bg,#fff);transition:transform .22s ease;overflow:auto}.cms-nav-mobile-offcanvas.cms-nav-panel-left .cms-menu-panel{left:0;transform:translateX(-105%)}.cms-nav-mobile-offcanvas.cms-nav-panel-right .cms-menu-panel{right:0;transform:translateX(105%)}.cms-nav-mobile-offcanvas.is-open .cms-menu-panel{transform:none}.cms-nav-mobile-offcanvas .cms-menu-panel>ul{flex-direction:column;align-items:stretch}.cms-nav-mobile-offcanvas .cms-menu-close{display:grid}.cms-nav-mobile-offcanvas.is-open .cms-menu-backdrop{display:block}}
.cms-menu-toggle{align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;padding:0;border:0;border-radius:12px;background:var(--cms-menu-toggle-bg,var(--site-primary,#3454d1));color:var(--cms-menu-toggle-color,#fff);transition:background .15s ease,color .15s ease,box-shadow .15s ease,transform .1s ease}.cms-menu-dots{display:grid;grid-template-columns:repeat(3,4px);grid-auto-rows:4px;gap:3px}.cms-menu-dot{display:block;width:4px;height:4px;border-radius:50%;background:currentColor}.cms-menu-toggle:hover{background:var(--site-secondary,#1f2937);color:#fff}.cms-menu-toggle:focus-visible{outline:3px solid var(--site-secondary,#1f2937);outline-offset:2px}.cms-menu-toggle:active{transform:scale(.96)}.cms-menu-toggle[aria-expanded="true"]{background:var(--site-secondary,#1f2937);color:#fff}.cms-menu-close{position:absolute;right:1rem;top:1rem;width:44px;height:44px;flex:0 0 44px;place-items:center;border:0;border-radius:50%;background:rgba(0,0,0,.07)}.cms-menu-backdrop{position:fixed;z-index:1050;inset:0;background:rgba(15,23,42,.52)}.cms-navigation.is-open .cms-submenu-toggle{display:inline-grid}.cms-navigation li.is-submenu-open>ul{display:flex}
.cms-form-grid{display:grid;grid-template-columns:1fr;gap:1rem}.cms-form-columns-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cms-form-field{display:flex;flex-direction:column;gap:.35rem}.cms-form-field label{font-weight:600}.cms-form-field input:not([type=checkbox]):not([type=radio]),.cms-form-field select,.cms-form-field textarea{width:100%;min-height:44px;padding:.65rem .8rem;border:1px solid #cbd5e1;background:#fff;color:inherit}.cms-form-field input[type=checkbox],.cms-form-field input[type=radio],.cms-form-choice input[type=checkbox],.cms-form-choice input[type=radio]{appearance:auto!important;-webkit-appearance:auto!important;flex:0 0 auto;width:1.15rem!important;height:1.15rem!important;min-height:0!important;margin:.2rem 0 0!important;padding:0!important;border:0!important;background:none!important;accent-color:var(--site-primary,currentColor);cursor:pointer}.cms-form-field textarea{min-height:130px}.cms-form-help{font-size:.82rem;line-height:1.4;opacity:.75}
/* The browser's default file control ignores the field styling around it and
   reads as a raw form element. Styling the input and its button keeps an upload
   looking like the rest of the form. */
.cms-form-field input[type=file]{display:flex;align-items:center;gap:.6rem;cursor:pointer;color:inherit}
.cms-form-field input[type=file]::file-selector-button{margin:0 .1rem 0 0;padding:.35rem .85rem;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:.86rem;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease}
/* `background:currentColor` alongside `color:#fff` resolves currentColor to the
   new white, so the button turned white on white. A neutral tint works on any
   theme without needing to know the form's colours. */
.cms-form-field input[type=file]:hover::file-selector-button,.cms-form-field input[type=file]:focus-visible::file-selector-button{background:rgba(0,0,0,.07);color:inherit}
.cms-form-field input[type=file]::-webkit-file-upload-button{margin:0 .1rem 0 0;padding:.35rem .85rem;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:.86rem;font-weight:600;cursor:pointer}
.cms-form-grid .cms-form-submit{grid-column:1/-1;justify-self:end;width:auto}
@media(max-width:575.98px){.cms-form-grid .cms-form-submit{justify-self:stretch;width:100%}}
/* A radio or checkbox group given a full row should use that row: its options
   flow into as many columns as fit rather than stacking in a single file beside
   empty space. The legend always spans the row. */
.cms-form-field-radio fieldset,.cms-form-field-checkbox fieldset{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.2rem 1.25rem;border:0;margin:0;padding:0;min-width:0}
.cms-form-field-radio legend,.cms-form-field-checkbox legend{grid-column:1/-1;float:none;width:auto;padding:0}.cms-form-field input[type=file]{padding:.5rem .6rem;font-size:.9rem;background:transparent;cursor:pointer}.cms-form-field input[type=file]::file-selector-button{margin-right:.7rem;padding:.4rem .8rem;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:.85rem;cursor:pointer}.cms-form-field-textarea,.cms-form-submit,.cms-form-success{grid-column:1/-1}.cms-form-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.cms-form-success{padding:1rem;border:1px solid color-mix(in srgb,var(--site-primary) 35%,transparent);border-radius:var(--site-form-radius);background:color-mix(in srgb,var(--site-primary) 8%,white)}.cms-form-custom-layout{grid-template-columns:repeat(12,minmax(0,1fr))}.cms-form-custom-layout>.cms-form-field{grid-column:span 12}.cms-form-custom-layout>.cms-form-w-three-quarters{grid-column:span 9}.cms-form-custom-layout>.cms-form-w-two-thirds{grid-column:span 8}.cms-form-custom-layout>.cms-form-w-half{grid-column:span 6}.cms-form-custom-layout>.cms-form-w-third{grid-column:span 4}.cms-form-custom-layout>.cms-form-w-quarter{grid-column:span 3}@media(max-width:767.98px){.cms-form-columns-2{grid-template-columns:1fr}.cms-form-custom-layout>.cms-form-field{grid-column:span 12}}
.cms-editor-actions{display:flex;align-items:center;gap:.5rem}.cms-editor-actions-floating{position:fixed;right:18px;bottom:18px;z-index:1050;padding:.4rem;border:1px solid rgba(0,0,0,.12);border-radius:.55rem;background:rgba(255,255,255,.94);box-shadow:0 .5rem 1.5rem rgba(0,0,0,.16);backdrop-filter:blur(8px)}
.cms-section-columns{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:stretch;min-width:0}.cms-section-columns>.cms-column{min-width:0}.cms-section-columns>.cms-column-auto{flex:1 1 0}.cms-column{min-width:0;text-align:left}
.cms-site-header section:has(>.cms-section-columns.container):has(.cms-site-logo):has(.cms-navigation){padding-left:0!important;padding-right:0!important}.cms-site-header .cms-section-columns.container:has(.cms-site-logo):has(.cms-navigation){width:100%;margin-left:auto;margin-right:auto}
@media(max-width:991.98px){.cms-section-columns>.cms-column:not(.cms-column-tablet-custom){width:50%;flex:0 0 50%}.cms-section-columns.cms-columns-1>.cms-column:not(.cms-column-tablet-custom){width:100%;flex-basis:100%}/* A three-column row has no good two-up form: it becomes 2+1, with a stranded   card. Keep three across on tablet, which is also what Bootstrap's col-md-4   does on the site this theme reproduces. Below 768px everything stacks. */.cms-section-columns.cms-columns-3>.cms-column.cms-column-auto:not(.cms-column-tablet-custom){width:auto;flex:1 1 0}}
@media(max-width:767.98px){.cms-section-columns>.cms-column:not(.cms-column-mobile-custom){width:100%!important;flex:0 0 100%!important}}
@media(max-width:767.98px){.cms-site-header .cms-section-columns:has(.cms-site-logo):has(.cms-navigation){display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important}.cms-site-header .cms-section-columns:has(.cms-site-logo):has(.cms-navigation)>:is(.cms-column,.cms-editor-node-column):has(.cms-site-logo){width:auto!important;max-width:none!important;flex:1 1 0!important;min-width:0;padding-left:0!important}.cms-site-header .cms-section-columns:has(.cms-site-logo):has(.cms-navigation)>:is(.cms-column,.cms-editor-node-column):has(.cms-navigation){width:auto!important;max-width:none!important;flex:0 0 auto!important;padding-right:0!important}.cms-site-header .cms-column:has(.cms-site-logo):has(.cms-navigation){display:flex!important;flex-direction:row!important;align-items:center!important;flex-wrap:nowrap!important}.cms-site-header .cms-navigation{flex:0 0 auto;margin-left:auto}.cms-site-header .cms-site-logo,.cms-site-header .cms-site-logo a{display:block;min-width:0;max-width:100%}.cms-site-header .cms-site-logo img{max-width:100%;height:auto}}
.cms-menu-open{overflow:hidden}.cms-menu-backdrop{cursor:pointer}.cms-navigation.is-open .cms-menu-backdrop{touch-action:none}
.cms-form-choice{display:flex!important;align-items:flex-start;gap:.55rem;font-weight:400;cursor:pointer;line-height:1.5;position:static!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important;overflow:visible!important;clip-path:none!important;white-space:normal!important;border:0}.cms-form-field fieldset{border:0;margin:0;padding:0;min-width:0}.cms-form-field legend{padding:0;margin-bottom:.4rem;font-weight:600;font-size:1em}.cms-form-field fieldset .cms-form-choice+.cms-form-choice{margin-top:.35rem}.cms-form-field fieldset{border:0;padding:0;margin:0}.cms-form-field legend{font-weight:600;margin-bottom:.4rem}

/* Practical builder widgets: neutral by default and fully themeable through the
   universal Style and Advanced controls. */
.cms-widget-placeholder{min-height:120px;display:grid;place-items:center;align-content:center;gap:.45rem;border:1px dashed #cbd1da;background:#f7f8fa;color:#747c88;text-align:center}.cms-widget-placeholder i{font-size:1.6rem}
.cms-gallery{display:grid;grid-template-columns:repeat(var(--cms-columns,3),minmax(0,1fr));gap:1rem}.cms-gallery figure,.cms-featured-image{margin:0;overflow:hidden}.cms-gallery img,.cms-featured-image img{display:block;width:100%;height:100%;object-fit:cover}.cms-ratio-1x1 figure,.cms-featured-image.cms-ratio-1x1{aspect-ratio:1}.cms-ratio-4x3 figure,.cms-featured-image.cms-ratio-4x3{aspect-ratio:4/3}.cms-ratio-16x9 figure,.cms-featured-image.cms-ratio-16x9{aspect-ratio:16/9}
.cms-icon{display:flex;font-size:var(--cms-icon-size,40px);line-height:1}.cms-icon.cms-align-center{justify-content:center}.cms-icon.cms-align-end{justify-content:flex-end}.cms-icon a{color:inherit;text-decoration:none}.cms-icon-list{display:grid;gap:.65rem;margin:0;padding:0;list-style:none}.cms-icon-list li{display:flex;align-items:var(--cms-icon-list-align,flex-start);gap:var(--cms-icon-list-gap,.625rem);min-width:0;line-height:var(--cms-icon-list-line-height,1.45)}.cms-icon-list li>i{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:var(--cms-icon-list-icon-size,1.125rem);height:calc(var(--cms-icon-list-line-height,1.45) * 1em);margin:0;color:var(--cms-icon-list-icon-color,var(--cms-primary));font-size:inherit;line-height:1}.cms-icon-list li>i::before{font-size:var(--cms-icon-list-icon-size,1.125rem);line-height:1}.cms-icon-list li>a,.cms-icon-list li>span{min-width:0;color:inherit!important;line-height:inherit}.cms-icon-list li>a{text-decoration:none;transition:color .18s ease}.cms-icon-list li>a:hover,.cms-icon-list li>a:focus-visible{color:inherit!important;text-decoration:none}
.cms-cta{display:grid;gap:2rem;align-items:center;padding:clamp(1.5rem,4vw,3.5rem);border-radius:1rem;background:var(--cms-surface)}.cms-cta-split{grid-template-columns:minmax(0,1.25fr) minmax(220px,.75fr)}.cms-cta img{display:block;width:100%;max-height:420px;object-fit:cover;border-radius:.75rem}.cms-cta-eyebrow{display:block;margin-bottom:.55rem;color:var(--cms-primary);font-size:.78rem;font-weight:800;letter-spacing:.08em}.cms-cta h2{margin:0 0 .7rem}.cms-cta p{max-width:62ch;color:var(--cms-muted)}
.cms-testimonial{margin:0;padding:1.5rem;border:1px solid #e5e9ef;border-radius:1rem;background:#fff}.cms-testimonial blockquote{margin:.7rem 0 1.1rem;font-size:1.12rem;line-height:1.65}.cms-testimonial figcaption{display:flex;align-items:center;gap:.7rem}.cms-testimonial figcaption img{width:46px;height:46px;border-radius:50%;object-fit:cover}.cms-testimonial figcaption strong,.cms-testimonial figcaption small{display:block}.cms-testimonial figcaption small{color:var(--cms-muted)}.cms-rating{display:flex;gap:.12rem;color:#f2a900}
.cms-counter{text-align:center}.cms-counter strong,.cms-counter span{display:block}.cms-counter strong{font-size:clamp(2rem,5vw,4rem);line-height:1;font-weight:800}.cms-counter span{margin-top:.55rem;color:var(--cms-muted)}.cms-counter-set{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1rem}.cms-counter-item{min-width:0;padding:1.25rem;border-radius:1rem;background:var(--cms-surface,#fff)}.cms-progress-label{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.45rem}.cms-progress .progress{height:.7rem}.cms-progress .progress-bar{background:var(--cms-primary)}
.cms-social-links{display:flex;flex-wrap:wrap;gap:.55rem}.cms-social-links a{min-width:2.5rem;height:2.5rem;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:0 .7rem;border:1px solid currentColor;border-radius:999px;color:inherit;text-decoration:none}.cms-social-links a:hover{color:var(--cms-primary)}
.cms-map iframe{display:block;width:100%;height:var(--cms-map-height,360px);border:0}.cms-site-logo img{display:block;width:auto;max-height:var(--cms-logo-height,56px)}.cms-site-logo a,.cms-site-title a{color:inherit;text-decoration:none}.cms-site-title h1,.cms-site-title h2,.cms-site-title h3,.cms-site-title h4,.cms-site-title h5,.cms-site-title h6,.cms-site-title p{margin:0}.cms-site-title p{color:var(--cms-muted);font-size:.9em}.cms-post-excerpt{color:var(--cms-muted)}
@media(max-width:767.98px){.cms-cta-split{grid-template-columns:1fr}}
.cms-image{width:100%;margin:0;text-align:left}.cms-image>a{display:block;width:100%}.cms-image img{display:block;width:100%;height:auto;margin:0}.cms-image-size-thumbnail{width:min(100%,150px)}.cms-image-size-medium{width:min(100%,300px)}.cms-image-size-large{width:min(100%,1024px)}.cms-image-size-full{width:100%;max-width:none}.cms-image figcaption{margin-top:.5rem;color:var(--bs-secondary-color,#6c757d);font-size:.875em;text-align:left}
.cms-video-trigger{display:grid;min-height:110px;place-items:center}.cms-video-ratio-16x9{aspect-ratio:16/9}.cms-video-ratio-4x3{aspect-ratio:4/3}.cms-video-ratio-1x1{aspect-ratio:1}.cms-video-trigger a{display:grid;width:58px;height:58px;place-items:center;border:5px solid rgba(255,255,255,.82);border-radius:50%;background:#ff6411;color:#fff;box-shadow:0 .4rem 1.4rem rgba(0,0,0,.2);font-size:1.55rem;text-decoration:none;transition:transform .2s ease}.cms-video-trigger a:hover{color:#fff;transform:scale(1.08)}

/* Native equivalents for imported Elementor presentation widgets. */
.cms-template-preview-label{position:fixed;z-index:2000;right:16px;top:16px;padding:.55rem .8rem;border-radius:.35rem;background:#20252b;color:#fff;box-shadow:0 .35rem 1rem rgba(0,0,0,.2);font-size:.8rem;opacity:.86}.elementor-imported-container{box-sizing:border-box;min-width:0}.cms-icon-box{min-width:0}.cms-icon-box-icon{display:inline-grid;flex:0 0 auto;place-items:center;line-height:1}.cms-icon-box-icon i{font-size:1em}.cms-icon-box-content{min-width:0}.cms-icon-box-title{margin:0;font:inherit;font-weight:700}.cms-icon-box-description{margin:0}.cms-icon-box-description>:last-child{margin-bottom:0}.cms-icon-box-link{display:inline-flex;margin-top:1rem;color:var(--site-primary);font-size:.74rem;font-weight:800;letter-spacing:.04em;text-decoration:none}.cms-icon-box-link span{font-size:1.15em;margin-left:.2rem}
.cms-slider{overflow:hidden}.cms-slider .carousel-item{position:relative;min-height:640px;background:#c88760}.cms-slider-layout{position:relative;z-index:2;min-height:640px;display:flex;align-items:center}.cms-slider-content{width:min(48%,650px);padding:5rem 0;color:#fff}.cms-slider-content h1,.cms-slider-content h2{margin:0 0 1rem;font-size:clamp(2rem,4vw,3.4rem);font-weight:800;line-height:1.08}.cms-slider-excerpt{max-width:58ch;margin:1.35rem 0;color:#1f2937;font-size:1rem;line-height:1.7}.cms-slider-button{display:inline-flex;align-items:center;gap:.7rem;padding:.72rem 1.15rem;border:2px solid #fff;border-radius:999px;color:#fff;font-size:.8rem;font-weight:800;text-decoration:none}.cms-slider-button span{display:grid;width:1.75rem;height:1.75rem;place-items:center;border-radius:50%;background:#ff6411}.cms-slider-media{position:absolute;z-index:1;right:0;bottom:0;width:58%;height:100%;object-fit:contain;object-position:right bottom;pointer-events:none}.cms-prime-slider .carousel-indicators{right:auto;left:50%;bottom:1.45rem;gap:.35rem;margin:0;transform:translateX(-50%)}.cms-prime-slider .carousel-indicators button{width:9px;height:9px;margin:0;border:1px solid #fff;border-radius:50%;background:transparent}.cms-prime-slider .carousel-indicators button.active{background:#fff}.cms-prime-slider .carousel-control-prev,.cms-prime-slider .carousel-control-next{top:50%;bottom:auto;width:44px;height:44px;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(4,21,47,.22);transform:translateY(-50%)}.cms-prime-slider .carousel-control-prev{left:1.25rem;right:auto}.cms-prime-slider .carousel-control-next{right:1.25rem;left:auto}
.cms-image-carousel{position:relative;display:block!important;overflow:hidden}.cms-carousel-track{display:flex;gap:var(--cms-carousel-gap,0);transform:translate3d(var(--cms-carousel-offset,0),0,0);transition:transform .55s ease}.cms-carousel-track figure{flex:0 0 calc(100% / var(--cms-columns,4));height:280px;margin:0;overflow:hidden}.cms-carousel-track img{display:block;width:100%;height:100%;object-fit:cover}.cms-carousel-prev,.cms-carousel-next{position:absolute;z-index:2;top:50%;width:42px;height:42px;transform:translateY(-50%);border:0;border-radius:50%;background:rgba(255,255,255,.9);box-shadow:0 .25rem 1rem rgba(0,0,0,.2);font-size:1.5rem}.cms-carousel-prev{left:14px}.cms-carousel-next{right:14px}
.cms-marquee{width:100%;overflow:hidden;background:#ff6411;color:#fff}.cms-marquee-track{width:max-content;display:flex;align-items:center;gap:1.2rem;padding:.9rem 0;animation:cms-marquee var(--cms-marquee-speed,35s) linear infinite}.cms-marquee-track span{font-size:1.25rem;font-weight:700;white-space:nowrap}.cms-marquee-track b{font-size:1.2rem}@keyframes cms-marquee{to{transform:translateX(-50%)}}
.cms-testimonials{display:grid;grid-template-columns:repeat(var(--cms-columns,3),minmax(0,1fr));gap:1.5rem}.cms-testimonials .cms-testimonial{text-align:center;border-color:#e6e6e6;border-radius:.35rem;box-shadow:0 .4rem 1.4rem rgba(0,0,0,.04)}.cms-testimonial-quote{height:24px;color:#ff6411;font:700 2.6rem/1 Georgia,serif}.cms-testimonials .cms-testimonial blockquote{font-size:.92rem}.cms-testimonials .cms-rating{justify-content:center}.cms-testimonials .cms-testimonial figcaption{justify-content:center;margin-top:1rem}
.city-service-card,.city-blog-card{height:100%;overflow:hidden;border:1px solid #e4e6e8;border-radius:.4rem;background:#fff;box-shadow:0 .35rem 1.25rem rgba(20,27,38,.04)}.city-service-card>.cms-featured-image,.city-blog-card>.cms-featured-image{width:100%;height:180px}.city-service-card>.cms-featured-image img,.city-blog-card>.cms-featured-image img{object-fit:cover}.city-service-card>.cms-icon{width:42px;height:42px;display:grid;place-items:center;margin:1.4rem auto .4rem;border-radius:50%;background:#ff6411;color:#fff;font-size:1.2rem}.city-service-card>.cms-heading,.city-service-card>.cms-dynamic-field,.city-service-card>h3{padding:0 1.25rem;text-align:center}.city-service-card>.cms-text,.city-service-card>p{padding:0 1.25rem;color:#626a73;font-size:.88rem;line-height:1.65;text-align:center}.city-service-card>.btn,.city-service-card>.cms-button{margin:0 auto 1.5rem}.city-blog-card{box-shadow:none;border:0}.city-blog-card>.cms-featured-image{height:245px}.city-blog-card>*:not(.cms-featured-image){margin-left:0;margin-right:0}
.city-service-card>.btn,.city-blog-card>.btn{align-self:center!important;width:auto!important;margin-top:auto!important;border:0!important;background:transparent!important;color:#ff6411!important;font-size:.7rem!important;font-weight:800!important}.city-blog-card>.cms-icon{display:none}.city-blog-card>h3{text-align:left}.city-blog-card>.cms-text{text-align:left;color:#626a73}.cms-el-el-e295a1>.cms-container>.btn{align-self:center;width:auto;border-color:#ff6411;background:#ff6411;color:#fff;border-radius:999px;padding:.7rem 1.25rem}
.cms-el-el-379df91f{max-width:1180px;margin-inline:auto}.cms-el-el-ecadbf0,.cms-el-el-5d859a0b{background-color:#f5f5f5!important}.cms-el-el-ecadbf0>*:not(style),.cms-el-el-3d2f9db6>*:not(style),.cms-el-el-5d859a0b>*:not(style),.cms-el-el-e295a1>*:not(style){width:min(100%,1180px);margin-inline:auto}.cms-el-el-2b0aebc2{padding-inline:0!important}.cms-el-el-2b0aebc2 .cms-carousel-track figure{height:300px}.cms-el-el-3d2f9db6 .cms-icon-box{text-align:center}.cms-el-el-3d2f9db6 .cms-icon-box>i{color:#ff6411}.cms-el-el-3d2f9db6{background-color:#fff!important}.cms-el-el-5d859a0b,.cms-el-el-e295a1{padding-top:5rem!important;padding-bottom:5rem!important}
@media(max-width:991.98px){.cms-slider .carousel-item,.cms-slider-layout{min-height:540px}.cms-slider-content{width:55%;padding-left:1.5rem}.cms-slider-media{width:58%}.cms-testimonials{grid-template-columns:1fr}.cms-carousel-track figure{flex-basis:calc(100% / 3)}}
@media(max-width:767.98px){.cms-template-preview-label{display:none}.elementor-imported-container{max-width:100%}.cms-slider .carousel-item,.cms-slider-layout{min-height:620px}.cms-slider-layout{align-items:flex-start}.cms-slider-content{width:100%;padding:3rem 1.25rem 17rem}.cms-slider-content h1,.cms-slider-content h2{font-size:1.75rem}.cms-slider-excerpt{font-size:.9rem}.cms-slider-media{width:100%;height:52%;object-position:center bottom}.cms-prime-slider .carousel-control-prev,.cms-prime-slider .carousel-control-next{top:55%;bottom:auto;width:38px;height:38px}.cms-prime-slider .carousel-control-prev{left:.7rem}.cms-prime-slider .carousel-control-next{right:.7rem}.cms-testimonials{grid-template-columns:1fr}.cms-carousel-track figure{flex-basis:100%;height:320px}.cms-el-el-379df91f{padding-inline:1rem!important}.cms-el-el-5d859a0b,.cms-el-el-e295a1{padding-top:3.5rem!important;padding-bottom:3.5rem!important}}
.cms-slider-content h2{color:#fff!important}
.city-service-link{margin:0 0 .45rem!important;font-size:.86rem!important;font-weight:500!important}.city-service-link a{color:inherit;text-decoration:none}.city-service-link a:before{content:'›';margin-right:.45rem;color:#ff6411}
.cms-el-el-6595e492{padding-block:0!important;background:#ff6411!important}.city-service-card>h3,.city-blog-card>h3{color:#30343b!important}.cms-site-header .cms-el-el-33399759 .btn{border-color:#ff6411!important;background:#ff6411!important;color:#fff!important}.cms-site-footer .cms-el-el-44a0f220{background:#ff6411!important}.cms-site-footer .cms-el-el-643e9b1e{background:#f3f3f3!important;color:#374151}.cms-site-footer .cms-el-el-805fa45,.cms-site-footer .cms-el-el-3645763e{width:min(100%,1180px);margin-inline:auto}.cms-site-footer .cms-el-el-643e9b1e h2,.cms-site-footer .cms-el-el-643e9b1e .cms-icon-list,.cms-site-footer .cms-el-el-643e9b1e .cms-icon-list a{color:#374151!important}.cms-site-footer .cms-social-links a{color:#ff6411!important}
.cms-prime-slider .carousel-control-prev,.cms-prime-slider .carousel-control-next,.cms-prime-slider .carousel-indicators{z-index:5;pointer-events:auto}
.cms-ratio-4x5 figure,.cms-featured-image.cms-ratio-4x5{aspect-ratio:4/5}.cms-ratio-9x16 figure,.cms-featured-image.cms-ratio-9x16{aspect-ratio:9/16}

/* Slider widget v2: polished defaults for static and query-driven hero content. */
.cms-slider{--cms-slider-radius:clamp(0px,1vw,18px);position:relative;overflow:hidden;background:#071b33;color:#fff;isolation:isolate}
.cms-slider .carousel-inner,.cms-slider .carousel-item{height:100%}.cms-slider .carousel-inner{background:#071b33}
.cms-slider.carousel-fade .carousel-item{min-height:0!important;background:#071b33;backface-visibility:hidden;opacity:0;transform:none!important;transition:opacity var(--cms-slider-transition,1.2s) cubic-bezier(.4,0,.2,1)!important;will-change:opacity}
.cms-slider.carousel-fade .carousel-item.active,.cms-slider.carousel-fade .carousel-item-next.carousel-item-start,.cms-slider.carousel-fade .carousel-item-prev.carousel-item-end{opacity:1}
.cms-slider.carousel-fade .active.carousel-item-start,.cms-slider.carousel-fade .active.carousel-item-end{opacity:0;transition:opacity var(--cms-slider-transition,1.2s) cubic-bezier(.4,0,.2,1)!important}
.cms-slider--compact,.cms-slider--compact .cms-slider-layout{min-height:clamp(340px,38vw,440px)!important}
.cms-slider--standard,.cms-slider--standard .cms-slider-layout{min-height:clamp(470px,56vw,650px)!important}
.cms-slider--tall,.cms-slider--tall .cms-slider-layout{min-height:clamp(560px,68vw,780px)!important}
.cms-slider-media{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;z-index:0!important;pointer-events:none;transform:scale(1.015)}
.cms-slider-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,color-mix(in srgb,var(--cms-slider-overlay-color,#04152f) var(--cms-slider-overlay-opacity,42%),transparent) 0%,color-mix(in srgb,var(--cms-slider-overlay-color,#04152f) var(--cms-slider-overlay-mid,35.28%),transparent) 44%,color-mix(in srgb,var(--cms-slider-overlay-color,#04152f) var(--cms-slider-overlay-end,7.56%),transparent) 100%)}
.cms-slider-layout{position:relative;z-index:2!important;display:flex;align-items:center;padding-top:clamp(2.25rem,5vw,4.5rem);padding-bottom:clamp(3.4rem,6vw,5rem)}
.cms-slider--compact .cms-slider-layout{padding-top:clamp(1.75rem,3vw,2.5rem);padding-bottom:clamp(2.8rem,4vw,3.5rem)}
.cms-slider-content{width:min(100%,720px)!important;padding:0!important;color:#fff!important;text-shadow:0 1px 16px rgba(0,0,0,.12)}
.cms-slider--content-narrow .cms-slider-content{max-width:520px}.cms-slider--content-medium .cms-slider-content{max-width:650px}.cms-slider--content-wide .cms-slider-content{max-width:800px}
.cms-slider--center .cms-slider-layout{justify-content:center;text-align:center}.cms-slider--center .cms-slider-content{margin-inline:auto}.cms-slider--center .cms-slider-excerpt{margin-inline:auto}.cms-slider--center .cms-slider-button{margin-inline:auto}
.cms-slider-icon{display:inline-grid;place-items:center;width:2.65rem;height:2.65rem;margin-bottom:.85rem;border:1px solid rgba(255,255,255,.32);border-radius:12px;background:rgba(255,255,255,.12);backdrop-filter:blur(7px);font-size:1.35rem}
.cms-slider-eyebrow{margin-bottom:.65rem;font-size:.76rem;font-weight:800;line-height:1.2;letter-spacing:.13em;color:rgba(255,255,255,.84)}
.cms-slider-content h1,.cms-slider-content h2{max-width:15ch;margin:0 0 .8rem!important;color:#fff!important;font-size:clamp(1.95rem,3.5vw,3.15rem)!important;font-weight:800;letter-spacing:-.03em;line-height:1.06}
.cms-slider--center .cms-slider-content h1,.cms-slider--center .cms-slider-content h2{margin-inline:auto!important}
.cms-slider-excerpt{max-width:58ch;margin:.8rem 0 1.25rem!important;color:rgba(255,255,255,.88)!important;font-size:clamp(.94rem,1.4vw,1.08rem)!important;line-height:1.62!important}
.cms-slider-button{display:inline-flex!important;align-items:center;gap:.65rem;min-height:44px;padding:.72rem 1rem!important;border:1px solid var(--site-accent,#c8102e)!important;border-radius:999px!important;background:var(--site-accent,#c8102e)!important;color:#fff!important;font-size:.82rem!important;font-weight:800!important;line-height:1;text-decoration:none!important;text-transform:none!important;box-shadow:0 9px 28px rgba(0,0,0,.18);transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}
.cms-slider-button:hover,.cms-slider-button:focus{transform:translateY(-1px);background:var(--site-accent,#c8102e)!important;color:#fff!important;filter:brightness(.9);box-shadow:0 12px 32px rgba(0,0,0,.24)}
.cms-slider-button span{display:grid!important;width:1.65rem!important;height:1.65rem!important;place-items:center;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.16)!important;color:#fff!important;border-radius:50%}
.cms-slider-dots{right:auto!important;left:50%!important;bottom:1.05rem!important;gap:.42rem;margin:0!important;transform:translateX(-50%)}
.cms-slider-dots button{box-sizing:border-box!important;width:8px!important;height:8px!important;margin:0!important;border:1px solid rgba(255,255,255,.8)!important;border-radius:50%!important;background:transparent!important;opacity:.75;transition:width .22s ease,background .22s ease,opacity .22s ease}
.cms-slider-dots button.active{width:22px!important;border-radius:999px!important;background:#fff!important;opacity:1}
.cms-slider-empty{display:grid;min-height:380px;place-items:center;color:rgba(255,255,255,.8)}
.cms-slider-caption-waiting .cms-slider-content>*{opacity:0}
.cms-slider-caption-enter .cms-slider-eyebrow,.cms-slider-caption-enter .cms-slider-icon,.cms-slider-caption-enter .cms-slider-content h1,.cms-slider-caption-enter .cms-slider-content h2,.cms-slider-caption-enter .cms-slider-excerpt,.cms-slider-caption-enter .cms-slider-button{animation:cmsSliderTextUp .58s cubic-bezier(.22,.61,.36,1) var(--cms-slider-text-delay,280ms) both}
.cms-slider-caption-enter .cms-slider-content h1,.cms-slider-caption-enter .cms-slider-content h2{animation-delay:calc(var(--cms-slider-text-delay,280ms) + 40ms)}.cms-slider-caption-enter .cms-slider-excerpt{animation-delay:calc(var(--cms-slider-text-delay,280ms) + 90ms)}.cms-slider-caption-enter .cms-slider-button{animation-delay:calc(var(--cms-slider-text-delay,280ms) + 140ms)}
.cms-slider-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}
.cms-slider--center .cms-slider-actions{justify-content:center}
.cms-slider-button-secondary{border-color:rgba(255,255,255,.42)!important;background:rgba(255,255,255,.12)!important;box-shadow:none}
.cms-slider-button-secondary:hover,.cms-slider-button-secondary:focus{background:rgba(255,255,255,.22)!important;filter:none}
.cms-slider-caption-enter .cms-slider-actions{animation:cmsSliderTextUp .58s cubic-bezier(.22,.61,.36,1) calc(var(--cms-slider-text-delay,280ms) + 140ms) both}
@keyframes cmsSliderTextUp{from{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@media(max-width:767.98px){.cms-slider--compact,.cms-slider--compact .cms-slider-layout{min-height:420px!important}.cms-slider--standard,.cms-slider--standard .cms-slider-layout{min-height:510px!important}.cms-slider--tall,.cms-slider--tall .cms-slider-layout{min-height:580px!important}.cms-slider-layout{align-items:flex-end!important;padding:2rem 1.15rem 3.7rem!important}.cms-slider-shade{background:linear-gradient(0deg,color-mix(in srgb,var(--cms-slider-overlay-color,#04152f) 90%,transparent) 0%,color-mix(in srgb,var(--cms-slider-overlay-color,#04152f) 64%,transparent) 54%,color-mix(in srgb,var(--cms-slider-overlay-color,#04152f) 20%,transparent) 100%)}.cms-slider-content h1,.cms-slider-content h2{font-size:clamp(1.75rem,8.4vw,2.4rem)!important}.cms-slider-excerpt{max-width:46ch}.cms-slider-icon{width:2.4rem;height:2.4rem}}
@media(prefers-reduced-motion:reduce){.cms-slider .carousel-item,.cms-slider-content,.cms-slider-content>*,.cms-slider-actions,.cms-slider-button,.cms-slider-media,.cms-slider-dots button{animation:none!important;transition:none!important;transform:none!important}}

/* Builder v10 generic professional widgets. Keep industry semantics in templates, not widget code. */
.cms-smart-card{position:relative;display:flex;flex-direction:column;height:100%;overflow:hidden;border:1px solid color-mix(in srgb,currentColor 12%,transparent);border-radius:1rem;background:var(--cms-surface,#fff);box-shadow:0 10px 30px rgba(15,23,42,.06);transition:transform .2s ease,box-shadow .2s ease}.cms-smart-card:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(15,23,42,.1)}.cms-smart-card-media{overflow:hidden;aspect-ratio:4/3}.cms-smart-card.cms-ratio-1x1 .cms-smart-card-media{aspect-ratio:1}.cms-smart-card.cms-ratio-16x9 .cms-smart-card-media{aspect-ratio:16/9}.cms-smart-card.cms-ratio-4x5 .cms-smart-card-media{aspect-ratio:4/5}.cms-smart-card.cms-ratio-auto .cms-smart-card-media{aspect-ratio:auto}.cms-smart-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}.cms-smart-card:hover .cms-smart-card-media img{transform:scale(1.02)}.cms-smart-card-icon{display:grid;place-items:center;width:3rem;height:3rem;margin:1.25rem 1.25rem 0;border-radius:.85rem;background:color-mix(in srgb,var(--site-primary,#3454d1) 10%,transparent);color:var(--site-primary,#3454d1);font-size:1.45rem}.cms-smart-card-body{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:1.25rem}.cms-smart-card-badge{display:inline-flex;padding:.3rem .55rem;border-radius:999px;background:color-mix(in srgb,var(--site-primary,#3454d1) 10%,transparent);color:var(--site-primary,#3454d1);font-size:.72rem;font-weight:800}.cms-smart-card-eyebrow{margin:.5rem 0;color:var(--cms-muted,#64748b);font-weight:750;letter-spacing:.08em}.cms-smart-card h3{margin:.15rem 0 .45rem;font-size:clamp(1.15rem,2vw,1.4rem)}.cms-smart-card p{margin:.35rem 0 .8rem;color:var(--cms-muted,#64748b);line-height:1.65}.cms-smart-card-meta{font-size:.88rem;color:var(--cms-muted,#64748b)}.cms-smart-card-price{margin-top:auto;padding-top:.75rem;font-size:1.2rem}.cms-smart-card-action{display:inline-flex;align-items:center;gap:.4rem;margin-top:.85rem;font-weight:750;text-decoration:none;color:var(--site-primary,#3454d1)}.cms-smart-card-rating{display:flex;gap:.1rem;color:#f2a900}.cms-smart-card--horizontal{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(0,1.2fr)}.cms-smart-card--horizontal .cms-smart-card-media{height:100%;aspect-ratio:auto}.cms-pricing-card{display:flex;flex-direction:column;height:100%;padding:clamp(1.35rem,3vw,2rem);border:1px solid color-mix(in srgb,currentColor 13%,transparent);border-radius:1rem;background:var(--cms-surface,#fff);box-shadow:0 10px 30px rgba(15,23,42,.06)}.cms-pricing-card.is-featured{border-color:var(--site-primary,#3454d1);box-shadow:0 16px 42px color-mix(in srgb,var(--site-primary,#3454d1) 16%,transparent)}.cms-pricing-eyebrow{color:var(--site-primary,#3454d1);font-size:.75rem;font-weight:800;letter-spacing:.08em}.cms-pricing-card h3{margin:.45rem 0}.cms-pricing-price{display:flex;align-items:baseline;gap:.35rem;margin:.25rem 0 .8rem}.cms-pricing-price strong{font-size:clamp(2rem,5vw,3rem);line-height:1}.cms-pricing-price span,.cms-pricing-card p{color:var(--cms-muted,#64748b)}.cms-pricing-card ul{display:grid;gap:.7rem;margin:1rem 0 1.35rem;padding:0;list-style:none}.cms-pricing-card li{display:flex;gap:.55rem;align-items:flex-start}.cms-pricing-card li i{color:var(--site-primary,#3454d1)}.cms-pricing-action{display:inline-flex;justify-content:center;margin-top:auto;padding:.75rem 1rem;border-radius:.65rem;background:var(--site-primary,#3454d1);color:#fff;text-decoration:none;font-weight:800}.cms-rating-widget{display:flex;gap:.12em;color:var(--cms-rating-color,#f2a900);font-size:var(--cms-rating-size,18px)}.cms-rating-align-center{justify-content:center}.cms-rating-align-end{justify-content:flex-end}@media(max-width:767.98px){.cms-smart-card--horizontal{grid-template-columns:1fr}.cms-smart-card--horizontal .cms-smart-card-media{aspect-ratio:16/9}}
@media(prefers-reduced-motion:reduce){.cms-smart-card,.cms-smart-card-media img{transition:none!important}.cms-smart-card:hover{transform:none}.cms-smart-card:hover .cms-smart-card-media img{transform:none}}

/* Horizontal alignment for block-level widgets (buttons, icon lists).
   Bootstrap's text-* utilities only align inline content, so centre/end shrink
   the box to its content and place it with auto margins. `start` stays the
   natural inline flow so adjacent buttons still sit side by side. */
.btn.cms-align-center,.btn.cms-align-end{display:block;width:fit-content}
.cms-icon-list.cms-align-center,.cms-icon-list.cms-align-end{width:fit-content}
.cms-align-center{margin-inline:auto!important}
.cms-align-end{margin-inline:auto 0!important}
/* Shrinking the box and using auto margins only aligns a list that is free to
   size itself. A theme that gives the list an explicit width -- a full-width row
   of wrapping pills, say -- defeats that silently, and the control appears to do
   nothing. Placing the items as well keeps the setting honest whichever way the
   list is laid out, and is what a wrapped multi-row list needs in any case. */
.cms-icon-list.cms-align-start{justify-content:flex-start;justify-items:start}
.cms-icon-list.cms-align-center{justify-content:center;justify-items:center}
.cms-icon-list.cms-align-end{justify-content:flex-end;justify-items:end}
@media(min-width:768px){
  .btn.cms-align-md-center,.btn.cms-align-md-end{display:block;width:fit-content}
  .cms-icon-list.cms-align-md-center,.cms-icon-list.cms-align-md-end{width:fit-content}
  .cms-align-md-center{margin-inline:auto!important}
  .cms-align-md-end{margin-inline:auto 0!important}
  .btn.cms-align-md-start{display:inline-block;width:auto;margin-inline:0}
  .cms-icon-list.cms-align-md-start{width:auto;margin-inline:0}
  .cms-icon-list.cms-align-md-start{justify-content:flex-start;justify-items:start}
  .cms-icon-list.cms-align-md-center{justify-content:center;justify-items:center}
  .cms-icon-list.cms-align-md-end{justify-content:flex-end;justify-items:end}
}
@media(min-width:992px){
  .btn.cms-align-lg-center,.btn.cms-align-lg-end{display:block;width:fit-content}
  .cms-icon-list.cms-align-lg-center,.cms-icon-list.cms-align-lg-end{width:fit-content}
  .cms-align-lg-center{margin-inline:auto!important}
  .cms-align-lg-end{margin-inline:auto 0!important}
  .btn.cms-align-lg-start{display:inline-block;width:auto;margin-inline:0}
  .cms-icon-list.cms-align-lg-start{width:auto;margin-inline:0}
  .cms-icon-list.cms-align-lg-start{justify-content:flex-start;justify-items:start}
  .cms-icon-list.cms-align-lg-center{justify-content:center;justify-items:center}
  .cms-icon-list.cms-align-lg-end{justify-content:flex-end;justify-items:end}
}

/* Google reviews carousel (block: google_reviews). */
.cms-google-reviews{position:relative}
.cms-reviews-viewport{overflow:hidden;border-radius:22px}
.cms-reviews-track{display:flex;gap:1.25rem;will-change:transform;transition:transform .7s cubic-bezier(.22,.61,.36,1)}
.cms-review-slide{flex:0 0 calc(33.333% - .84rem);min-width:0}
.cms-review-card{display:flex;flex-direction:column;height:100%;padding:1.45rem;background:#fff;border:1px solid rgba(163,177,138,.14);border-radius:18px;box-shadow:0 18px 38px rgba(0,0,0,.18)}
.cms-review-author{display:flex;align-items:center;gap:.8rem;margin-bottom:.9rem}
.cms-review-author img,.cms-review-avatar{width:46px;height:46px;border-radius:50%;flex-shrink:0}
.cms-review-avatar{display:flex;align-items:center;justify-content:center;background:var(--site-primary,#3454d1);color:#fff;font-weight:700;font-size:1.05rem}
.cms-review-author-name{font-size:1rem;font-weight:500;color:#132019;line-height:1.2}
.cms-review-rating-row{display:flex;align-items:center;gap:.55rem;margin-bottom:.7rem}
.cms-review-stars{color:#fbbc04;font-size:1rem;letter-spacing:.06em}
.cms-review-time{font-size:.84rem;color:#6d756f}
.cms-review-copy{flex-grow:1;color:#36413a;font-size:.9rem;line-height:1.68;margin-bottom:0}
.cms-review-more{border:0;background:none;padding:0;color:var(--site-link,var(--site-primary,#3454d1));font-weight:600;font-size:inherit;cursor:pointer}
.cms-review-more:hover{text-decoration:none}
.cms-reviews-controls{display:flex;align-items:center;justify-content:center;gap:.8rem;margin-top:1.5rem}
.cms-reviews-nav{width:42px;height:42px;flex:0 0 42px;padding:0;border-radius:50%;border:1px solid color-mix(in srgb,var(--site-secondary,#1f2937) 28%,transparent);background:rgba(255,255,255,.06);color:var(--site-secondary,#1f2937);display:inline-flex;align-items:center;justify-content:center;font-size:1.15rem;line-height:1;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.cms-reviews-nav:hover{background:var(--site-secondary,#1f2937);border-color:var(--site-secondary,#1f2937);color:#fff;transform:translateY(-1px)}
.cms-reviews-dots{display:flex;align-items:center;gap:.45rem}
.cms-reviews-dot{width:9px;height:9px;border:none;padding:0;border-radius:50%;background:rgba(255,255,255,.22);transition:transform .2s ease,background .2s ease;cursor:pointer}
.cms-reviews-dot.is-active{background:var(--site-secondary,#1f2937);transform:scale(1.18)}
.cms-reviews-actions{display:flex;flex-wrap:wrap;justify-content:center;text-align:center;gap:1rem;margin-top:1.5rem}
.cms-reviews-action{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.5rem 3rem;font-weight:600;text-decoration:none}
.cms-reviews-action-outline{background:transparent;border:2px solid var(--site-secondary,#1f2937);color:var(--site-secondary,#1f2937)}
.cms-reviews-action-solid{background:var(--site-secondary,#1f2937);border:2px solid var(--site-secondary,#1f2937);color:#fff}
/* `body.cms-site a:hover` recolours links to the sage accent, which is this
   button's own background — so state both hovers explicitly. */
.cms-reviews-action-outline:hover,.cms-reviews-action-outline:focus-visible{background:var(--site-secondary,#1f2937);border-color:var(--site-secondary,#1f2937);color:#fff!important}
.cms-reviews-action-solid:hover,.cms-reviews-action-solid:focus-visible{background:#93a179;border-color:#93a179;color:#0d1a12!important}
.cms-reviews-action:hover i,.cms-reviews-action:focus-visible i{color:inherit}
.cms-reviews-empty{color:inherit;opacity:.7;text-align:center;margin:0}
.cms-reviews-disclosure{max-width:48rem;margin:.75rem auto 0;text-align:center;font-size:.78rem;line-height:1.45;opacity:.72}
@media(max-width:991.98px){.cms-review-slide{flex:0 0 calc(50% - .63rem)}}
@media(max-width:575.98px){.cms-review-slide{flex:0 0 100%}}
@media(prefers-reduced-motion:reduce){.cms-reviews-track{transition:none}}

/* Unicons glyphs carry their own line metrics, so an inline icon sits slightly
   high or low next to text. Centre them everywhere: `vertical-align` handles the
   inline cases, and flex/grid parents already centre via align-items. */
body.cms-site i.uil{line-height:1;vertical-align:middle}
body.cms-site a i.uil,body.cms-site button i.uil,body.cms-site .btn i.uil{vertical-align:middle}
body.cms-site .cms-icon-list li{align-items:var(--cms-icon-list-align,flex-start)}

.cms-reviews-action i.uil{line-height:1;font-size:1.05em}

/* Popup block — native <dialog> so focus trapping, ESC and the backdrop are free. */
.cms-popup{display:block}
.cms-popup-trigger{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:600;cursor:pointer;text-decoration:none}
.cms-popup-trigger-pill{color:rgba(255,255,255,.5);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:.3rem .85rem;transition:color .2s ease,background .2s ease}
.cms-popup-trigger-pill:hover{color:#fff;background:rgba(255,255,255,.13)}
.cms-popup-trigger-link{border:0;background:none;padding:0;color:var(--site-link,#3454d1)}
.cms-popup-trigger-link:hover{text-decoration:none}
.cms-popup-trigger-solid{border:0;border-radius:999px;padding:.5rem 1.25rem;background:var(--site-button-bg,#3454d1);color:var(--site-button-text,#fff)}
.cms-popup-dialog{width:min(92vw,640px);max-height:85vh;padding:0;border:0;border-radius:18px;background:#fff;color:#1a1a1a;box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:hidden}
.cms-popup-small{width:min(92vw,440px)}
.cms-popup-large{width:min(92vw,860px)}
.cms-popup-dialog::backdrop{background:rgba(13,26,18,.55)}
.cms-popup-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(0,0,0,.08)}
html.cms-popup-open,html.cms-popup-open body{overflow:hidden}.cms-popup-dialog .cms-popup-title{margin:0;font-size:1.25rem;line-height:1.3;color:inherit}.cms-popup-dialog .cms-scroll-reveal{opacity:1;transform:none;animation:none}
.cms-popup-close{width:34px;height:34px;flex:0 0 34px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:rgba(0,0,0,.06);color:#1a1a1a;cursor:pointer;font-size:1.1rem}
.cms-popup-close:hover{background:rgba(0,0,0,.12)}
.cms-popup-body{padding:1.25rem 1.5rem 1.75rem;overflow:auto;max-height:calc(85vh - 76px);line-height:1.8}
.cms-popup-body p{margin:0 0 1rem}
.cms-popup-body p:last-child{margin-bottom:0}

/* A sticky header/footer section must resolve against the page, not against its
   wrapper — the wrapper is exactly as tall as the part, so it would pin nothing.
   The wrapper only ever carries descendant selectors, so dropping its box is safe. */
.cms-site-part-passthrough{display:contents}

/* Navigation alignment. Its own prefix: the generic .cms-align-* utilities set
   width:fit-content and margin-inline, which conflict with .cms-navigation's
   default margin-left:auto. */
.cms-navigation.cms-nav-align-start{margin-left:0;margin-right:auto;justify-content:flex-start}
.cms-navigation.cms-nav-align-center{margin-left:auto;margin-right:auto;justify-content:center}
.cms-navigation.cms-nav-align-end{margin-left:auto;margin-right:0;justify-content:flex-end}
@media(min-width:768px){
  .cms-navigation.cms-nav-align-md-start{margin-left:0;margin-right:auto;justify-content:flex-start}
  .cms-navigation.cms-nav-align-md-center{margin-left:auto;margin-right:auto;justify-content:center}
  .cms-navigation.cms-nav-align-md-end{margin-left:auto;margin-right:0;justify-content:flex-end}
}
@media(min-width:992px){
  .cms-navigation.cms-nav-align-lg-start{margin-left:0;margin-right:auto;justify-content:flex-start}
  .cms-navigation.cms-nav-align-lg-center{margin-left:auto;margin-right:auto;justify-content:center}
  .cms-navigation.cms-nav-align-lg-end{margin-left:auto;margin-right:0;justify-content:flex-end}
}

/* Query-loop pagination. The loop often makes itself a grid, so the nav spans all
   columns rather than becoming another card in the row. */
.cms-loop-pagination{grid-column:1/-1;display:flex;justify-content:center;align-items:center;
  gap:.6rem;flex-wrap:wrap;margin-top:2rem}
.cms-loop-page{display:inline-flex;align-items:center;justify-content:center;min-width:42px;
  height:42px;padding:0 .95rem;border:1px solid #d5dfd0;border-radius:999px;background:#fff;
  color:var(--site-link,var(--site-primary,#3454d1));font-size:.9rem;font-weight:600;text-decoration:none;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.cms-loop-page:hover{background:var(--site-primary,#3454d1);border-color:var(--site-primary,#3454d1);color:#fff;transform:translateY(-1px)}
.cms-loop-page.is-active{background:var(--site-primary,#3454d1);border-color:var(--site-primary,#3454d1);color:#fff}
.cms-loop-page.is-disabled{opacity:.45;pointer-events:none}

/* Loop items. A card should fill its grid cell so cards in a row share a height,
   without the card needing height:100% of its own — that breaks the moment the
   grid drops to one column and the inner row stacks, leaving the content taller
   than the card and overlapping the next one. Making the chain flex instead lets
   the row grow to whatever the cell offers, at any column count. */
.cms-query-loop>.cms-loop-item{display:flex;min-width:0}
.cms-query-loop>.cms-loop-item>*{width:100%;min-width:0}
.cms-query-loop-inline{display:flex;flex-wrap:wrap;align-items:center}
.cms-query-loop-inline>.cms-loop-item{flex:0 0 auto;width:auto}
.cms-query-loop-inline>.cms-loop-item>*{width:auto}
.cms-query-loop-inline>.cms-loop-item>section>.cms-section-columns{width:auto}
.cms-query-loop-inline>.cms-loop-item .cms-column{flex:0 0 auto;width:auto}
.cms-query-loop>.cms-loop-item>section{display:flex;flex-direction:column}
.cms-query-loop>.cms-loop-item>section>.cms-section-columns{flex:1 1 auto;min-height:0}
.cms-query-loop-zebra>.cms-loop-item:nth-child(odd){background:var(--cms-loop-odd-background,transparent)}
.cms-query-loop-zebra>.cms-loop-item:nth-child(even){background:var(--cms-loop-even-background,transparent)}
.cms-query-loop>.cms-loop-item.cms-loop-item-themed{background:var(--cms-loop-item-background,transparent);color:var(--cms-loop-item-color,inherit)}
.cms-query-loop>.cms-loop-item.cms-loop-item-themed :is(h1,h2,h3,h4,h5,h6,p,li,.cms-dynamic-field){color:var(--cms-loop-item-color,inherit)!important}
.cms-query-loop-alternating>.cms-loop-item:nth-child(even)>section>.cms-section-columns{flex-direction:row-reverse}
@media(max-width:767.98px){.cms-query-loop-alternating>.cms-loop-item:nth-child(even)>section>.cms-section-columns{flex-direction:row;flex-wrap:wrap}.cms-query-loop-alternating>.cms-loop-item:nth-child(even)>section>.cms-section-columns>.cms-column:first-child{order:2}.cms-query-loop-alternating>.cms-loop-item:nth-child(even)>section>.cms-section-columns>.cms-column:last-child{order:1}}
/* Visually hidden but still announced: a placeholder-only design should not cost
   screen-reader users the field name. */
.cms-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
