/* Made by Swerve 2.1 — calm, consistent, premium visual hierarchy */
:root{--swerve-content-width:1160px;--swerve-focus:#14b8a6}
.container{max-width:var(--swerve-content-width);margin-inline:auto}
body{overflow-x:clip}
main :is(h1,h2,h3){text-wrap:balance}
main :is(p,li){overflow-wrap:break-word}
.section{padding-block:clamp(62px,7vw,104px)}
.section-heading{align-items:end;gap:26px;margin-bottom:clamp(28px,3.8vw,46px)}
.section-heading h2{margin-top:12px}
.page-hero{padding-block:clamp(70px,8vw,105px)}
.page-hero h1{max-width:900px;font-size:clamp(2.65rem,5.1vw,4.7rem);line-height:1.08}
.page-hero p{max-width:650px;line-height:1.7}
.services-grid,.feature-tiles,.work-grid,.plan-grid{gap:clamp(14px,2vw,24px)}
.service-card,.feature-tile,.plan-card,.directory-card,.article-card,.work-card{min-width:0}
.service-card,.feature-tile,.plan-card,.directory-card{border-radius:21px}
.page-rich-content,.prose{max-width:780px;margin-inline:auto}
.page-rich-content :is(img,video,iframe){max-width:100%;height:auto}
.sgs-theme-promo .sgs-promo-art{box-shadow:0 24px 60px #0b122026}
.btn,.sgs-button{font-weight:700}
.site-header :is(a,button):focus-visible,.site-footer :is(a,button):focus-visible,main :is(a,button,input,textarea,select):focus-visible{outline:3px solid var(--swerve-focus);outline-offset:3px}
.site-footer .footer-main :is(a.btn,a.btn:hover,a.btn:focus-visible){text-decoration:none}
.site-footer a.btn.btn-light,.site-footer a.btn.btn-light:hover{color:#11223a!important}
.site-footer a.btn.btn-blue,.site-footer a.btn.btn-blue:hover{color:#fff!important}
.work-image img{aspect-ratio:1.45;object-fit:cover}
/* Content stays inside a reliable container; decorative section backgrounds may span the viewport. */
.section>.container,.page-hero>.container,.site-footer>.container{max-width:var(--swerve-content-width)}
@media(max-width:820px){.section{padding-block:clamp(54px,7vw,76px)}.page-hero{padding-block:72px}.section-heading{align-items:start}}
@media(max-width:540px){.container{width:calc(100% - 34px)}.hero h1{font-size:clamp(2.55rem,10.1vw,3.6rem)}.page-hero h1{font-size:clamp(2.4rem,10vw,3.55rem)}.section h2{font-size:clamp(2rem,7vw,2.8rem)}.btn{max-width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.btn,.feature-tile,.work-card{transition:none!important;transform:none!important}}
/* Page transitions use an unobtrusive top-edge indicator, never an overlay that
   could obscure forms when navigation fails. The initial slow-load skeleton
   remains available with its existing 2.2-second failsafe. */
html.swerve-page-leaving .swerve-page-loader{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
html.swerve-page-leaving body::before{content:"";position:fixed;z-index:99999;top:0;left:0;height:3px;width:100%;pointer-events:none;background:linear-gradient(90deg,#18c7bf,#2563eb,#9bdfff);transform-origin:left center;animation:swerve-top-progress .9s ease both}
@keyframes swerve-top-progress{from{transform:scaleX(.05)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){html.swerve-page-leaving body::before{animation:none}}

/* v2.2.1: Retire the blocking page loader. Never render the old overlay,
   even if stale cached HTML still contains it. Only the top progress line remains. */
#swerve-page-loader, .swerve-page-loader { display:none!important; opacity:0!important; visibility:hidden!important; pointer-events:none!important; }
html.swerve-preload-visible body { opacity:1!important; visibility:visible!important; }
/* Keep only one support affordance inside the secure client workspace.
   Client support tickets replace floating public chat / bug report widgets. */
body.sgs-standalone-body :is(.pac-launch,.pac-panel,.swm-report-launch,.swm-report-modal,#swm-report-launch,#swm-report-modal) { display:none!important; }

/* v2.2.3: Do not override the independently controlled Ask Swerve chat launcher.
   The monitor report button is placed on the left; privacy preferences live
   in the footer. All public floating controls retain independent ownership. */
body:not(.sgs-standalone-body):has(#swerve-analytics-consent:not([hidden])) #swm-report-launch {
  visibility:hidden!important;pointer-events:none!important;
}
