/* Service visuals and shared footer; existing page styles remain untouched. */
.bg-sv{--sx:0;--sy:0;position:relative;min-width:0;perspective:1100px;color:hsl(var(--foreground));touch-action:pan-y pinch-zoom}
.bg-sv-eyebrow{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.16em;font-weight:700;color:hsl(var(--primary));margin-bottom:9px}
.bg-sv-flow{max-width:520px;margin:auto;padding:24px 20px;isolation:isolate}
.bg-flow-orbit{position:absolute;inset:12% 4%;border:1px solid hsl(var(--primary)/.15);border-radius:50%;transform:rotate(-24deg);z-index:-1;background:radial-gradient(ellipse,hsl(var(--primary)/.07),transparent 70%)}
.bg-flow-card{position:relative;display:flex;gap:18px;align-items:flex-start;padding:22px 24px;border:1px solid hsl(var(--border));border-radius:20px;background:hsl(var(--card)/.96);box-shadow:0 18px 42px -25px #0005,0 1px 0 hsl(var(--primary)/.12);transition:transform .65s cubic-bezier(.2,.7,.2,1);transform:rotateX(calc(var(--sy)*-5deg)) rotateY(calc(var(--sx)*7deg)) translateX(calc(var(--sx)*12px))}
.bg-flow-card h3{font-size:18px;line-height:1.35;font-weight:650;letter-spacing:-.025em;margin:0 0 12px}
.bg-flow-number{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border:1px solid hsl(var(--primary)/.25);border-radius:50%;font-size:11px;color:hsl(var(--primary));background:hsl(var(--primary)/.07)}
.bg-flow-find{margin-right:44px}.bg-flow-trust{margin-left:30px}.bg-flow-action{margin:0 12px;border-color:hsl(var(--primary)/.3);box-shadow:0 18px 48px -30px hsl(var(--primary)/.45)}
.bg-flow-connector{text-align:center;color:hsl(var(--primary)/.65);height:30px;font-size:22px;line-height:30px}
.bg-flow-search{padding:9px 12px;border:1px solid hsl(var(--border));border-radius:9px;font-size:12px;color:hsl(var(--muted-foreground));background:hsl(var(--background))}.bg-flow-search span{font-size:20px;margin-right:8px}
.bg-flow-chips{display:flex;flex-wrap:wrap;gap:6px}.bg-flow-chips span{padding:5px 8px;background:hsl(var(--muted)/.65);border-radius:6px;font-size:10px;color:hsl(var(--muted-foreground))}
.bg-roof-window{border:1px solid hsl(var(--border));border-radius:15px;overflow:hidden;background:hsl(var(--card));box-shadow:0 25px 55px -28px #0006,0 0 35px -24px hsl(var(--primary)/.35);transform:rotateX(calc(var(--sy)*-5deg)) rotateY(calc(var(--sx)*7deg));transition:transform .65s cubic-bezier(.2,.7,.2,1)}
.bg-window-bar{display:flex;justify-content:space-between;padding:11px 13px;font-size:8px;color:hsl(var(--muted-foreground));background:hsl(var(--muted)/.5);border-bottom:1px solid hsl(var(--border))}.bg-window-bar>span:first-child{letter-spacing:3px;opacity:.6}
.bg-roof-nav{padding:14px;display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:8px}.bg-roof-nav strong{font-size:11px;letter-spacing:.04em}.bg-roof-nav strong span{color:hsl(var(--primary))}
.bg-roof-hero{position:relative;min-height:200px;display:flex;align-items:flex-end;padding:22px 18px;color:white;background:#202820}.bg-roof-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.bg-roof-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#101b17dd,#101b1720)}.bg-roof-hero>div{position:relative;z-index:1}.bg-roof-hero>div>span{font-size:7px;letter-spacing:.13em}.bg-roof-hero h3{font-size:25px;line-height:1.15;letter-spacing:-.04em;font-weight:700;margin:10px 0 16px;color:#fff}
.bg-preview-actions{display:flex;gap:7px;flex-wrap:wrap}.bg-preview-actions>span{font-size:9px;line-height:1.4;padding:9px 11px;background:#ff7800;color:#151515;border-radius:6px;font-weight:700}.bg-preview-actions>span+span{background:hsl(var(--card));color:hsl(var(--foreground));border:1px solid hsl(var(--border))}
.bg-roof-content{padding:15px}.bg-roof-trust{display:flex;gap:10px;align-items:center;padding:0 0 13px;border-bottom:1px solid hsl(var(--border))}.bg-roof-trust>span{color:hsl(var(--primary));font-size:14px;letter-spacing:1px}.bg-roof-trust strong,.bg-roof-work strong{display:block;font-size:10px;font-weight:650}.bg-roof-trust small,.bg-roof-work small{display:block;font-size:8px;color:hsl(var(--muted-foreground));margin-top:3px}
.bg-roof-services{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:14px 0}.bg-roof-services span{padding:12px 5px;text-align:center;font-size:9px;border:1px solid hsl(var(--border));border-radius:7px;background:hsl(var(--muted)/.3)}.bg-roof-area{font-size:9px;color:hsl(var(--muted-foreground));line-height:1.7}.bg-roof-area>span{color:hsl(var(--primary));font-size:16px}.bg-roof-work{margin-top:12px;display:flex;gap:12px;align-items:center}.bg-roof-work img{width:80px;height:46px;object-fit:cover;border-radius:5px}.bg-preview-note{font-size:10px;line-height:1.5;text-align:center;color:hsl(var(--muted-foreground));margin:16px 0 0}
.bg-sv-mobile{padding:18px 12px 0;isolation:isolate}.bg-mobile-halo{position:absolute;inset:10% -8%;z-index:-1;background:radial-gradient(ellipse,hsl(var(--primary)/.12),transparent 65%)}.bg-mobile-device{width:278px;max-width:100%;margin:auto;border:6px solid hsl(var(--foreground)/.8);outline:1px solid hsl(var(--border));border-radius:41px;padding:27px 6px 17px;position:relative;overflow:hidden;background:hsl(var(--card));box-shadow:15px 28px 50px -22px #0006,0 0 24px -16px hsl(var(--primary));transform:rotateY(calc(-7deg + var(--sx)*10deg)) rotateX(calc(var(--sy)*-6deg));transition:transform .7s cubic-bezier(.2,.7,.2,1)}.bg-mobile-island{position:absolute;top:8px;left:50%;transform:translateX(-50%);height:10px;width:65px;border-radius:30px;background:hsl(var(--foreground)/.85)}.bg-mobile-top{padding:9px 12px 15px;display:flex;justify-content:space-between;font-size:9px}.bg-mobile-photo{position:relative;height:176px;background:#17221c}.bg-mobile-photo img{width:100%;height:100%;object-fit:cover;opacity:.55}.bg-mobile-photo h3{position:absolute;bottom:17px;left:15px;color:#fff;font-size:24px;line-height:1.15;font-weight:700;letter-spacing:-.035em}.bg-mobile-content{padding:16px 13px 19px}.bg-mobile-content .bg-preview-actions{display:grid;grid-template-columns:1fr;gap:7px;margin-bottom:12px}.bg-mobile-content .bg-preview-actions>span{display:flex;align-items:center;justify-content:center;min-height:38px;text-align:center;padding:10px 12px;border-radius:8px;font-size:10px;font-weight:600}.bg-mobile-content .bg-preview-actions>span:first-child{border:1px solid hsl(var(--border));background:hsl(var(--background)/.55)}.bg-mobile-content .bg-preview-actions>span:last-child{background:hsl(var(--primary));color:hsl(var(--primary-foreground));box-shadow:0 8px 16px -11px hsl(var(--primary))}.bg-mobile-content .bg-preview-actions:after{content:"Tell us what you need";display:block;border:1px solid hsl(var(--border));border-radius:8px;padding:10px 12px;color:hsl(var(--muted-foreground));font-size:10px;background:hsl(var(--background)/.35)}.bg-mobile-content .bg-roof-trust{display:block;padding:15px 0}.bg-mobile-content h4{font-size:11px;font-weight:700;margin:15px 0 9px}.bg-mobile-services{display:grid;gap:6px}.bg-mobile-services>span{font-size:10px;display:flex;justify-content:space-between;padding:9px;border:1px solid hsl(var(--border));border-radius:7px}.bg-mobile-services b{color:hsl(var(--primary));font-weight:400}.bg-mobile-content .bg-roof-area{margin-top:14px}.bg-mobile-tag{position:absolute;right:-5px;top:67%;background:hsl(var(--card)/.96);border:1px solid hsl(var(--primary)/.25);padding:12px 14px;border-radius:12px;font-size:10px;box-shadow:0 15px 30px -20px #0007;transform:translateX(calc(var(--sx)*-14px));transition:transform .7s}
.bg-managed{max-width:1152px;margin:20px auto 80px;padding:40px 24px;color:hsl(var(--foreground))}.bg-managed-heading{max-width:680px;margin:0 auto 40px;text-align:center}.bg-managed-heading h2{font-size:clamp(28px,3vw,38px);line-height:1.15;letter-spacing:-.035em;font-weight:700;margin:0 0 18px}.bg-managed-heading>p{font-size:17px;line-height:1.8;color:hsl(var(--muted-foreground))}.bg-managed-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.bg-managed-grid article{padding:26px 22px;border:1px solid hsl(var(--border));border-top-color:hsl(var(--primary)/.3);background:linear-gradient(145deg,hsl(var(--card)),hsl(var(--primary)/.025));border-radius:17px;box-shadow:0 18px 32px -30px #0006}.bg-managed-icon{display:grid;place-items:center;border:1px solid hsl(var(--primary)/.2);color:hsl(var(--primary));background:hsl(var(--primary)/.06);border-radius:11px;width:40px;height:40px;font-size:21px;margin-bottom:24px}.bg-managed-grid h3{font-size:18px;font-weight:650;margin-bottom:12px}.bg-managed-grid p{font-size:14px;line-height:1.75;color:hsl(var(--muted-foreground))}
.bg-footer{position:relative;isolation:isolate;overflow:hidden;border-top:1px solid hsl(var(--primary)/.2);background:hsl(var(--background));color:hsl(var(--foreground))}.bg-footer:before{content:"";pointer-events:none;position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 110%,hsl(var(--primary)/.11),transparent 65%);animation:bg-footer-breathe 9s ease-in-out infinite alternate}.bg-footer-inner{max-width:1200px;margin:auto;padding:72px 32px 24px}.bg-footer-top{display:grid;grid-template-columns:1fr 1.65fr;gap:70px}.bg-footer-statement{font-size:clamp(20px,2vw,26px);line-height:1.5;letter-spacing:-.025em;max-width:370px}.bg-footer-nav{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:28px}.bg-footer-nav h2{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.13em;margin:0 0 22px;color:hsl(var(--foreground))}.bg-footer-nav a,.bg-footer-unavailable{display:table;font-size:14px;color:hsl(var(--muted-foreground));line-height:1.5;margin:0 0 13px;transition:color .2s,transform .2s}.bg-footer-nav a:hover{color:hsl(var(--primary));transform:translateX(3px)}.bg-footer-nav a:focus-visible,.bg-footer-brand:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:5px}.bg-footer-nav .bg-footer-cta{color:hsl(var(--foreground));font-weight:600}.bg-footer-cta span{color:hsl(var(--primary));margin-left:5px}.bg-footer-unavailable{opacity:.65}.bg-footer-brand{display:flex;align-items:center;gap:clamp(14px,3vw,40px);width:100%;margin:74px 0 38px;opacity:.85;position:relative}.bg-footer-icon{width:clamp(44px,11vw,125px);height:auto;border-radius:22%;flex-shrink:0}.bg-footer-wordmark{width:calc(100% - clamp(44px,11vw,125px) - clamp(14px,3vw,40px));max-width:880px;height:auto;min-width:0;filter:invert(1) hue-rotate(180deg)}.dark .bg-footer-wordmark{filter:none}.bg-footer-bottom{border-top:1px solid hsl(var(--border));padding-top:22px;font-size:12px;color:hsl(var(--muted-foreground))}
@keyframes bg-footer-breathe{from{opacity:.45}to{opacity:1}}@keyframes bg-service-float{0%,100%{translate:0 0}50%{translate:0 -4px}}
@media(max-width:1023px){.bg-managed-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bg-footer-top{grid-template-columns:1fr;gap:40px}.bg-footer-statement{max-width:550px}.bg-flow-action,.bg-mobile-device{animation:bg-service-float 7s ease-in-out infinite}.bg-mobile-tag{right:0}.bg-sv-flow{width:100%}}
@media(max-width:600px){.bg-flow-card{padding:18px 15px;gap:12px}.bg-flow-find{margin-right:18px}.bg-flow-trust{margin-left:14px}.bg-flow-card h3{font-size:16px}.bg-sv-flow{padding:12px 0}.bg-managed{padding:30px 20px;margin-bottom:50px}.bg-managed-grid{grid-template-columns:1fr}.bg-managed-grid article{padding:24px}.bg-managed-icon{margin-bottom:16px}.bg-footer-inner{padding:48px 24px 22px}.bg-footer-nav{grid-template-columns:1fr 1fr;gap:26px 16px}.bg-footer-brand{margin:50px 0 28px}.bg-footer-statement{font-size:22px}.bg-sv-roof{max-width:450px;margin:auto}.bg-sv-mobile{max-width:350px;margin:auto}.bg-mobile-tag{right:-2px;font-size:9px}.bg-roof-hero h3{font-size:26px}}
@media(prefers-reduced-motion:reduce){.bg-sv *,.bg-footer:before,.bg-footer *{animation:none!important;transition:none!important}.bg-flow-card,.bg-roof-window,.bg-mobile-device,.bg-mobile-tag{transform:none!important}}

/* Primary footer action, scoped independently of the navigation links. */
.bg-footer-nav .bg-footer-cta {
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  max-width:100%;min-height:48px;padding:13px 18px;
  border:1px solid rgba(255,120,0,.35);border-radius:12px;
  background:linear-gradient(115deg,#ff861f,#ffb453);color:#191919;
  font-size:14px;font-weight:700;line-height:1.4;text-align:center;
  box-shadow:0 5px 18px -7px rgba(255,120,0,.5);
  transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;
}
.bg-footer-nav .bg-footer-cta span {color:inherit;margin-left:0;flex-shrink:0}
.bg-footer-nav .bg-footer-cta:hover {
  color:#191919;transform:translateY(-2px);filter:brightness(1.04);
  box-shadow:0 9px 24px -7px rgba(255,120,0,.6);
}
.bg-footer-nav .bg-footer-cta:active {transform:translateY(0)}
@media(prefers-reduced-motion:reduce) {
  .bg-footer-nav .bg-footer-cta:hover {transform:none}
}

/* Legal body only; header, navigation, theme and footer use the shared shell. */
.bg-legal-body{max-width:928px;margin:0 auto;padding:72px 24px 96px;color:hsl(var(--foreground));font-size:16px;line-height:1.8}
.bg-legal-body h1{font-size:clamp(34px,5vw,54px);line-height:1.15;letter-spacing:-.035em;font-weight:700;margin:0 0 24px}
.bg-legal-body h2{font-size:24px;line-height:1.3;letter-spacing:-.02em;font-weight:650;margin:36px 0 14px}
.bg-legal-body p,.bg-legal-body li{color:hsl(var(--muted-foreground));margin-bottom:16px}
.bg-legal-body ul{list-style:disc;padding-left:24px}
.bg-legal-body a{color:hsl(var(--primary));text-decoration:underline;text-underline-offset:3px}
.bg-legal-body .policy-note{padding:18px 20px;margin:24px 0;border:1px solid hsl(var(--primary)/.25);border-radius:12px;background:hsl(var(--primary)/.04);color:hsl(var(--muted-foreground))}
@media(max-width:600px){.bg-legal-body{padding:40px 20px 64px}.bg-legal-body h2{font-size:22px}}

/* Keep the illustrative handset at the iPhone 17 Pro's 71.9:150 body proportion.
   The page itself is uniformly scaled inside the frame, preserving a natural mobile layout. */
.bg-sv-mobile .bg-mobile-device{width:292px;aspect-ratio:71.9/150;height:auto;box-sizing:border-box}
.bg-sv-mobile .bg-mobile-device>:not(.bg-mobile-island){width:125%;zoom:.8;transform-origin:top left}
