/* Final shared constraints, after the component styles. */
:root{--ge-contact-clearance:calc(104px + env(safe-area-inset-bottom))}
html{scroll-padding-bottom:var(--ge-contact-clearance)}
body{padding-bottom:var(--ge-contact-clearance)}
.header:has(.site-menu[open]){z-index:90}
body:has(.site-menu[open]) .floating-specialist{visibility:hidden}
.menu-panel{padding-bottom:calc(30px + env(safe-area-inset-bottom))}
.menu-motion{display:block;width:100%;min-height:44px;margin:20px 0 0;padding:11px 14px;text-align:left;background:#171321;border:1px solid #b69ac756;color:#e4d7f1;font-size:.875rem;line-height:1.5}
.menu-motion:disabled{cursor:default;color:#beb4c9}
.floating-specialist-toggle{font-size:clamp(.875rem,3.4vw,.9375rem)}
.floating-specialist-panel{max-height:calc(100dvh - var(--ge-contact-clearance) - 24px - env(safe-area-inset-top))}
#specialist-dialog{max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}
#close-dialog{min-width:64px;min-height:44px;padding:10px}
.footer a:not(.brand){min-height:44px;display:flex;align-items:center;margin-bottom:0;padding-block:7px}
.cat-hero[data-motion-idle=true] .hero-atmosphere:before,.cat-hero[data-motion-idle=true] .hero-atmosphere:after{animation-play-state:paused!important}
html[data-ge-hidden=true] *,html[data-ge-hidden=true] *:before,html[data-ge-hidden=true] *:after{animation-play-state:paused!important}
html[data-ge-motion-paused=true] *,html[data-ge-motion-paused=true] *:before,html[data-ge-motion-paused=true] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.service-replay{display:inline-flex;align-items:center;min-height:44px;margin-top:24px;padding:10px 0;border:0;border-bottom:1px solid #b9a2df70;background:none;color:#d2baf3;font-size:.875rem;text-align:left;line-height:1.5}
.service-replay[hidden]{display:none}
.service-replay:disabled{cursor:wait;opacity:.7}
.service-replay-note{font-size:.875rem;margin:10px 0 0;max-width:38rem}
@media(max-width:800px){
  .cat-motion{position:relative;top:auto;right:auto;width:max-content;max-width:88%;margin:16px 6% 0 auto}
  .cat-hero .hero-content{padding-top:28px}
  .cat-stage{touch-action:auto}
  .floating-specialist-toggle{gap:10px;padding:14px;min-height:58px}
  #specialist-dialog{padding:26px 22px}
  #specialist-dialog h2{font-size:2rem}
}
@media(max-height:540px){
  .hood-diagram-wrap{position:static}
  .hood-scroll-grid{align-items:start}
}

/* Shared action icons must never inherit a standalone SVG's default size. */
svg.ge-action-arrow{display:inline-block;width:24px;height:16px;max-width:24px;max-height:20px;flex:0 0 24px;vertical-align:middle}
.btn>svg{width:24px;height:20px;max-width:26px;max-height:24px;flex:0 0 24px}
.btn{max-width:100%;overflow-wrap:break-word}
@media(max-width:640px){.ge-guide-actions .btn,.ge-guide-closing .btn,.ge-detail-actions .btn,.ge-home-feature .btn{min-height:48px;padding:14px 18px;gap:14px;line-height:1.4}.ge-guide-actions,.ge-detail-actions{min-width:0}.ge-guide-actions .btn,.ge-guide-closing .btn{white-space:normal}}
/* Smaller source assets for the existing mobile service gallery. */
@media(max-width:760px){.service-pest-control .service-visual{background-image:url('service-pest-640.webp')}.service-hood-cleaning .service-visual{background-image:url('hero-640.webp')}.service-mold-assessment .service-visual{background-image:url('service-mold-640.webp')}.service-air-quality-sampling .service-visual{background-image:url('service-air-640.webp')}.service-home-inspections .service-visual{background-image:url('property-collection-640.webp')}}
