.skip-link{position:fixed;left:12px;top:12px;z-index:10001;transform:translateY(-180%);padding:10px 14px;background:#fff;color:#10233c;border:2px solid #c0392b;border-radius:4px;font-weight:700;text-decoration:none}.skip-link:focus{transform:translateY(0)}
:focus-visible{outline:3px solid #c0392b;outline-offset:3px}.baulea-consent-open{overflow:hidden}
#cookieBanner[hidden]{display:none}#cookieBanner{position:fixed;inset:0;z-index:2147483647;display:flex;align-items:flex-end;justify-content:center;padding:20px;background:rgba(15,30,48,.55);overflow:auto}#cookieBox{width:min(560px,100%);max-height:calc(100dvh - 40px);overflow:auto;background:#fff;border-radius:8px;box-shadow:0 24px 64px rgba(0,0,0,.3)}#cookieHeader{padding:18px 24px;background:#10233c;color:#fff}#cookieTitle{font-size:16px;font-weight:700}#cookieBody{padding:20px 24px}#cookieText{font-size:14px;line-height:1.55;margin:0 0 16px;color:#334155}#cookieText a{color:#10233c;text-decoration:underline}.ck-toggle{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid #d7dee5}.ck-label{font-size:14px;font-weight:600;color:#10233c}.ck-badge{font-size:12px;color:#335c43}.ck-switch{position:relative;display:block;width:46px;height:26px;flex:0 0 auto}.ck-switch input{position:absolute;opacity:0}.ck-slider{position:absolute;inset:0;border-radius:20px;background:#94a3b8;cursor:pointer}.ck-slider:before{content:'';position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;transition:transform .2s}input:checked+.ck-slider{background:#c0392b}input:checked+.ck-slider:before{transform:translateX(20px)}#cookieActions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:16px 24px;background:#f5f6f7}#cookieActions button{min-height:44px;padding:10px;border-radius:4px;font:600 14px Outfit,Arial,sans-serif;cursor:pointer}#ckNecessary,#ckSettings{border:1px solid #10233c;background:#fff;color:#10233c}#ckAll{border:1px solid #c0392b;background:#c0392b;color:#fff}.cookie-settings-link{padding:0;border:0;background:transparent;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}.lead-form-notice{font-size:12px;line-height:1.55;margin:14px 0 0;color:#51606f}.lead-form-notice a{color:inherit;text-decoration:underline}.lead-form-privacy{display:flex;gap:8px;align-items:flex-start;margin:14px 0;font-size:12px;line-height:1.45;color:#51606f}.lead-form-privacy input{margin-top:3px;accent-color:#c0392b}.lead-form-status{margin:12px 0 0;padding:10px 12px;border-left:3px solid #21586c;background:#f5f6f7;color:#10233c;font-size:14px;line-height:1.4}.lead-form-status[hidden]{display:none}.lead-form-status.is-error{border-left-color:#c0392b;background:#fff4f2;color:#7f1d1d}.baulea-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.lf-input{font-size:max(16px,1em)}
@media (max-width:560px){#cookieBanner{padding:10px}#cookieBox{max-height:calc(100dvh - 20px)}#cookieActions{grid-template-columns:1fr}#cookieBody,#cookieHeader,#cookieActions{padding-left:18px;padding-right:18px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* The inline desktop navigation uses !important. Keep the mobile override here,
   after page-level styles, so it consistently wins on every page. */
@media (max-width:1100px){
  html,body{max-width:100%;overflow-x:hidden}
  #mainHeader{width:100%;max-width:100%}
  #mainHeader .header-inner{height:64px!important;min-width:0;padding:0 16px!important;gap:12px!important}
  #mainHeader .logo{min-width:0}
  #mainHeader .logo-img{width:100px!important;height:auto}
  #mainHeader .main-nav,#mainHeader .header-btns{display:none!important}
  #mainHeader .hamburger{display:flex!important;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;margin-left:auto;border-radius:8px;background:rgba(29,53,87,.06)}
}

/* A two-column hero becomes too narrow on portrait tablets. Stack it before
   the form needs horizontal scrolling, while retaining the desktop layout
   on wider screens. */
@media (min-width:769px) and (max-width:920px){
  .hero{display:block;min-height:0}
  .hero-left{max-width:720px;margin:0 auto;padding:44px 48px 36px}
  .hero-right{height:auto;min-height:0;overflow:visible;background:#f1f4f5}
  .hero-right .hero-img,.hero-right .hero-img-overlay{display:none}
  .hero-form-wrap{position:relative;inset:auto;display:block;width:100%;max-width:580px;margin:0 auto;padding:24px}
  #homeLeadForm.hero-form-float{position:relative;width:100%;max-height:none;overflow:visible;margin:0;padding:24px;border:1px solid var(--border);border-top:3px solid var(--red);border-radius:8px;box-shadow:0 10px 28px rgba(15,30,48,.12)}
}

/* Mobile hero form: retain the complete flow instead of clipping it inside
   the desktop image container. */
@media (max-width:768px){
  .hero-right{order:0!important;height:auto!important;min-height:0;overflow:visible;background:#f1f4f5}
  .hero-right .hero-img,.hero-right .hero-img-overlay{display:none}
  .hero-form-wrap{position:relative;inset:auto;display:block;padding:16px}
  #homeLeadForm.hero-form-float{width:100%;max-height:none;overflow:visible;margin:0;padding:20px;border:1px solid var(--border);border-top:3px solid var(--red);border-radius:8px;box-shadow:0 10px 28px rgba(15,30,48,.12)}
  #homeLeadForm .urgency-badge{margin-bottom:6px;font-size:10px}
  #homeLeadForm .hff-title{font-size:17px;line-height:1.25}
  #homeLeadForm .hff-sub{margin-bottom:12px;font-size:12px}
  #homeLeadForm .step-dots{margin-bottom:12px}
  #homeLeadForm .svc-grid{gap:8px;margin-bottom:14px}
  #homeLeadForm .svc-btn{min-height:44px;padding:8px 6px;font-size:12px}
  #homeLeadForm .btn-next{min-height:48px;padding:12px}
  #homeLeadForm .form-note{margin-bottom:0}
  .hero-left{padding-bottom:32px}
}

@media (max-width:768px){
  .wa-float{right:20px;bottom:84px}
  .wa-float.is-hero-hidden{opacity:0;pointer-events:none;transform:translateY(12px)}
  .back-top{right:20px;bottom:180px}
}

/* On phones, establish the offer before asking for details: introduction,
   Google rating, then the multi-step form. */
@media (max-width:768px){
  .hero{min-height:0}
  .hero-left{display:contents}
  .hero-mobile-intro{order:1;padding:32px 20px 24px}
  .hero-right{order:2!important}
  .hero-left>.trust-row{order:3;margin:24px 20px 0}
  .hero-left>.hero-ctas{order:4;margin:16px 20px 0}
  .hero-left>.hero-note{order:5;margin:14px 20px 0;padding-bottom:32px}
}

/* The consent dialog must remain visible and clickable while page scrolling is
   intentionally locked until a visitor has made a choice. */
#cookieBanner{
  position:fixed!important;
  z-index:2147483647!important;
  clip-path:none!important;
  pointer-events:auto!important;
}

/* Keep the trust ticker moving consistently on desktop and mobile. The
   original hover and reduced-motion fallbacks could leave it looking frozen. */
.marquee-inner,.marquee-inner:hover{
  animation-name:marquee!important;
  animation-duration:32s!important;
  animation-timing-function:linear!important;
  animation-iteration-count:infinite!important;
  animation-play-state:running!important;
}

/* Service-page content must stay readable even when the optional reveal
   script is delayed or blocked. The animation is enabled only after it is
   ready to reveal elements itself. */
html:not(.baulea-reveal-ready) .reveal,
html:not(.baulea-reveal-ready) .reveal-left,
html:not(.baulea-reveal-ready) .reveal-right,
html:not(.baulea-reveal-ready) .reveal-scale{
  opacity:1!important;
  transform:none!important;
}
