@import url("quote-buttons-v45.css");
@import url("button-palette-v47.css");
/* A native estimate link inside the existing compact phone menu. */
#mobile-menu .mobile-estimate-link{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;width:100%;margin-top:12px;padding:11px 12px;border:1px solid #d6d6d6;border-radius:3px;background:#f5f5f5;color:#161616;font-size:11px;font-weight:800;line-height:1.5;text-transform:uppercase;letter-spacing:.04em;white-space:normal}
#mobile-menu .mobile-estimate-link:hover{background:#fff;color:#000}
#mobile-menu .mobile-estimate-link:focus-visible{outline:2px solid #fff;outline-offset:3px}

/* Keep a stable painted layer: opacity alone reveals the shortcuts.
   No display/visibility swap or spatial movement can interrupt the fade.
   JavaScript synchronizes inert and aria-hidden with the hidden state. */
@media(max-width:800px){
  body:not(:is([data-page="contact"],[data-page="terms"],[data-page="privacy"],[data-page="gift-cards"])) > .mobile-actions{
    transition:opacity 400ms ease;
    will-change:opacity;
  }
  body:not(:is([data-page="contact"],[data-page="terms"],[data-page="privacy"],[data-page="gift-cards"])):has(.inner-hero .actions,.home-hero-photo) > .mobile-actions{
    opacity:0;
    visibility:visible;
    pointer-events:none;
    transform:none;
  }
  body:not(:is([data-page="contact"],[data-page="terms"],[data-page="privacy"],[data-page="gift-cards"])):has(.inner-hero .actions,.home-hero-photo) > .mobile-actions.is-mobile-actions-visible{
    opacity:1;
    pointer-events:auto;
  }
}
/* Reduced Motion removes spatial movement, not this non-moving crossfade. */
@media(max-width:800px) and (prefers-reduced-motion:reduce){
  body:not(:is([data-page="contact"],[data-page="terms"],[data-page="privacy"],[data-page="gift-cards"])):has(.inner-hero .actions,.home-hero-photo) > .mobile-actions{
    transition:opacity 400ms ease!important;
    transform:none!important;
  }
}
