.elementor-kit-5068{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-5068 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --color-primary:#0B3D6E; --color-primary-dark:#072A4D; --color-accent:#C4480A; --color-accent-dark:#A63D0A; --color-secondary:#1D6FA5; --color-text:#111827; --color-text-muted:#374151; --color-border-strong:#9CA3AF; --color-border:#E5E7EB; --color-surface-alt:#F3F4F6; --color-surface:#FFFFFF; --color-success:#15803D; --color-warning:#B45309; --color-error:#B91C1C; --color-rating:#FBBF24; --font-heading:Montserrat; --font-body:Inter; --size-display:clamp(2.25rem, 1.6rem + 3vw, 3.5rem); --size-h1:clamp(2rem, 1.5rem + 2.2vw, 3rem); --size-h2:clamp(1.625rem, 1.3rem + 1.5vw, 2.25rem); --size-h3:clamp(1.25rem, 1.1rem + 0.7vw, 1.5rem); --size-h4:1.125rem; --size-body-lg:1.125rem; --size-body:1rem; --size-small:0.875rem; --size-eyebrow:0.8125rem; --space-section:clamp(3rem, 2rem + 4vw, 6rem); --space-gutter:clamp(1rem, 0.5rem + 2vw, 2rem); --size-container:1200px; --space-2:0.5rem; --space-4:1rem; --space-6:1.5rem; --space-8:2rem; --space-12:3rem; --radius-sm:4px; --radius-md:8px; --radius-lg:16px; }
/* Start custom CSS *//* GM structural CSS: see design-system/kit.md. Source of truth for kit 5068 → custom_css. */
.elementor-location-header{position:sticky;top:0;z-index:100;}
.admin-bar .elementor-location-header{top:32px;}
@media (max-width:782px){.admin-bar .elementor-location-header{top:46px;}}
@media (max-width:600px){.admin-bar .elementor-location-header{top:0;}}
@media (max-width:767px){body{padding-bottom:calc(56px + env(safe-area-inset-bottom));}}
/* Header nav layout */
.elementor-location-header .elementor-widget-nav-menu{flex:1 1 auto;position:static;}
@media (max-width:1024px){.elementor-location-header .elementor-widget-nav-menu{flex:0 0 auto;order:3;}}
@media (max-width:767px){.elementor-location-header .icon-call{margin-left:auto;}}
.elementor-location-header .elementor-nav-menu--dropdown.elementor-nav-menu__container{position:absolute;top:100%;left:0;right:0;width:auto;margin-top:0;z-index:99;}
.elementor-location-header .elementor-nav-menu--main .elementor-item{font-family:var(--font-body);font-size:var(--size-body);font-weight:600;color:var(--color-text);padding:12px 14px;}
.elementor-location-header .elementor-nav-menu--main .elementor-item:hover,.elementor-location-header .elementor-nav-menu--main .elementor-item.elementor-item-active{color:var(--color-primary);}
.elementor-location-header .elementor-nav-menu--main .elementor-item:after{background-color:var(--color-accent);height:3px;}
.elementor-location-header .elementor-menu-toggle{font-size:28px;color:var(--color-primary);background:transparent;width:48px;height:48px;}
.elementor-location-header .elementor-nav-menu--dropdown{background:var(--color-surface);box-shadow:0 8px 24px rgba(17,24,39,.12);}
.elementor-location-header .elementor-nav-menu--dropdown .elementor-item{font-family:var(--font-body);font-weight:600;color:var(--color-text);padding:16px 20px;font-size:1.0625rem;border-top:1px solid var(--color-border);}
.elementor-location-header .elementor-nav-menu--dropdown .elementor-item:hover{background:var(--color-surface-alt);color:var(--color-primary);}
/* Phone icons (V4 classes can't hold data-URI backgrounds) */
.elementor .btn-phone{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B3D6E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");background-repeat:no-repeat;}
.elementor .btn-phone:hover,.elementor .btn-phone.btn-outline-light{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");}
.elementor .btn-phone.btn-outline-light:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B3D6E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");}
.elementor .icon-call{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;}
/* Check-mark lists (hero proof bullets, "what's included") */
.check-list ul{list-style:none;margin:0;padding:0;}
.check-list li{position:relative;padding-left:1.75rem;}
.check-list li::before{content:"\2713";position:absolute;left:0;top:0;font-weight:800;color:var(--color-success);}
.section-dark .check-list li::before,.cta-band .check-list li::before{color:var(--color-rating);}
/* Rating stars: first <span> inside a .rating-line (Elementor strips class attrs from inline HTML) */
.rating-line > span:first-child{color:var(--color-rating);letter-spacing:.1em;}
/* Generic service icon (wrench). Per client, swap it for real icons (e-svg) once assets exist. */
.elementor .svc-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B3D6E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:28px;}
.card-link:hover .svc-icon{background-color:var(--color-primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E");}
/* Process steps: connector line behind the numbers (desktop only) */
/* (drawn per step: a ::before on the grid itself becomes a grid item and overflows) */
@media (min-width:1025px){.elementor .step{position:relative;}.elementor .step:not(:last-child)::after{content:"";position:absolute;top:28px;left:calc(50% + 36px);width:calc(100% - 72px + var(--space-8));height:2px;background:var(--color-border-strong);}}
/* Swipeable row on mobile (reviews carousel) */
@media (max-width:767px){.elementor .snap-row{grid-template-columns:none !important;grid-template-rows:none !important;grid-auto-flow:column;grid-auto-columns:86%;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin-right:calc(-1 * var(--space-gutter));padding-right:var(--space-gutter);padding-bottom:.5rem;}.elementor .snap-row > *{scroll-snap-align:start;}}
/* Service-area city boxes: the whole box is the link target */
.elementor .area-link > a{display:block;flex:1;margin:-.75rem -1rem;padding:.75rem 1rem;}
/* FAQ accordion +/− indicator (the V4 icon slot renders empty without an uploaded SVG) */
.faq-header .e-accordion-item-icon-base{flex:0 0 auto;width:32px;height:32px;border-radius:999px;background:var(--color-surface);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;}
.faq-header .e-accordion-item-icon-base::before{content:"+";font-family:var(--font-body);font-size:1.25rem;font-weight:700;line-height:1;color:var(--color-primary);}
details[open] > .faq-header .e-accordion-item-icon-base::before{content:"\2212";}
.faq-header:hover .faq-q{color:var(--color-primary);}
/* Inline links inside body copy: visibly links (a11y) */
.elementor .e-paragraph-base a:not([class]),.elementor .e-heading-base a:not([class]){color:var(--color-secondary);text-decoration:underline;text-underline-offset:2px;}
.elementor .e-paragraph-base a:not([class]):hover{color:var(--color-primary);}
.section-dark .e-paragraph-base a:not([class]),.cta-band .e-paragraph-base a:not([class]),.elementor-location-footer .e-paragraph-base a:not([class]){color:inherit;}
/* Warning-sign lists (symptoms): "!" marker in warning color */
.flag-list ul{list-style:none;margin:0;padding:0;}
.flag-list li{position:relative;padding-left:2rem;}
.flag-list li::before{content:"!";position:absolute;left:0;top:.35em;width:1.25rem;height:1.25rem;border-radius:999px;background:var(--color-warning);color:#fff;font-size:.8125rem;font-weight:800;line-height:1.25rem;text-align:center;}
/* Sticky side card: its grid column must stretch so position:sticky has room to travel */
.content-grid > :last-child{align-self:stretch;}
/* Form controls: inputs/selects inherit token sizing even where V4 defaults set 12px */
.elementor .form-input{height:auto;}
.elementor select.form-input{appearance:auto;}/* End custom CSS */