.elementor-kit-58{--e-global-color-primary:#000000;--e-global-color-secondary:#191919;--e-global-color-text:#444444;--e-global-color-accent:#FFBF00;--e-global-color-a185853:#2075C6;--e-global-color-308e809:#F5F5F5;--e-global-color-a291686:#FFFFFF;--e-global-color-91455cb:#A57D08;--e-global-color-e124573:#003A72;--e-global-typography-primary-font-family:"Outfit";--e-global-typography-primary-font-size:66px;--e-global-typography-primary-font-weight:600;--e-global-typography-primary-text-transform:capitalize;--e-global-typography-primary-line-height:1em;--e-global-typography-primary-letter-spacing:-2px;--e-global-typography-secondary-font-family:"Outfit";--e-global-typography-secondary-font-size:48px;--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-text-transform:capitalize;--e-global-typography-secondary-line-height:1.1em;--e-global-typography-text-font-family:"Poppins";--e-global-typography-text-font-size:16px;--e-global-typography-text-line-height:1.5em;--e-global-typography-accent-font-family:"Poppins";--e-global-typography-accent-font-size:15px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-font-style:italic;--e-global-typography-accent-line-height:1.2em;--e-global-typography-accent-letter-spacing:2px;--e-global-typography-b2ce6af-font-family:"Poppins";--e-global-typography-b2ce6af-font-size:16px;--e-global-typography-b2ce6af-line-height:1.5em;--e-global-typography-69c152f-font-family:"Poppins";--e-global-typography-69c152f-font-size:14px;--e-global-typography-69c152f-line-height:1.6em;--e-global-typography-520c191-font-family:"Poppins";--e-global-typography-520c191-font-size:16px;--e-global-typography-520c191-font-weight:500;--e-global-typography-583e54c-font-family:"Outfit";--e-global-typography-583e54c-font-size:66px;--e-global-typography-583e54c-font-weight:600;--e-global-typography-583e54c-text-transform:capitalize;--e-global-typography-583e54c-line-height:1em;--e-global-typography-583e54c-letter-spacing:-2px;--e-global-typography-5d167aa-font-family:"Outfit";--e-global-typography-5d167aa-font-size:48px;--e-global-typography-5d167aa-font-weight:600;--e-global-typography-5d167aa-text-transform:capitalize;--e-global-typography-5d167aa-line-height:1.1em;--e-global-typography-d3dae9a-font-family:"Outfit";--e-global-typography-d3dae9a-font-size:37px;--e-global-typography-d3dae9a-font-weight:600;--e-global-typography-d3dae9a-line-height:1.1em;--e-global-typography-83682a1-font-family:"Outfit";--e-global-typography-83682a1-font-size:28px;--e-global-typography-83682a1-font-weight:600;--e-global-typography-83682a1-line-height:1.1em;--e-global-typography-7044a64-font-family:"Outfit";--e-global-typography-7044a64-font-size:20px;--e-global-typography-7044a64-font-weight:600;--e-global-typography-7044a64-line-height:1.2em;--e-global-typography-84ca66e-font-family:"Poppins";--e-global-typography-84ca66e-font-size:15px;--e-global-typography-84ca66e-font-weight:600;--e-global-typography-84ca66e-text-transform:uppercase;--e-global-typography-84ca66e-font-style:italic;--e-global-typography-84ca66e-line-height:1.2em;--e-global-typography-84ca66e-letter-spacing:2px;--e-global-typography-112b6c4-font-family:"Poppins";--e-global-typography-112b6c4-font-size:13px;--e-global-typography-112b6c4-font-weight:300;--e-global-typography-dacb3f0-font-family:"Outfit";--e-global-typography-dacb3f0-font-size:82px;--e-global-typography-dacb3f0-font-weight:600;--e-global-typography-dacb3f0-text-transform:capitalize;--e-global-typography-dacb3f0-line-height:1em;--e-global-typography-dacb3f0-letter-spacing:-2px;--e-global-typography-35a195f-font-family:"Poppins";--e-global-typography-35a195f-font-size:20px;--e-global-typography-35a195f-line-height:1.5em;color:var( --e-global-color-text );font-family:var( --e-global-typography-b2ce6af-font-family ), Sans-serif;font-size:var( --e-global-typography-b2ce6af-font-size );line-height:var( --e-global-typography-b2ce6af-line-height );letter-spacing:var( --e-global-typography-b2ce6af-letter-spacing );word-spacing:var( --e-global-typography-b2ce6af-word-spacing );}.elementor-kit-58 button,.elementor-kit-58 input[type="button"],.elementor-kit-58 input[type="submit"],.elementor-kit-58 .elementor-button{background-color:var( --e-global-color-accent );font-family:"Outfit", Sans-serif;font-size:14px;font-weight:600;text-transform:uppercase;line-height:1.6em;letter-spacing:0.5px;color:var( --e-global-color-a291686 );border-style:solid;border-width:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;}.elementor-kit-58 button:hover,.elementor-kit-58 button:focus,.elementor-kit-58 input[type="button"]:hover,.elementor-kit-58 input[type="button"]:focus,.elementor-kit-58 input[type="submit"]:hover,.elementor-kit-58 input[type="submit"]:focus,.elementor-kit-58 .elementor-button:hover,.elementor-kit-58 .elementor-button:focus{background-color:var( --e-global-color-91455cb );color:var( --e-global-color-a291686 );border-style:solid;border-width:0px 0px 0px 0px;}.elementor-kit-58 e-page-transition{background-color:#FFBC7D;}.elementor-kit-58 a{color:var( --e-global-color-secondary );}.elementor-kit-58 a:hover{color:var( --e-global-color-accent );}.elementor-kit-58 h1{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-583e54c-font-family ), Sans-serif;font-size:var( --e-global-typography-583e54c-font-size );font-weight:var( --e-global-typography-583e54c-font-weight );text-transform:var( --e-global-typography-583e54c-text-transform );line-height:var( --e-global-typography-583e54c-line-height );letter-spacing:var( --e-global-typography-583e54c-letter-spacing );word-spacing:var( --e-global-typography-583e54c-word-spacing );}.elementor-kit-58 h2{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-5d167aa-font-family ), Sans-serif;font-size:var( --e-global-typography-5d167aa-font-size );font-weight:var( --e-global-typography-5d167aa-font-weight );text-transform:var( --e-global-typography-5d167aa-text-transform );line-height:var( --e-global-typography-5d167aa-line-height );letter-spacing:var( --e-global-typography-5d167aa-letter-spacing );word-spacing:var( --e-global-typography-5d167aa-word-spacing );}.elementor-kit-58 h3{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-d3dae9a-font-family ), Sans-serif;font-size:var( --e-global-typography-d3dae9a-font-size );font-weight:var( --e-global-typography-d3dae9a-font-weight );line-height:var( --e-global-typography-d3dae9a-line-height );letter-spacing:var( --e-global-typography-d3dae9a-letter-spacing );word-spacing:var( --e-global-typography-d3dae9a-word-spacing );}.elementor-kit-58 h4{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-83682a1-font-family ), Sans-serif;font-size:var( --e-global-typography-83682a1-font-size );font-weight:var( --e-global-typography-83682a1-font-weight );line-height:var( --e-global-typography-83682a1-line-height );letter-spacing:var( --e-global-typography-83682a1-letter-spacing );word-spacing:var( --e-global-typography-83682a1-word-spacing );}.elementor-kit-58 h5{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-7044a64-font-family ), Sans-serif;font-size:var( --e-global-typography-7044a64-font-size );font-weight:var( --e-global-typography-7044a64-font-weight );line-height:var( --e-global-typography-7044a64-line-height );letter-spacing:var( --e-global-typography-7044a64-letter-spacing );word-spacing:var( --e-global-typography-7044a64-word-spacing );}.elementor-kit-58 h6{color:var( --e-global-color-a185853 );font-family:var( --e-global-typography-84ca66e-font-family ), Sans-serif;font-size:var( --e-global-typography-84ca66e-font-size );font-weight:var( --e-global-typography-84ca66e-font-weight );text-transform:var( --e-global-typography-84ca66e-text-transform );font-style:var( --e-global-typography-84ca66e-font-style );line-height:var( --e-global-typography-84ca66e-line-height );letter-spacing:var( --e-global-typography-84ca66e-letter-spacing );word-spacing:var( --e-global-typography-84ca66e-word-spacing );}.elementor-kit-58 label{font-weight:600;line-height:1.5em;}.elementor-kit-58 input:not([type="button"]):not([type="submit"]),.elementor-kit-58 textarea,.elementor-kit-58 .elementor-field-textual{color:var( --e-global-color-text );background-color:#44444400;border-style:solid;border-width:1px 1px 1px 1px;border-radius:0px 0px 0px 0px;}.elementor-kit-58 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-58 textarea:focus,.elementor-kit-58 .elementor-field-textual:focus{color:var( --e-global-color-text );background-color:var( --e-global-color-a291686 );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-text );}.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-58{--e-global-typography-primary-font-size:50px;--e-global-typography-secondary-font-size:37px;--e-global-typography-text-font-size:15px;--e-global-typography-accent-font-size:14.2px;--e-global-typography-b2ce6af-font-size:15px;--e-global-typography-69c152f-font-size:13px;--e-global-typography-520c191-font-size:15px;--e-global-typography-583e54c-font-size:50px;--e-global-typography-5d167aa-font-size:37px;--e-global-typography-d3dae9a-font-size:30px;--e-global-typography-83682a1-font-size:24px;--e-global-typography-7044a64-font-size:19px;--e-global-typography-84ca66e-font-size:14.2px;--e-global-typography-112b6c4-font-size:12px;--e-global-typography-dacb3f0-font-size:61px;--e-global-typography-35a195f-font-size:15px;font-size:var( --e-global-typography-b2ce6af-font-size );line-height:var( --e-global-typography-b2ce6af-line-height );letter-spacing:var( --e-global-typography-b2ce6af-letter-spacing );word-spacing:var( --e-global-typography-b2ce6af-word-spacing );}.elementor-kit-58 h1{font-size:var( --e-global-typography-583e54c-font-size );line-height:var( --e-global-typography-583e54c-line-height );letter-spacing:var( --e-global-typography-583e54c-letter-spacing );word-spacing:var( --e-global-typography-583e54c-word-spacing );}.elementor-kit-58 h2{font-size:var( --e-global-typography-5d167aa-font-size );line-height:var( --e-global-typography-5d167aa-line-height );letter-spacing:var( --e-global-typography-5d167aa-letter-spacing );word-spacing:var( --e-global-typography-5d167aa-word-spacing );}.elementor-kit-58 h3{font-size:var( --e-global-typography-d3dae9a-font-size );line-height:var( --e-global-typography-d3dae9a-line-height );letter-spacing:var( --e-global-typography-d3dae9a-letter-spacing );word-spacing:var( --e-global-typography-d3dae9a-word-spacing );}.elementor-kit-58 h4{font-size:var( --e-global-typography-83682a1-font-size );line-height:var( --e-global-typography-83682a1-line-height );letter-spacing:var( --e-global-typography-83682a1-letter-spacing );word-spacing:var( --e-global-typography-83682a1-word-spacing );}.elementor-kit-58 h5{font-size:var( --e-global-typography-7044a64-font-size );line-height:var( --e-global-typography-7044a64-line-height );letter-spacing:var( --e-global-typography-7044a64-letter-spacing );word-spacing:var( --e-global-typography-7044a64-word-spacing );}.elementor-kit-58 h6{font-size:var( --e-global-typography-84ca66e-font-size );line-height:var( --e-global-typography-84ca66e-line-height );letter-spacing:var( --e-global-typography-84ca66e-letter-spacing );word-spacing:var( --e-global-typography-84ca66e-word-spacing );}.elementor-kit-58 button,.elementor-kit-58 input[type="button"],.elementor-kit-58 input[type="submit"],.elementor-kit-58 .elementor-button{font-size:13px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-58{--e-global-typography-primary-font-size:37px;--e-global-typography-secondary-font-size:29px;--e-global-typography-text-font-size:14px;--e-global-typography-accent-font-size:13.5px;--e-global-typography-b2ce6af-font-size:14px;--e-global-typography-69c152f-font-size:12px;--e-global-typography-520c191-font-size:14px;--e-global-typography-583e54c-font-size:37px;--e-global-typography-5d167aa-font-size:29px;--e-global-typography-d3dae9a-font-size:25px;--e-global-typography-83682a1-font-size:21px;--e-global-typography-7044a64-font-size:18px;--e-global-typography-84ca66e-font-size:13.5px;--e-global-typography-112b6c4-font-size:11px;--e-global-typography-dacb3f0-font-size:43px;--e-global-typography-35a195f-font-size:14px;font-size:var( --e-global-typography-b2ce6af-font-size );line-height:var( --e-global-typography-b2ce6af-line-height );letter-spacing:var( --e-global-typography-b2ce6af-letter-spacing );word-spacing:var( --e-global-typography-b2ce6af-word-spacing );}.elementor-kit-58 h1{font-size:var( --e-global-typography-583e54c-font-size );line-height:var( --e-global-typography-583e54c-line-height );letter-spacing:var( --e-global-typography-583e54c-letter-spacing );word-spacing:var( --e-global-typography-583e54c-word-spacing );}.elementor-kit-58 h2{font-size:var( --e-global-typography-5d167aa-font-size );line-height:var( --e-global-typography-5d167aa-line-height );letter-spacing:var( --e-global-typography-5d167aa-letter-spacing );word-spacing:var( --e-global-typography-5d167aa-word-spacing );}.elementor-kit-58 h3{font-size:var( --e-global-typography-d3dae9a-font-size );line-height:var( --e-global-typography-d3dae9a-line-height );letter-spacing:var( --e-global-typography-d3dae9a-letter-spacing );word-spacing:var( --e-global-typography-d3dae9a-word-spacing );}.elementor-kit-58 h4{font-size:var( --e-global-typography-83682a1-font-size );line-height:var( --e-global-typography-83682a1-line-height );letter-spacing:var( --e-global-typography-83682a1-letter-spacing );word-spacing:var( --e-global-typography-83682a1-word-spacing );}.elementor-kit-58 h5{font-size:var( --e-global-typography-7044a64-font-size );line-height:var( --e-global-typography-7044a64-line-height );letter-spacing:var( --e-global-typography-7044a64-letter-spacing );word-spacing:var( --e-global-typography-7044a64-word-spacing );}.elementor-kit-58 h6{font-size:var( --e-global-typography-84ca66e-font-size );line-height:var( --e-global-typography-84ca66e-line-height );letter-spacing:var( --e-global-typography-84ca66e-letter-spacing );word-spacing:var( --e-global-typography-84ca66e-word-spacing );}.elementor-kit-58 button,.elementor-kit-58 input[type="button"],.elementor-kit-58 input[type="submit"],.elementor-kit-58 .elementor-button{font-size:12px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* GC: Policy 04 mobile order - stacked 2-col image+text sections
   Canonical stacked order: HEADING > IMAGE > TEXT > CTA
   Applies only where Elementor already stacks the columns (tablet bp, max-width 1024).
   Desktop 1025+ untouched. */
@media (max-width:1024px){
 .gc-ord > .elementor-container{flex-direction:column;flex-wrap:nowrap}
 .gc-ord > .elementor-container > .elementor-column,
 .gc-ord > .elementor-container > .elementor-column > .elementor-widget-wrap{display:contents}
 .gc-ord > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-heading{order:1}
 .gc-ord > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-image{order:2;margin-block:1em}
 .gc-ord > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-text-editor{order:3}
 .gc-ord > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-html{order:4}
 .gc-ord > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-button{order:5}
 /* restore the 10px horizontal inset that .elementor-element-populated provided
    before display:contents dissolved the column boxes */
 .gc-ord > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget{padding-left:10px;padding-right:10px}
}

/* GC: trust-badge carousel - normalize logo presentation only (files untouched).
   Consistent logo viewport, object-fit:contain, centered, proportional width.
   No stretching, no cropping, no forced equal widths. */
.elementor-widget-image-carousel.gc-trust .swiper-slide{display:flex;align-items:center;justify-content:center}
.elementor-widget-image-carousel.gc-trust .swiper-slide-image{
  width:120px !important;height:auto;max-width:100%;
  object-fit:contain;object-position:center;margin-inline:auto;display:block;
}


/* GC: top-bar location pin - drawn on the inline <i> after 'Michigan' (Elementor strips inline <svg> from heading text).
   Inline on mobile/tablet so it sits beside MICHIGAN; standalone icon widget takes over on desktop. One pin at any width. */
.gc-inline-pin{display:inline-block;width:0.72em;height:1em;margin-left:6px;vertical-align:-0.14em;background:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzODQgNTEyIj48cGF0aCBmaWxsPSIjRkZCRjAwIiBkPSJNMTcyLjI2OCA1MDEuNjdDMjYuOTcgMjkxLjAzMSAwIDI2OS40MTMgMCAxOTIgMCA4NS45NjEgODUuOTYxIDAgMTkyIDBzMTkyIDg1Ljk2MSAxOTIgMTkyYzAgNzcuNDEzLTI2Ljk3IDk5LjAzMS0xNzIuMjY4IDMwOS42Ny05LjUzNSAxMy43NzQtMjkuOTMgMTMuNzczLTM5LjQ2NCAwek0xOTIgMjcyYzQ0LjE4MyAwIDgwLTM1LjgxNyA4MC04MHMtMzUuODE3LTgwLTgwLTgwLTgwIDM1LjgxNy04MCA4MCAzNS44MTcgODAgODAgODB6Ii8+PC9zdmc+') no-repeat center/contain}
@media (min-width:1025px){ .gc-inline-pin{display:none !important} }
@media (max-width:1024px){ .elementor-widget-icon.gc-topbar-pin{display:none !important} }
@media (max-width:1024px){ .gc-br{display:block;height:0} }


/* GC: canonical stacked order for FLEX-CONTAINER image/text sections (City Hub template).
   Legacy Section markup is handled by .gc-ord; these use .e-con / .e-con-inner and nest the
   image one container deeper, so they need their own .elementor-kit-58s. Applies only where the
   columns already stack (tablet bp, max-width 1024). Desktop 1025+ untouched.
   Order: HEADING > IMAGE > BODY > SUPPORTING > CTA */
@media (max-width:1024px){
 .gc-ord-c, .gc-ord-c > .e-con-inner{flex-direction:column !important;flex-wrap:nowrap !important}
 .gc-ord-c > .e-con,
 .gc-ord-c > .e-con-inner > .e-con,
 .gc-ord-c > .e-con > .e-con,
 .gc-ord-c > .e-con-inner > .e-con > .e-con{display:contents}
 .gc-ord-c .elementor-widget-heading{order:1}
 .gc-ord-c .elementor-widget-image{order:2;margin-block:1em}
 .gc-ord-c .elementor-widget-text-editor{order:3}
 .gc-ord-c .elementor-widget-html{order:4}
 .gc-ord-c .elementor-widget-button{order:5}
 /* restore the 10px inset the dissolved column boxes were providing */
 .gc-ord-c .elementor-widget-heading,
 .gc-ord-c .elementor-widget-image,
 .gc-ord-c .elementor-widget-text-editor,
 .gc-ord-c .elementor-widget-html,
 .gc-ord-c .elementor-widget-button{padding-left:10px;padding-right:10px}
}


/* GC: service-family card - icon beside the heading on mobile/tablet too
   (previously only >=1025px). Mirrors the desktop grid with a tighter gutter. */
@media (max-width:1024px){
 .gc-fam__content{display:grid !important;grid-template-columns:auto minmax(0,1fr);column-gap:14px}
 .gc-fam__content > .elementor-widget-icon{grid-column:1;grid-row:2;align-self:center;width:max-content;margin:0 !important}
 .gc-fam__content > .elementor-widget-divider{grid-column:2;grid-row:1}
 .gc-fam__content > .elementor-widget-heading{grid-column:2;grid-row:2}
 .gc-fam__content > .elementor-widget-text-editor{grid-column:2;grid-row:3}
 .gc-fam__content > .gc-fam__list{grid-column:1 / -1;grid-row:4}
}


/* GC: breakpoint-specific line breaks in headings.
   Inactive = renders a normal space; active = forces a line break. */
.gc-brm,.gc-brd{display:inline-block;width:.28em}

@media (max-width:1024px){ .gc-brm{display:block;width:auto;height:0}  }
@media (min-width:1025px){ .gc-brd{display:block;width:auto;height:0}  }


/* GC: the scroll-driven horizontal image animation pushes the badge off-canvas on
   narrow screens (measured left:-100px, fully outside the viewport). Pin it in place
   at <=1024px; the desktop scroll effect is untouched. */
@media (max-width:1024px){
 .horizontal-scroll-image{left:0 !important;transform:none !important}
}


/* GC: process cards - title lifted into the top row, between the number and the icon.
   Mobile only. Markup untouched: the top row is dissolved with display:contents and the
   three items are sequenced with flex order (deterministic, unlike grid auto-placement). */
@media (max-width:767px){
 .jouny-process-item{display:flex !important;flex-wrap:wrap;align-items:center;column-gap:12px}
 .jouny-process-top{display:contents !important}
 .jouny-process-number{order:1 !important;flex:0 0 auto}
 .jouny-process-item h3{order:2 !important;flex:1 1 auto;margin:0 !important}
 .jouny-process-icon{order:3 !important;flex:0 0 auto}
 .jouny-process-item p{order:4 !important;flex:0 0 100%;margin:10px 0 0 !important}
}


/* GC: CTA-column sections - move the button to the very bottom of the stacked section.
   Columns are dissolved so all widgets become siblings; every widget keeps its DOM order
   (order:0) and only the button is pushed last (order:1). Restores the 10px inset. */
@media (max-width:1024px){
 .gc-cta-last > .elementor-container{flex-direction:column !important;flex-wrap:nowrap !important}
 .gc-cta-last > .elementor-container > .elementor-column,
 .gc-cta-last > .elementor-container > .elementor-column > .elementor-widget-wrap{display:contents !important}
 .gc-cta-last .elementor-widget-button{order:1 !important}
 .gc-cta-last > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget{padding-left:10px;padding-right:10px}
}


/* GC: CTA-last for FLEX-CONTAINER sections. The container holding the CTA is dissolved with
   display:contents so the button becomes a flex item of the row and can be pushed to the very
   bottom of the stacked section (same intent as .gc-cta-last, which handles legacy columns).
   The dissolved host's own 8px row-gap is re-applied on the row and the adjacent column gets
   its 26px separation back via margin. Desktop 1025+ untouched. */
@media (max-width:1024px){
 .gc-ctal-host{display:contents !important}
 .gc-ctal-row{row-gap:8px !important}
 .gc-ctal-host > .elementor-widget-button{order:1 !important}
 .gc-ctal-row > .e-con:last-child{margin-top:18px}
}

/* GC numbered cards: number beside heading at mobile */
@media (max-width:767px){
.gc-numcard{flex-direction:row!important;flex-wrap:wrap!important;align-items:baseline!important;column-gap:12px!important;row-gap:6px!important}
.gc-numcard > .elementor-widget-heading{order:1!important;flex:0 0 auto!important;width:auto!important}
.gc-numcard > .e-con{display:contents!important}
.gc-numcard > .e-con > .elementor-widget-heading{order:2!important;flex:1 1 0%!important;width:auto!important;min-width:0!important;overflow-wrap:anywhere}
.gc-numcard > .e-con > .elementor-widget-text-editor{order:3!important;flex:0 0 100%!important;width:100%!important;margin-top:2px}
}

/* GC-P04-INVISIBLE-FIX :: display:contents wrappers are 0x0 IntersectionObserver targets,
   so Elementor never removes .elementor-invisible and the content stays visibility:hidden.
   Force paint for animation-gated wrappers inside the approved dissolve patterns only. */
@media (max-width: 1024px) {
  .gc-ord > .elementor-container > .elementor-column.elementor-invisible,
  .gc-ord > .elementor-container > .elementor-column > .elementor-widget-wrap.elementor-invisible,
  .gc-cta-last > .elementor-container > .elementor-column.elementor-invisible,
  .gc-cta-last > .elementor-container > .elementor-column > .elementor-widget-wrap.elementor-invisible,
  .gc-ord-c > .e-con.elementor-invisible,
  .gc-ord-c > .e-con-inner > .e-con.elementor-invisible,
  .gc-ord-c > .e-con > .e-con.elementor-invisible,
  .gc-ord-c > .e-con-inner > .e-con > .e-con.elementor-invisible,
  .gc-ctal-host.elementor-invisible {
    visibility: visible !important;
  }
}
@media (max-width: 767px) {
  .jouny-process-top.elementor-invisible,
  .gc-numcard > .e-con.elementor-invisible {
    visibility: visible !important;
  }
}

/* ===== GC-BANDS-START : section distinction system =====
   Purpose: give every consecutive content section a perceptible boundary.
   Replaces the #FFFFFF / #F5F5F5 alternation (dL* ~3.5, invisible on phones)
   with a blue-tinted neutral drawn from the brand blue #2075C6.
   Applied by class only - no section is restyled beyond its background,
   no locked component (hero, family cards, map, LeadConnector, badges,
   FAQ, header, footer) has its internals touched.
   Selector shape mirrors Elementor's own generated background .elementor-kit-58
   (4 classes + 1 element) so it wins on specificity without !important. */
:root{
  --gc-band-tint:#E9F0F7;   /* 6% tint of brand blue toward white, L* ~93.7 */
  --gc-band-white:#FFFFFF;
  --gc-rail:#003A72;        /* Dark Blue - brand */
  --gc-rail-amber:#FFBF00;  /* Accent - brand */
}
body .elementor .elementor-element.gc-band-t:not(.elementor-motion-effects-element-type-background){
  background-color:var(--gc-band-tint);
}
body .elementor .elementor-element.gc-band-w:not(.elementor-motion-effects-element-type-background){
  background-color:var(--gc-band-white);
}
/* Conversion bands get a deliberate 3px rule so they read as a band,
   not a stray stripe, at every width. */
body .elementor .elementor-element.gc-seam-accent:not(.elementor-motion-effects-element-type-background){
  border-top:3px solid var(--gc-rail);
}
body .elementor .elementor-element.gc-seam-amber:not(.elementor-motion-effects-element-type-background){
  border-top:3px solid var(--gc-rail-amber);
}
/* Hairline fallback: if two same-tone bands ever end up adjacent after a
   future edit, the boundary still exists. */
body .elementor .elementor-element.gc-band-t + .elementor-element.gc-band-t,
body .elementor .elementor-element.gc-band-w + .elementor-element.gc-band-w{
  border-top:1px solid rgba(11,46,82,.12);
}
/* ===== GC-BANDS-END ===== */
/* ===== GC-BRS-START : phone-only / wide-only line breaks =====
   Extends the existing gc-brm (<=1024) / gc-brd (>=1025) pair with a split at
   the 767/768 boundary, so a wrap defect that exists ONLY at phone width can be
   corrected without moving tablet or desktop.
     .gc-brs  breaks at <=767 only  (phone)
     .gc-brw  breaks at >=768 only  (tablet + desktop)
   Inactive state renders a normal word space, exactly like gc-brm/gc-brd. */
/* Inactive = display:none, NOT a width-based pseudo-space. The markup keeps a
   REAL space before each span, so textContent stays "Professional Dryer Vent
   Cleaning Services in Warren, MI" for search engines, screen readers and
   copy-paste. The older gc-brm/gc-brd pair uses a .28em width instead, which
   concatenates the words in the accessibility tree - see report. */
.gc-brs,.gc-brw{display:none}
@media (max-width:767px){
  .gc-brs{display:block;width:auto;height:0}
}
@media (min-width:768px){
  .gc-brw{display:block;width:auto;height:0}
}
/* ===== GC-BRS-END ===== */
/* ===== GC-CTAG-START : move a CTA GROUP to the bottom of a stacked flex section =====
   Extends .gc-ctal-host, which pushes only the button. Here the button, its divider
   and the trust-badge row must travel together and keep their relative order.
   Host is dissolved with display:contents so all six widgets become flex items of the
   row; everything keeps order:0 (DOM order) except the three that move.
   The dissolved host's own 8px row-gap is re-applied on the row, and the cards column
   gets the original 26px separation back via margin (8 + 18).
   Scoped to <=1024px: the row is flex-direction:column at BOTH 767 and 1024 (verified
   live), so the defect exists at tablet as well as phone. Desktop 1025+ untouched. */
@media (max-width:1024px){
 .gc-ctag-host{display:contents !important}
 .gc-ctag-row{row-gap:8px !important}
 .gc-ctag-host > .elementor-widget-button{order:1 !important}
 .gc-ctag-host > .elementor-widget-divider{order:2 !important}
 .gc-ctag-host > .e-con{order:3 !important}
 .gc-ctag-row > .e-con:last-child{margin-top:18px}
 /* Policy 04 paint guard: a display:contents wrapper is a 0x0 IntersectionObserver
    target, so Elementor never removes .elementor-invisible from it. */
 .gc-ctag-host.elementor-invisible{visibility:visible !important}
}
/* ===== GC-CTAG-END ===== */

/* ===== GC-CTALAST-GAP-START : breathing room above the moved CTA button =====
   In a stacked .gc-cta-last section the button is pushed last (order:1) and lands
   directly under the card stack. Measured gap was 18px at both 375 and 800 - the
   button read as attached to the last card. 36px separates the CTA from the content
   it follows while staying under the 56px clearance below it, so the button still
   groups with its own section rather than floating.
   Same <=1024 window as the .gc-cta-last order rule it pairs with. Desktop 1025+ is
   untouched: there the button is order:0 inside its own column with margin-top 0. */
@media (max-width:1024px){
 .gc-cta-last .elementor-widget-button{margin-top:36px !important}
}
/* ===== GC-CTALAST-GAP-END ===== */

/* ===== GC-BRT-START : tablet-only and phone+desktop line breaks =====
   Completes the gc-brs (<=767) / gc-brw (>=768) pair for the case where a heading
   sits in a narrow desktop column but spans full width when the row stacks at
   tablet - so phone and desktop need the same wrap and tablet needs a different one.
     .gc-brt   breaks at 768-1024 only (tablet)
     .gc-brpd  breaks at <=767 and >=1025 (phone + desktop), inactive at tablet
   Inactive = display:none; the markup keeps a real space before each span so
   textContent stays clean. */
.gc-brt,.gc-brpd{display:none}
@media (min-width:768px) and (max-width:1024px){ .gc-brt{display:block;width:auto;height:0} }
@media (max-width:767px),(min-width:1025px){ .gc-brpd{display:block;width:auto;height:0} }
/* ===== GC-BRT-END ===== */

/* ===== GC-NW-START : keep a hyphenated compound on one line (e.g. Year-Round) ===== */
.gc-nw{white-space:nowrap}
/* ===== GC-NW-END ===== */

/* Footer address -> Google Maps link (appearance unchanged) */
p.elementor-icon-box-description a.gc-addr-link,p.elementor-icon-box-description a.gc-addr-link:link,p.elementor-icon-box-description a.gc-addr-link:visited,p.elementor-icon-box-description a.gc-addr-link:hover,p.elementor-icon-box-description a.gc-addr-link:focus,p.elementor-icon-box-description a.gc-addr-link:active{color:inherit;text-decoration:none;font:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;text-transform:inherit;}/* End custom CSS */