
/* A1_HOUSE_BG_RELIABLE — fixed viewport house (works on iPhone Chrome) */
html:has(.a1-est-landing),
html:has(.a1-est-embed),
html.a1-on-customer-est,
body:has(.a1-est-landing),
body:has(.a1-est-embed),
body.a1-on-customer-est {
  min-height: 100% !important;
  background-color: #0f172a !important;
  background-image: none !important; /* layer paints the photo — avoids html/body iOS bugs */
  /* Kill rubber-band that slides fixed header and flashes bg above it */
  overscroll-behavior-y: none !important;
  overscroll-behavior: none !important;
  /* Instant scroll snaps — never smooth-scroll fight with fit() */
  scroll-behavior: auto !important;
}
/* Fixed layer: always fills the phone screen, never scrolls/jiggles */
#a1-cust-bg,
#a1-cust-bg.a1-cust-bg-solid {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  height: 100dvh !important;
  min-height: 100% !important;
  min-height: 100dvh !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  z-index: 0 !important;
  pointer-events: none !important;
  transform: none !important;
  -webkit-transform: none !important;
  will-change: auto !important;
  background-color: #0f172a !important;
  background-image:
    linear-gradient(
      100deg,
      rgba(15, 23, 42, 0.18) 0%,
      rgba(15, 23, 42, 0.06) 40%,
      rgba(15, 23, 42, 0) 72%
    ),
    url("/images/hero-home-permanent.jpg?v=3"),
    url("https://a1painters.com/images/hero-home-permanent.jpg?v=3") !important;
  background-size: cover, cover, cover !important;
  background-position: center center, center right, center right !important;
  background-repeat: no-repeat, no-repeat, no-repeat !important;
  background-attachment: scroll, scroll, scroll !important;
}
/* A1_HOUSE_BG_RELIABLE_END */

/**
 * Customer estimate — responsive phone / tablet UX.
 *
 * Baseline block (max-width: 767px) = large iPhone setup — DO NOT change values.
 * Additive blocks below only refine small phones and touch tablets.
 * Desktop (wide + mouse) is never targeted.
 */


/* ═══ Smooth phone scroll (background image is ONLY on html above — fills screen) ═══ */
html:has(.a1-est-landing),
body:has(.a1-est-landing),
html:has(.a1-est-embed),
body:has(.a1-est-embed),
html.a1-on-customer-est,
body.a1-on-customer-est {
  height: auto !important;
  max-height: none !important;
  min-height: 100% !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior-y: auto !important;
  overscroll-behavior-x: none !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-y !important;
}
/* Keep body solid dark — do not re-attach the house image here (that made edges-only / huge) */
body:has(.a1-est-landing),
body:has(.a1-est-embed),
body.a1-on-customer-est {
  background-color: #0f172a !important;
  background-image: none !important;
}

/* Content scrolls vertically at 1x; when .a1-paper-zoomed, finger pans the paper */
@media (max-width: 900px) {
  html.a1-on-customer-est #root,
  body.a1-on-customer-est #root,
  body:has(.a1-est-landing) #root,
  body:has(.a1-est-embed) #root,
  .a1-est-landing,
  .a1-est-embed {
    overflow-x: hidden !important;
  }
  /* 1x: page scroll. Zoomed class turns this off so pan works every time. */
  .a1-est-landing .w-full.overflow-x-auto:not(.a1-paper-zoomed),
  .a1-est-embed .w-full.overflow-x-auto:not(.a1-paper-zoomed) {
    touch-action: pan-y !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
  }
  .a1-est-landing .w-full.overflow-x-auto.a1-paper-zoomed,
  .a1-est-embed .w-full.overflow-x-auto.a1-paper-zoomed {
    touch-action: none !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }
  .a1-est-landing #estimate-document:not(.a1-paper-zoomed),
  .a1-est-embed #estimate-document:not(.a1-paper-zoomed) {
    touch-action: pan-y !important;
  }
  /*
   * Zoomed: entire white sheet + children must pan (not only thin host edge).
   * pan-y on inner divs was stealing the finger so only the rim moved the paper.
   */
  .a1-est-landing.a1-paper-zoomed,
  .a1-est-embed.a1-paper-zoomed,
  .a1-est-landing.a1-paper-zoomed .w-full.overflow-x-auto,
  .a1-est-embed.a1-paper-zoomed .w-full.overflow-x-auto,
  .a1-est-landing.a1-paper-zoomed #estimate-document,
  .a1-est-embed.a1-paper-zoomed #estimate-document,
  .a1-paper-zoomed #estimate-document,
  .a1-est-landing.a1-paper-zoomed #estimate-document *,
  .a1-est-embed.a1-paper-zoomed #estimate-document *,
  .a1-paper-zoomed #estimate-document * {
    touch-action: none !important;
    -webkit-user-select: none !important;
    user-select: none !important;
  }
}

/* Pseudo layers off — fixed #a1-cust-bg is the wallpaper */
body:has(.a1-est-landing)::before,
body:has(.a1-est-embed)::before,
body.a1-on-customer-est::before,
body:has(.a1-est-landing)::after,
body:has(.a1-est-embed)::after {
  content: none !important;
  display: none !important;
  background: none !important;
  transform: none !important;
}

body:has(.a1-est-landing) #root,
body:has(.a1-est-embed) #root,
body:has(.a1-est-landing) #root > div,
body:has(.a1-est-embed) #root > div,
body.a1-on-customer-est #root,
body.a1-on-customer-est #root > div {
  background: transparent !important;
  background-color: transparent !important;
  position: relative !important;
  z-index: 1 !important;
  min-height: 100% !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}
.a1-est-landing,
.a1-est-embed,
.a1-est-landing.min-h-screen,
.a1-est-landing.bg-muted\/20,
.a1-est-embed.bg-muted\/20,
.a1-est-landing.min-h-screen.bg-muted\/20 {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  min-height: auto !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  /* enough for browser chrome, not a long empty scroll tail */
  padding-bottom: 2.5rem !important;
}
/* Invoice: no Why Choose, minimal tail */
html.a1-invoice-view .a1-est-landing,
html.a1-invoice-view .a1-est-embed,
body.a1-invoice-view .a1-est-landing,
body.a1-invoice-view .a1-est-embed {
  padding-bottom: 1.25rem !important;
  min-height: 0 !important;
}
/* paper stays solid white — full document visible */
.a1-est-landing #estimate-document,
.a1-est-embed #estimate-document,
#estimate-document.estimate-document {
  background: #ffffff !important;
  background-color: #ffffff !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  z-index: 2 !important;
  max-height: none !important;
  overflow: visible !important;
}
.a1-est-landing #a1-your-estimate,
.a1-est-landing .w-full.overflow-x-auto,
.a1-est-landing .a1-photos-expand-box {
  position: relative !important;
  z-index: 2 !important;
  visibility: visible !important;
}

/* Desktop paper host: never clip the bottom of the estimate */
@media (min-width: 768px) {
  .a1-est-landing > div.w-full.overflow-x-auto,
  .a1-est-landing div.w-full.overflow-x-auto.flex.justify-center,
  .a1-est-landing .w-full.overflow-x-auto {
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    height: auto !important;
    max-height: none !important;
    clip-path: none !important;
    -webkit-clip-path: none !important;
  }
}

/* ═══ RED buttons only = header Get a quote (#d02127 → hover #a0181e) ═══ */
.a1-jobs-done-btn,
a.a1-jobs-done-btn,
.a1-est-sidebar .a1-jobs-done-btn,
.a1-send-to-a1-btn,
button.a1-send-to-a1-btn,
.a1-send-btn,
button.a1-send-btn,
.a1-site-header .a1-btn-primary,
.a1-site-header a.a1-btn-primary,
.a1-site-header .btn-primary,
.a1-photo-tag-btn.a1-red-btn {

  background: #d02127 !important;
  background-color: #d02127 !important;
  border: 1px solid #d02127 !important;
  border-color: #d02127 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
  filter: none !important;
  transition: background-color .15s ease, border-color .15s ease, transform .12s ease, box-shadow .15s ease !important;
}
.a1-jobs-done-btn:hover,
a.a1-jobs-done-btn:hover,
.a1-send-to-a1-btn:hover:not(:disabled),
.a1-send-btn:hover:not(:disabled),
.a1-site-header .a1-btn-primary:hover,
.a1-site-header a.a1-btn-primary:hover,
.a1-site-header .btn-primary:hover {
  background: #a0181e !important;
  background-color: #a0181e !important;
  border-color: #a0181e !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
  filter: none !important;
  transform: translateY(-2px);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.14) !important;
}
.a1-jobs-done-btn:active,
.a1-send-to-a1-btn:active:not(:disabled),
.a1-send-btn:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: none !important;
  background: #a0181e !important;
  background-color: #a0181e !important;
  border-color: #a0181e !important;
}

/* Close/Reset chip — GONE (was shifting header / whole page) */
#a1-reset-view-chip,
button#a1-reset-view-chip {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  max-width: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  position: fixed !important;
  left: -9999px !important;
  top: -9999px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/*
 * Have a Question / Tap to suggest — PHONE VIEWPORT popup only.
 * Never scaled with the estimate. Centered card on the screen.
 */
#a1-question-host-root {
  position: fixed !important;
  inset: 0 !important;
  width: 100% !important;
  width: 100vw !important;
  height: 100% !important;
  height: 100dvh !important;
  max-width: 100vw !important;
  max-height: 100dvh !important;
  margin: 0 !important;
  padding: 0 !important;
  z-index: 2147483000 !important;
  pointer-events: none !important;
  isolation: isolate !important;
  transform: none !important;
  -webkit-transform: none !important;
  zoom: 1 !important;
  font-size: 16px !important;
}
#a1-question-host-root .fixed.inset-0,
#a1-question-host-root > div {
  position: fixed !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100vw !important;
  max-height: 100dvh !important;
  z-index: 2147483646 !important;
  pointer-events: auto !important;
  transform: none !important;
  zoom: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 12px !important;
  box-sizing: border-box !important;
  background: rgba(15, 23, 42, 0.55) !important;
}
#a1-question-host-root [role="dialog"] {
  z-index: 2147483647 !important;
  position: relative !important;
  /* Compact card sized to the phone, not the zoomed paper */
  width: min(400px, calc(100vw - 24px)) !important;
  max-width: calc(100vw - 24px) !important;
  max-height: min(70dvh, 520px) !important;
  margin: 0 auto !important;
  border-radius: 1rem !important;
  background: #ffffff !important;
  pointer-events: auto !important;
  transform: none !important;
  zoom: 1 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.28) !important;
  box-sizing: border-box !important;
  padding: 1rem 1rem 1.1rem !important;
}
/* While paper is zoomed, suggest fields must still accept taps */
.a1-paper-zoomed .a1-q-field,
.a1-paper-zoomed [role="button"].a1-q-field,
.a1-est-landing.a1-paper-zoomed .a1-q-field,
.a1-est-embed.a1-paper-zoomed .a1-q-field {
  touch-action: manipulation !important;
  pointer-events: auto !important;
  -webkit-user-select: auto !important;
  user-select: auto !important;
  cursor: pointer !important;
}
html.a1-popup-open #a1-question-host-root,
body.a1-popup-open #a1-question-host-root,
html.a1-popup-open #a1-question-host-root .fixed.inset-0,
body.a1-popup-open #a1-question-host-root .fixed.inset-0 {
  z-index: 2147483646 !important;
  pointer-events: auto !important;
}
/* Header must not cover the question dialog */
html.a1-popup-open .a1-site-wrap,
body.a1-popup-open .a1-site-wrap {
  z-index: 100 !important;
}

/* Why Choose — pinned (fixed), does not move on scroll */
@media (min-width: 1024px) {
  .a1-est-sidebar,
  aside.a1-est-sidebar,
  [data-a1-est-sidebar="1"] {
    position: fixed !important;
    right: calc((var(--a1-side-col, 220px) - var(--a1-side, 160px)) / 2) !important;
    z-index: 80 !important;
  }
}

@media print {
  html:has(.a1-est-landing),
  body:has(.a1-est-landing),
  html:has(.a1-est-embed),
  body:has(.a1-est-embed) {
    background: #ffffff !important;
    background-image: none !important;
  }
  body:has(.a1-est-landing)::before,
  body:has(.a1-est-embed)::before {
    display: none !important;
  }
}




/* ═══ LOGO = a1painters.com .logo EXACT ═══ */
.a1-site-wrap {
  --a1-header-h: 4.25rem !important;
  --header-h: 4.25rem !important;
  --a1-max: 72rem !important;
  --a1-rail-pad: 1.25rem !important;
  /* Solid white — translucent was flashing house bg above header on overscroll */
  background: #ffffff !important;
  background-color: #ffffff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  overflow: visible !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 1000 !important;
  /* Keep header from sliding with rubber-band as much as possible */
  transform: translateZ(0) !important;
  -webkit-transform: translateZ(0) !important;
}
.a1-site-header,
.a1-site-header.a1-site-header {
  height: var(--header-h, 4.25rem) !important;
  overflow: visible !important;
  border-bottom: 1px solid #e4e4e7 !important;
  background: transparent !important;
}
.a1-header-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  height: var(--header-h, 4.25rem) !important;
  gap: 1rem !important;
  width: 100% !important;
  max-width: 72rem !important;
  margin: 0 auto !important;
  padding: 0 1.25rem !important;
  position: relative !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}
/* Website uses <a class="logo"> — we use both .logo and .a1-logo */
/* a1-header-left removed — logo is direct child like website */
.a1-site-header .logo,
.a1-site-header .a1-logo,
.a1-header-inner .logo,
.a1-header-inner .a1-logo {
  display: flex !important;
  align-items: center !important;
  position: relative !important;
  z-index: 1 !important;
  flex-shrink: 0 !important;
  width: 5.5rem !important;
  height: 100% !important;
  text-decoration: none !important;
  overflow: visible !important;
}
.a1-site-header .logo:hover,
.a1-site-header .a1-logo:hover {
  opacity: 0.95 !important;
}
.a1-site-header .logo img,
.a1-site-header .a1-logo img,
.a1-header-inner .logo img,
.a1-header-inner .a1-logo img {
  --logo-h: calc(var(--header-h, 4.25rem) * 1.6) !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  height: var(--logo-h) !important;
  width: auto !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  display: block !important;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.15)) !important;
  pointer-events: none !important;
}
@media (min-width: 768px) {
  .a1-site-header .logo,
  .a1-site-header .a1-logo,
  .a1-header-inner .logo,
  .a1-header-inner .a1-logo {
    width: 7rem !important;
  }
  .a1-site-header .logo img,
  .a1-site-header .a1-logo img,
  .a1-header-inner .logo img,
  .a1-header-inner .a1-logo img {
    --logo-h: calc(var(--header-h, 4.25rem) * 1.85) !important;
    top: 0 !important;
  }
}

/* Menu position = a1painters.com header HTML: logo | nav | actions */
.a1-header-inner.container,
.a1-header-inner.header-inner,
.a1-header-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  height: var(--header-h, 4.25rem) !important;
  gap: 1rem !important;
  width: 100% !important;
  max-width: 72rem !important;
  margin: 0 auto !important;
  padding: 0 1.25rem !important;
  position: relative !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}
/* Direct children like the website — no wide left wrapper */
.a1-header-inner > .logo,
.a1-header-inner > .a1-logo {
  flex: 0 0 auto !important;
}
.a1-header-inner > .a1-nav-desktop,
.a1-header-inner > .nav-desktop {
  flex: 0 0 auto !important;
}
.a1-header-inner > .a1-header-actions,
.a1-header-inner > .header-actions {
  flex: 0 0 auto !important;
  margin-left: 0 !important;
  position: relative !important;
  z-index: 6000 !important;
  pointer-events: auto !important;
}

/* ═══ ESTIMATE PHONE HAMBURGER — three lines must open all site pages ═══
 * Logo already works; menu was dead (z-index / display / no JS ownership).
 * Phone only — desktop keeps full nav; do not affect admin computer layout.
 */
@media (max-width: 899px) {
  .a1-menu-toggle,
  .a1-site-header .a1-menu-toggle,
  .a1-site-header .menu-toggle,
  .menu-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 2.75rem !important;
    height: 2.75rem !important;
    min-width: 2.75rem !important;
    min-height: 2.75rem !important;
    border: 1px solid #e4e4e7 !important;
    border-radius: 0.5rem !important;
    background: #fff !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    position: relative !important;
    z-index: 6100 !important;
    -webkit-tap-highlight-color: rgba(208, 33, 39, 0.2) !important;
    touch-action: manipulation !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  .a1-menu-toggle span,
  .menu-toggle span {
    display: block !important;
    width: 1.1rem !important;
    height: 2px !important;
    background: #0a0a0a !important;
    position: relative !important;
    pointer-events: none !important;
  }
  .a1-menu-toggle span::before,
  .a1-menu-toggle span::after,
  .menu-toggle span::before,
  .menu-toggle span::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    width: 100% !important;
    height: 2px !important;
    background: #0a0a0a !important;
  }
  .a1-menu-toggle span::before,
  .menu-toggle span::before {
    top: -5px !important;
  }
  .a1-menu-toggle span::after,
  .menu-toggle span::after {
    top: 5px !important;
  }
  /*
   * Full-screen page list under header.
   * IMPORTANT: .a1-site-wrap uses transform:translateZ(0) which traps
   * position:fixed children inside the ~68px header — only "Ho…" showed.
   * JS moves .a1-mobile-nav to document.body; these styles cover full phone.
   */
  .a1-mobile-nav,
  nav.a1-mobile-nav,
  body > .a1-mobile-nav,
  body > nav.a1-mobile-nav {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: var(--a1-header-h, 4.25rem) !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: auto !important;
    max-height: none !important;
    min-height: calc(100vh - var(--a1-header-h, 4.25rem)) !important;
    min-height: calc(100dvh - var(--a1-header-h, 4.25rem)) !important;
    background: #ffffff !important;
    z-index: 2147483000 !important;
    padding: 1rem 1.25rem 2.5rem !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    box-sizing: border-box !important;
    pointer-events: auto !important;
    transform: none !important;
    -webkit-transform: none !important;
    clip: auto !important;
    clip-path: none !important;
    -webkit-clip-path: none !important;
    contain: none !important;
  }
  .a1-mobile-nav:not(.a1-open):not(.open) {
    display: none !important;
    visibility: hidden !important;
  }
  .a1-mobile-nav.a1-open,
  .a1-mobile-nav.open,
  nav.a1-mobile-nav.a1-open,
  nav.a1-mobile-nav.open,
  body > .a1-mobile-nav.a1-open,
  body > nav.a1-mobile-nav.a1-open {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  .a1-mobile-nav a {
    display: block !important;
    padding: 0.95rem 0 !important;
    border-bottom: 1px solid #e4e4e7 !important;
    color: #0a0a0a !important;
    font-weight: 600 !important;
    font-size: 1.1rem !important;
    text-decoration: none !important;
    min-height: 2.75rem !important;
    line-height: 1.35 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }
  .a1-mobile-nav a:hover,
  .a1-mobile-nav a:active {
    color: #d02127 !important;
  }
  /* Header stays tappable above paper; no transform trap while menu open */
  .a1-site-wrap {
    z-index: 2147482900 !important;
    overflow: visible !important;
    pointer-events: auto !important;
  }
  body.a1-est-nav-open .a1-site-wrap,
  html.a1-est-nav-open .a1-site-wrap {
    transform: none !important;
    -webkit-transform: none !important;
  }
  .a1-site-header,
  .a1-header-inner {
    pointer-events: auto !important;
    overflow: visible !important;
  }
  body.a1-est-nav-open,
  html.a1-est-nav-open {
    overflow: hidden !important;
  }
  /* Estimate buttons sit under the white menu panel (do not clip it) */
  body.a1-est-nav-open #a1-your-estimate,
  body.a1-est-nav-open .a1-est-landing,
  body.a1-est-nav-open #estimate-document {
    z-index: 1 !important;
  }
}
/* Back link does not shift menu (absolute next to logo) */
.a1-header-inner > .a1-back-in-header {
  position: absolute !important;
  left: calc(5.5rem + 0.5rem) !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 3 !important;
  margin: 0 !important;
}
@media (min-width: 768px) {
  .a1-header-inner > .a1-back-in-header {
    left: calc(7rem + 0.5rem) !important;
  }
}
@media (min-width: 900px) {
  .a1-nav-desktop,
  .a1-site-header .nav-desktop,
  .a1-header-inner > .nav-desktop {
    display: flex !important;
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
  }
  .a1-header-phone,
  .header-phone {
    display: inline-flex !important;
  }
  .a1-menu-toggle,
  .menu-toggle {
    display: none !important;
  }
}

/* ═══ HEADER CLEARANCE — simple ═══ */
.a1-site-wrap {
  --a1-header-h: 4.25rem !important;
  --header-h: 4.25rem !important;
}
/* In-flow spacer = fixed header height. Starts at top of page (under fixed bar). */
.a1-site-spacer,
div.a1-site-spacer,
.a1-site-spacer.no-print {
  display: block !important;
  width: 100% !important;
  height: 4.25rem !important;
  min-height: 4.25rem !important;
  max-height: 4.25rem !important;
  flex: 0 0 4.25rem !important;
  flex-shrink: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
  visibility: visible !important;
  box-sizing: border-box !important;
  position: relative !important;
}
/* Room under header for hanging logo + content (buttons sit below bar) */
.a1-est-landing:not(.a1-est-embed) {
  --a1-header-bar: 4.25rem !important;
  --a1-logo-hang: 2.55rem !important;
  padding-top: var(--a1-logo-hang) !important;
  box-sizing: border-box !important;
}
.a1-est-landing.a1-has-spacer:not(.a1-est-embed) {
  padding-top: var(--a1-logo-hang) !important;
}
@media (min-width: 768px) {
  .a1-est-landing:not(.a1-est-embed) {
    --a1-logo-hang: 3.6125rem !important;
  }
}
@media print {
  .a1-site-spacer { display: none !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; }
  .a1-est-landing:not(.a1-est-embed) { padding-top: 0 !important; }
}

/* ═══ BASELINE: phones up to 767px (large iPhone — leave as-is) ═══ */
@media screen and (max-width: 767px) {
  html:has(.a1-est-landing),
  html:has(.a1-est-embed),
  body:has(.a1-est-landing),
  body:has(.a1-est-embed) {
    overflow-x: hidden !important;
    max-width: 100% !important;
    overscroll-behavior-x: none !important;
  }

  .a1-est-landing,
  .a1-est-embed {
    --a1-group-left: 0px !important;
    --a1-group-w: 100% !important;
    --a1-side-col: 0px !important;
    --a1-group-gap: 0px !important;
    /* logo-hang matches website */

    overflow-x: hidden !important;
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    /* 10px hero edge stop */
    padding-left: 10px !important;
    padding-right: 10px !important;
    /* spacer provides header gap; keep small extra */
    /* was 0.5rem - use HEADER CLEARANCE */
    /* Room past Why Choose so bottom is reachable above browser chrome */
    padding-bottom: 5.5rem !important;
    box-sizing: border-box !important;
    align-items: stretch !important;
    min-height: auto !important;
    height: auto !important;
    /* vertical page scroll only — no browser pinch on chrome/hero */
    touch-action: pan-y;
    overscroll-behavior-x: none;
    overscroll-behavior-y: auto;
  }

  html:has(.a1-est-landing),
  html:has(.a1-est-embed),
  body:has(.a1-est-landing),
  body:has(.a1-est-embed) {
    height: auto !important;
    min-height: 100% !important;
    -webkit-overflow-scrolling: touch;
  }

  .a1-est-landing #a1-your-estimate,
  .a1-est-embed #a1-your-estimate,
  .a1-est-landing .w-full.overflow-x-auto,
  .a1-est-embed .w-full.overflow-x-auto,
  .a1-est-landing .a1-photos-expand-box,
  .a1-est-embed .a1-photos-expand-box,
  .a1-est-landing .a1-est-sidebar,
  .a1-est-embed .a1-est-sidebar {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    left: auto !important;
    right: auto !important;
    box-sizing: border-box !important;
  }

  /* Action bar — always 2-across wrap (never a single vertical stack) */
  .a1-est-landing #a1-your-estimate,
  .a1-est-embed #a1-your-estimate {
    position: relative !important;
    order: 1 !important;
    z-index: 20 !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    align-content: center !important;
    gap: 0.4rem 0.45rem !important;
    padding: 1.45rem 1.15rem !important;
    /* A1_BAR_TO_PAPER_GAP — ~12px under buttons, then paper (not a huge hole) */
    margin-bottom: 12px !important;
    background: #ffffff !important;
    border: 1px solid #e4e4e7 !important;
    border-radius: 1rem !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06) !important;
  }

  /*
   * Default child sizing — PHONE_ACTION_BAR_V2 below overrides:
   * top 3 sign-gate = 33% each; bottom Photos + Question = 50% each.
   */
  .a1-est-landing #a1-your-estimate > button,
  .a1-est-landing #a1-your-estimate > .a1-have-q-wrap,
  .a1-est-embed #a1-your-estimate > button,
  .a1-est-embed #a1-your-estimate > .a1-have-q-wrap {
    min-width: 0 !important;
    padding: 0.4rem 0.3rem !important;
    margin: 0 !important;
    border-radius: 0.75rem !important;
    box-sizing: border-box !important;
  }

  .a1-est-landing #a1-your-estimate > .a1-have-q-wrap > button,
  .a1-est-embed #a1-your-estimate > .a1-have-q-wrap > button,
  .a1-est-landing #a1-your-estimate .a1-have-q-btn,
  .a1-est-embed #a1-your-estimate .a1-have-q-btn {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0.4rem 0.3rem !important;
    border-radius: 0.75rem !important;
  }

  .a1-est-landing #a1-your-estimate .w-16,
  .a1-est-landing #a1-your-estimate .sm\:w-20,
  .a1-est-embed #a1-your-estimate .w-16,
  .a1-est-embed #a1-your-estimate .sm\:w-20 {
    width: 2.2rem !important;
    height: 2.2rem !important;
    margin-bottom: 0.28rem !important;
  }

  .a1-est-landing #a1-your-estimate .w-8,
  .a1-est-landing #a1-your-estimate .sm\:w-10,
  .a1-est-embed #a1-your-estimate .w-8,
  .a1-est-embed #a1-your-estimate .sm\:w-10 {
    width: 1.1rem !important;
    height: 1.1rem !important;
  }

  .a1-est-landing #a1-your-estimate span.font-semibold,
  .a1-est-embed #a1-your-estimate span.font-semibold {
    font-size: 0.65rem !important;
    line-height: 1.15 !important;
  }

  /*
   * Photos panel used to be order:2 BETWEEN buttons and paper → huge empty gap.
   * Paper is order:2 now; photos sit after Why Choose (order:4).
   */
  .a1-est-landing .a1-photos-expand-box,
  .a1-est-embed .a1-photos-expand-box {
    order: 4 !important;
    border-radius: 1rem !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
  }

  /* Kill min-h-screen tails that push paper down under the 5 buttons */
  .a1-est-landing.min-h-screen,
  .a1-est-landing .min-h-screen,
  .a1-est-embed .min-h-screen {
    min-height: 0 !important;
  }
  .a1-est-landing,
  .a1-est-embed {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    row-gap: 0 !important;
  }
  /* Paper host directly under action bar */
  .a1-est-landing .w-full.overflow-x-auto,
  .a1-est-embed .w-full.overflow-x-auto {
    order: 2 !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  .a1-est-landing .a1-est-sidebar,
  .a1-est-embed .a1-est-sidebar {
    order: 3 !important;
  }

  /*
   * Project photos (mobile only — desktop unchanged):
   * - "Tag as" centered on its own row at the top
   * - Before / After / Receipts / Issue fit in a 2×2 grid (nothing off-screen)
   * - Hide drag-and-drop strip (phones use Upload Photo only)
   */
  .a1-est-landing .a1-photos-expand-box > div,
  .a1-est-embed .a1-photos-expand-box > div {
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }

  .a1-est-landing .a1-photos-expand-box .flex.flex-col,
  .a1-est-embed .a1-photos-expand-box .flex.flex-col {
    width: 100% !important;
    max-width: 100% !important;
    gap: 0.65rem !important;
  }

  /* Row that holds "Tag as" + 4 tag buttons */
  .a1-est-landing .a1-photos-expand-box .flex.items-center.gap-2,
  .a1-est-embed .a1-photos-expand-box .flex.items-center.gap-2 {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.4rem !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    flex-wrap: nowrap !important;
  }

  /* "Tag as" — full width, centered, single line, top middle */
  .a1-est-landing .a1-photos-expand-box .flex.items-center.gap-2 > span,
  .a1-est-embed .a1-photos-expand-box .flex.items-center.gap-2 > span {
    grid-column: 1 / -1 !important;
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    white-space: nowrap !important;
    font-size: 0.7rem !important;
    letter-spacing: 0.06em !important;
    margin: 0 0 0.15rem 0 !important;
    padding: 0.15rem 0 !important;
  }

  /* Four tag buttons — equal cells, fully on screen */
  .a1-est-landing .a1-photos-expand-box .flex.items-center.gap-2 > button,
  .a1-est-embed .a1-photos-expand-box .flex.items-center.gap-2 > button {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    justify-content: center !important;
    text-align: center !important;
    padding: 0.5rem 0.25rem !important;
    font-size: 0.62rem !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
  }

  /* Upload Photo — full width under tags */
  .a1-est-landing .a1-photos-expand-box .flex.flex-col > button,
  .a1-est-embed .a1-photos-expand-box .flex.flex-col > button,
  .a1-est-landing .a1-photos-expand-box .flex.flex-col.sm\:flex-row > button,
  .a1-est-embed .a1-photos-expand-box .flex.flex-col.sm\:flex-row > button {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    justify-content: center !important;
  }

  /* No drag-and-drop zone on phone (Upload Photo is enough) */
  .a1-est-landing .a1-photos-expand-box .text-center.py-4.rounded-lg,
  .a1-est-embed .a1-photos-expand-box .text-center.py-4.rounded-lg {
    display: none !important;
  }

  /*
   * Paper host = fixed visual window only (JS sets exact height).
   * NEVER height:auto here — that draws a full unscaled white page behind the sheet.
   */
  .a1-est-landing .w-full.overflow-x-auto,
  .a1-est-embed .w-full.overflow-x-auto {
    order: 2 !important; /* directly under 5 buttons */
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    touch-action: pan-y !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 0 0.35rem 0 !important;
    zoom: normal !important;
    -webkit-user-select: none;
    user-select: none;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border-radius: 1rem !important;
    overflow: hidden !important;
    overflow-x: hidden !important;
    overflow-y: hidden !important;
    clip-path: inset(0 round 1rem) !important;
    -webkit-clip-path: inset(0 round 1rem) !important;
    isolation: isolate !important;
    contain: layout paint !important;
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }
  /* Kill React min-h-screen empty tail under content */
  .a1-est-landing.min-h-screen,
  .a1-est-landing {
    min-height: 0 !important;
    height: auto !important;
    padding-bottom: 2rem !important;
  }

  /* Paper card keeps its own radius; host clip is what you see while panning */
  .a1-est-landing #estimate-document.estimate-document,
  .a1-est-embed #estimate-document.estimate-document,
  .a1-est-landing .estimate-document,
  .a1-est-embed .estimate-document {
    border-radius: 1rem !important;
  }

  /*
   * Contact block: paper is 1000px scaled — viewport is phone-width so Tailwind
   * lg: never applies. Force original side-by-side (name/address | phones/emails).
   */
  .a1-est-landing #estimate-document .contact-info-grid,
  .a1-est-embed #estimate-document .contact-info-grid,
  .a1-est-landing .estimate-document .contact-info-grid,
  .a1-est-embed .estimate-document .contact-info-grid {
    display: grid !important;
    /* Address ~65% | phones/emails ~35% */
    grid-template-columns: minmax(0, 65%) minmax(0, 35%) !important;
    gap: 0.75rem !important;
    align-items: stretch !important;
    width: 100% !important;
  }
  .a1-est-landing #estimate-document .contact-info-grid > div,
  .a1-est-embed #estimate-document .contact-info-grid > div {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  /* Don't let admin form-mobile wrap break this section */
  .a1-est-landing .estimate-document > .w-full.bg-white.flex,
  .a1-est-embed .estimate-document > .w-full.bg-white.flex {
    flex-wrap: nowrap !important;
  }

  /* Buttons / photos / sidebar: taps + page scroll only, never pinch-scale */
  .a1-est-landing #a1-your-estimate,
  .a1-est-embed #a1-your-estimate,
  .a1-est-landing .a1-photos-expand-box,
  .a1-est-embed .a1-photos-expand-box,
  .a1-est-landing .a1-est-sidebar,
  .a1-est-embed .a1-est-sidebar {
    touch-action: manipulation !important;
  }

  /*
   * Paper sheet: natural width from JS, scaled via transform (JS).
   * Do NOT set width:100% here — that was the v13 overlap bug.
   */
  .a1-est-landing #estimate-document.estimate-document,
  .a1-est-embed #estimate-document.estimate-document,
  .a1-est-landing .estimate-document,
  .a1-est-embed .estimate-document {
    width: var(--a1-doc-natural-w, 1000px) !important;
    min-width: var(--a1-doc-natural-w, 1000px) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 0 !important;
    /* margin-bottom set by JS (negative collapse) */
    box-sizing: border-box !important;
    border-radius: 1rem !important;
    overflow: visible !important;
    background: #ffffff !important;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.1) !important;
    border: 1px solid #e4e4e7 !important;
    zoom: normal !important;
    transform-origin: top center !important;
    -webkit-font-smoothing: antialiased;
  }

  .a1-est-landing #estimate-document .header-banner,
  .a1-est-embed #estimate-document .header-banner {
    border-radius: 1rem 1rem 0 0 !important;
    overflow: hidden !important;
  }

  .a1-est-landing .a1-est-sidebar,
  .a1-est-embed .a1-est-sidebar {
    order: 3 !important; /* under paper */
    display: block !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 12px 0 2.5rem !important;
    padding: 0 0 1.5rem 0 !important;
    top: auto !important;
    right: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  /* Phone: keep question host fixed to viewport (override any relative rules) */
  #a1-question-host-root {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    pointer-events: none !important;
  }

  html.a1-popup-open,
  body.a1-popup-open {
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }
  html.a1-popup-open #a1-question-host-root,
  body.a1-popup-open #a1-question-host-root {
    z-index: 2147483646 !important;
    pointer-events: none !important;
  }

  /* Phone overlay: center a compact card on the screen */
  #a1-question-host-root .fixed.inset-0,
  html.a1-popup-open #a1-question-host-root > div,
  body.a1-popup-open #a1-question-host-root > div {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-height: 100dvh !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
    box-sizing: border-box !important;
    padding: 12px !important;
    margin: 0 !important;
    background: rgba(15, 23, 42, 0.55) !important;
    overflow: hidden !important;
    z-index: 2147483646 !important;
    transform: none !important;
    zoom: 1 !important;
  }

  /* Compact dialog — phone-sized, not full-bleed / not estimate-scaled */
  #a1-question-host-root [role="dialog"] {
    position: relative !important;
    width: min(400px, calc(100vw - 24px)) !important;
    max-width: calc(100vw - 24px) !important;
    height: auto !important;
    margin: 0 auto !important;
    border-radius: 1rem !important;
    max-height: min(70dvh, 520px) !important;
    overflow: hidden !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    padding-top: 1rem !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    padding-bottom: max(1rem, calc(env(safe-area-inset-bottom, 0px) + 12px)) !important;
    box-sizing: border-box !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
    background: #ffffff !important;
    box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.18) !important;
    flex-shrink: 0 !important;
    /* Lift sheet ~32px (was 25 + another 7) so buttons clear Chrome footer */
    transform: translateY(-32px) !important;
  }

  #a1-question-host-root [role="dialog"]::after {
    content: none !important;
    display: none !important;
  }

  /* Action row sits above the pad (buttons fully tappable) */
  #a1-question-host-root [role="dialog"] form,
  #a1-question-host-root [role="dialog"] .flex {
    position: relative;
    z-index: 1;
  }
  #a1-question-host-root .a1-send-to-a1-btn,
  #a1-question-host-root .a1-q-cancel-btn,
  #a1-question-host-root [role="dialog"] button {
    margin-bottom: 0 !important;
  }
  #a1-question-host-root input,
  #a1-question-host-root textarea {
    font-size: 16px !important;
    min-height: 44px;
  }
  #a1-question-host-root .a1-send-to-a1-btn,
  #a1-question-host-root .a1-q-cancel-btn {
    min-height: 48px !important;
    touch-action: manipulation;
    pointer-events: auto !important;
  }

  /* Reset chip permanently disabled */
  #a1-reset-view-chip {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    width: 0 !important;
    height: 0 !important;
    opacity: 0 !important;
  }

  /* Signing: hide Why Choose; tip replaces slot. Overflow stays scrollable. */
  html.a1-signing,
  body.a1-signing {
    overscroll-behavior-x: none !important;
  }
  html.a1-signing .a1-est-landing,
  html.a1-signing .a1-est-embed,
  body.a1-signing .a1-est-landing,
  body.a1-signing .a1-est-embed {
    overscroll-behavior-x: none !important;
  }
  html.a1-signing .a1-est-sidebar,
  body.a1-signing .a1-est-sidebar,
  html.a1-signing [data-a1-est-sidebar],
  body.a1-signing [data-a1-est-sidebar] {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  /* Stable: pad draws; do not force layout grow (that made signing crazy) */
  html.a1-signing canvas.touch-none,
  html.a1-signing canvas.cursor-crosshair,
  body.a1-signing canvas.touch-none,
  body.a1-signing canvas.cursor-crosshair,
  .a1-est-landing canvas.touch-none,
  .a1-est-embed canvas.touch-none,
  .a1-est-landing canvas.cursor-crosshair,
  .a1-est-embed canvas.cursor-crosshair {
    touch-action: none !important;
    -webkit-user-select: none !important;
    user-select: none !important;
  }
  html.a1-signing [role="dialog"] canvas,
  body.a1-signing [role="dialog"] canvas {
    touch-action: none !important;
  }

  /* Tip replaces Why Choose under paper (order 99 like React sidebar). */
  #a1-sig-tip {
    -webkit-tap-highlight-color: transparent;
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    order: 99 !important;
    flex: 0 0 auto !important;
    margin: 12px 0 16px 0 !important;
    z-index: 30 !important;
    text-align: center !important;
  }
  html.a1-signing .a1-est-landing,
  html.a1-signing .a1-est-embed,
  body.a1-signing .a1-est-landing,
  body.a1-signing .a1-est-embed {
    padding-bottom: 6.5rem !important;
  }
  #a1-sig-tip .a1-sig-tip-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
  }
  #a1-sig-tip .a1-sig-tip-cancel {
    background: #fff !important;
    color: #0f172a !important;
  }
  #a1-sig-tip .a1-sig-tip-redo {
    background: #d02127 !important;
    color: #fff !important;
  }
  #a1-sig-tip .a1-sig-tip-x {
    display: none !important;
  }
}

/*
 * ═══ SMALL PHONES ONLY (≤374px) — SE / Mini class ═══
 * Does NOT apply to large iPhones (390–430px). Slightly tighter chrome only.
 */
@media screen and (max-width: 374px) {
  .a1-est-landing,
  .a1-est-embed {
    padding-left: 8px !important;
    padding-right: 8px !important;
    padding-bottom: 5rem !important;
  }

  .a1-est-landing #a1-your-estimate,
  .a1-est-embed #a1-your-estimate {
    padding: 1.1rem 0.75rem !important;
    gap: 0.35rem 0.35rem !important;
  }

  .a1-est-landing #a1-your-estimate > button,
  .a1-est-landing #a1-your-estimate > .a1-have-q-wrap,
  .a1-est-embed #a1-your-estimate > button,
  .a1-est-embed #a1-your-estimate > .a1-have-q-wrap {
    flex: 0 0 calc(50% - 0.7rem) !important;
    width: calc(50% - 0.7rem) !important;
    max-width: 7.5rem !important;
    padding: 0.35rem 0.22rem !important;
  }

  .a1-est-landing #a1-your-estimate span.font-semibold,
  .a1-est-embed #a1-your-estimate span.font-semibold {
    font-size: 0.58rem !important;
  }

  .a1-est-landing .a1-photos-expand-box .flex.items-center.gap-2 > button,
  .a1-est-embed .a1-photos-expand-box .flex.items-center.gap-2 > button {
    font-size: 0.55rem !important;
    padding: 0.42rem 0.15rem !important;
  }

  .a1-est-landing #estimate-document .contact-info-grid,
  .a1-est-embed #estimate-document .contact-info-grid,
  .a1-est-landing .estimate-document .contact-info-grid,
  .a1-est-embed .estimate-document .contact-info-grid {
    gap: 0.45rem !important;
  }

  #a1-question-host-root [role="dialog"] {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
    /* Slightly less lift so short screens keep buttons on-screen */
    transform: translateY(-20px) !important;
    padding-bottom: max(88px, calc(env(safe-area-inset-bottom, 0px) + 48px + 12px + 28px)) !important;
  }

  #a1-sig-tip .a1-sig-tip-cancel,
  #a1-sig-tip .a1-sig-tip-redo {
    padding: 8px 11px !important;
    font-size: 11px !important;
  }
}

/*
 * ═══ TOUCH TABLETS / iPads (768–1024, coarse pointer) ═══
 * Mouse desktops never match (hover: none + pointer: coarse).
 * Same customer paper-fit shell as phone; roomier padding.
 */
@media screen and (min-width: 768px) and (max-width: 1024px) and (hover: none) and (pointer: coarse) {
  html:has(.a1-est-landing),
  html:has(.a1-est-embed),
  body:has(.a1-est-landing),
  body:has(.a1-est-embed) {
    overflow-x: hidden !important;
    max-width: 100% !important;
    overscroll-behavior-x: none !important;
    height: auto !important;
    min-height: 100% !important;
    -webkit-overflow-scrolling: touch;
  }

  .a1-est-landing,
  .a1-est-embed {
    --a1-group-left: 0px !important;
    --a1-group-w: 100% !important;
    --a1-side-col: 0px !important;
    --a1-group-gap: 0px !important;
    /* logo-hang matches website */
    overflow-x: hidden !important;
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    /* was 0.75rem - use HEADER CLEARANCE */
    padding-bottom: 5.5rem !important;
    box-sizing: border-box !important;
    align-items: stretch !important;
    min-height: auto !important;
    height: auto !important;
    touch-action: pan-y;
    overscroll-behavior-x: none;
  }

  .a1-est-landing #a1-your-estimate,
  .a1-est-embed #a1-your-estimate {
    position: relative !important;
    order: 1 !important;
    z-index: 20 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 0.5rem 0.6rem !important;
    padding: 1.35rem 1.25rem !important;
    margin-bottom: 0.85rem !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    background: #ffffff !important;
    border: 1px solid #e4e4e7 !important;
    border-radius: 1rem !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06) !important;
    touch-action: manipulation !important;
  }

  .a1-est-landing #a1-your-estimate > button,
  .a1-est-landing #a1-your-estimate > .a1-have-q-wrap,
  .a1-est-embed #a1-your-estimate > button,
  .a1-est-embed #a1-your-estimate > .a1-have-q-wrap {
    flex: 0 0 calc(50% - 1rem) !important;
    width: calc(50% - 1rem) !important;
    max-width: 10rem !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .a1-est-landing .a1-photos-expand-box,
  .a1-est-embed .a1-photos-expand-box {
    order: 4 !important; /* after paper + Why Choose — not between buttons & paper */
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    border-radius: 1rem !important;
    touch-action: manipulation !important;
  }

  .a1-est-landing .w-full.overflow-x-auto,
  .a1-est-embed .w-full.overflow-x-auto {
    order: 2 !important; /* directly under 5 buttons */
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    overflow-x: hidden !important;
    overflow-y: hidden !important;
    margin: 0 0 0.5rem 0 !important;
    padding: 0 !important;
    border-radius: 1rem !important;
    background: transparent !important;
    clip-path: inset(0 round 1rem) !important;
    -webkit-clip-path: inset(0 round 1rem) !important;
    touch-action: pan-y;
  }

  .a1-est-landing #estimate-document.estimate-document,
  .a1-est-embed #estimate-document.estimate-document,
  .a1-est-landing .estimate-document,
  .a1-est-embed .estimate-document {
    width: var(--a1-doc-natural-w, 1000px) !important;
    min-width: var(--a1-doc-natural-w, 1000px) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
    border-radius: 1rem !important;
    overflow: visible !important;
    background: #ffffff !important;
    transform-origin: top center !important;
    zoom: normal !important;
  }

  .a1-est-landing #estimate-document .contact-info-grid,
  .a1-est-embed #estimate-document .contact-info-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 65%) minmax(0, 35%) !important;
    gap: 0.75rem !important;
    width: 100% !important;
  }

  .a1-est-landing .a1-est-sidebar,
  .a1-est-embed .a1-est-sidebar {
    order: 3 !important; /* under paper, with estimate */
    display: block !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0.5rem 0 2.5rem !important;
  }

  html.a1-signing .a1-est-sidebar,
  body.a1-signing .a1-est-sidebar,
  html.a1-signing [data-a1-est-sidebar],
  body.a1-signing [data-a1-est-sidebar] {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
  }

  #a1-sig-tip {
    position: static !important;
    order: 99 !important;
    width: 100% !important;
    margin: 12px 0 16px 0 !important;
  }

  /* Bottom sheet on tablet */
  html.a1-popup-open,
  body.a1-popup-open {
    overflow: hidden !important;
  }
  #a1-question-host-root .fixed.inset-0,
  html.a1-popup-open #a1-question-host-root > div,
  body.a1-popup-open #a1-question-host-root > div {
    position: fixed !important;
    inset: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    background: rgba(15, 23, 42, 0.5) !important;
    z-index: 2147483646 !important;
  }
  #a1-question-host-root [role="dialog"] {
    width: 100% !important;
    max-width: 560px !important;
    margin: 0 auto !important;
    border-radius: 1.1rem 1.1rem 0 0 !important;
    padding: 1.15rem 1.25rem !important;
    padding-bottom: max(80px, calc(env(safe-area-inset-bottom, 0px) + 48px + 20px)) !important;
    background: #fff !important;
    transform: translateY(-24px) !important;
  }
  #a1-question-host-root input,
  #a1-question-host-root textarea {
    font-size: 16px !important;
  }
}

/*
 * ═══ PHONE LANDSCAPE (short height, wide width) ═══
 * Large iPhone portrait unchanged. Landscape uses paper fit + compact bar.
 */
@media screen and (max-height: 500px) and (orientation: landscape) and (hover: none) {
  .a1-est-landing,
  .a1-est-embed {
    padding-top: var(--a1-logo-hang, 2.55rem) !important;
    padding-bottom: 3.5rem !important;
  }
  .a1-est-landing #a1-your-estimate,
  .a1-est-embed #a1-your-estimate {
    padding: 0.75rem 0.85rem !important;
  }
  #a1-question-host-root [role="dialog"] {
    max-height: 92dvh !important;
    overflow-y: auto !important;
    transform: translateY(-12px) !important;
    padding-bottom: max(56px, calc(env(safe-area-inset-bottom, 0px) + 36px)) !important;
  }
}

@media print {
  .a1-est-landing #a1-your-estimate,
  .a1-est-embed #a1-your-estimate,
  #a1-reset-view-chip {
    display: none !important;
  }

  /* Unclip paper host so full document prints (header through bottom) */
  .a1-est-landing .w-full.overflow-x-auto,
  .a1-est-embed .w-full.overflow-x-auto,
  .a1-est-landing > div.w-full.overflow-x-auto {
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    clip-path: none !important;
    -webkit-clip-path: none !important;
    transform: none !important;
  }

  .a1-est-landing #estimate-document.estimate-document,
  .a1-est-embed #estimate-document.estimate-document,
  #estimate-document.estimate-document,
  #estimate-document {
    /* transform may be set by fit-1-page JS — do not force none here */
    min-width: 0 !important;
    margin-bottom: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    box-shadow: none !important;
  }
}

/* A1_WHY_TOP_JS */
@media (min-width: 1024px) {
  .a1-est-sidebar,
  aside.a1-est-sidebar,
  [data-a1-est-sidebar="1"] {
    position: fixed !important;
    /* top set by JS to match #a1-your-estimate (the 4 buttons) */
  }
}

/* A1_PORTFOLIO_DROPDOWN — same as a1painters.com */
.a1-site-header .nav-dropdown {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
}
.a1-site-header .nav-dropdown-trigger {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.3rem !important;
  cursor: pointer !important;
}
.a1-site-header .nav-caret {
  width: 0 !important;
  height: 0 !important;
  border-left: 4px solid transparent !important;
  border-right: 4px solid transparent !important;
  border-top: 5px solid currentColor !important;
  opacity: 0.75 !important;
  margin-top: 2px !important;
}
.a1-site-header .nav-dropdown-panel {
  display: none !important;
  position: absolute !important;
  top: calc(100% + 0.35rem) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  min-width: 13.5rem !important;
  background: #fff !important;
  border: 1px solid #e4e4e7 !important;
  border-radius: 0.65rem !important;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.14) !important;
  padding: 0.4rem 0 !important;
  z-index: 200 !important;
}
.a1-site-header .nav-dropdown:hover .nav-dropdown-panel,
.a1-site-header .nav-dropdown:focus-within .nav-dropdown-panel {
  display: block !important;
}
.a1-site-header .nav-dropdown-panel a {
  display: block !important;
  margin: 0 !important;
  padding: 0.55rem 1rem !important;
  border-bottom: none !important;
  font-size: 0.92rem !important;
  font-weight: 500 !important;
  color: #0a0a0a !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}
.a1-site-header .nav-dropdown-panel a:hover {
  background: #f8fafc !important;
  color: #d02127 !important;
}
.a1-mobile-nav .mobile-nav-portfolio {
  border-bottom: 1px solid #e4e4e7 !important;
  padding: 0.25rem 0 0.5rem !important;
  margin: 0.15rem 0 0.35rem !important;
}
.a1-mobile-nav .mobile-sublink {
  display: block !important;
  padding: 0.75rem 0 0.75rem 1.1rem !important;
  font-weight: 600 !important;
  font-size: 1.05rem !important;
}

/* A1_PHOTO_RED_BTNS */
/* Project Photos red buttons = Get a quote (#d02127 → #a0181e) */
.a1-red-btn,
.a1-photo-upload-btn,
.a1-photo-create-slider-btn,
.a1-photos-expand-box .a1-red-btn,
.a1-photo-pair-bar .a1-red-btn,
.a1-photos-expand-box button.a1-photo-upload-btn,
.a1-photos-expand-box button.a1-photo-create-slider-btn {
  background: #d02127 !important;
  background-color: #d02127 !important;
  border: 1px solid #d02127 !important;
  border-color: #d02127 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
  filter: none !important;
  transition: background-color .15s ease, border-color .15s ease, transform .12s ease, box-shadow .15s ease !important;
}
.a1-red-btn:hover:not(:disabled),
.a1-photo-upload-btn:hover:not(:disabled),
.a1-photo-create-slider-btn:hover:not(:disabled),
.a1-photos-expand-box .a1-red-btn:hover:not(:disabled) {
  background: #a0181e !important;
  background-color: #a0181e !important;
  border-color: #a0181e !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
  filter: none !important;
  transform: translateY(-2px);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.14) !important;
}
.a1-red-btn:active:not(:disabled),
.a1-photo-upload-btn:active:not(:disabled),
.a1-photo-create-slider-btn:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: none !important;
  background: #a0181e !important;
  background-color: #a0181e !important;
  border-color: #a0181e !important;
}
.a1-red-btn:disabled,
.a1-photo-upload-btn:disabled,
.a1-photo-create-slider-btn:disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}


/* ═══ Accept flow: green CTA first; signature ONLY after click ═══ */
/* A1_SIG_ACCEPT_FIRST — signature block stays hidden until Accept opens it */
#estimate-document .hidden,
.estimate-document .hidden {
  display: none !important;
  visibility: hidden !important;
}
/* When React switches to flex (after Accept or already signed), show */
#estimate-document .flex-col.border-t-2:not(.hidden),
.estimate-document .flex-col.border-t-2:not(.hidden) {
  /* leave default / flex from className */
}
/* A1_SIG_ACCEPT_FIRST_END */

/* Signature / agreement block uses Tailwind "hidden" until accept mode */
#estimate-document .hidden,
.estimate-document .hidden {
  display: none !important;
}
/* Green accept button — show pre-sign only (not clipped) */
#estimate-document .print-hide,
.estimate-document .print-hide {
  /* print-hide = hide on print only; on screen stay visible */
  display: flex !important;
}
#estimate-document button.bg-green-600,
#estimate-document .bg-green-600 {
  display: inline-flex !important;
  visibility: visible !important;
  background-color: #16a34a !important; /* green-600 */
  color: #ffffff !important;
}
#estimate-document button.bg-green-600:hover,
#estimate-document .bg-green-600:hover {
  background-color: #15803d !important; /* green-700 */
}
/* After signed CONTRACT: never show "I would like to accept" again */
html.a1-signed-view #estimate-document button.bg-green-600,
body.a1-signed-view #estimate-document button.bg-green-600,
html.a1-signed-view #estimate-document .bg-green-600,
body.a1-signed-view #estimate-document .bg-green-600,
html.a1-signed-view #estimate-document button[data-a1-hide-after-sign="1"],
body.a1-signed-view #estimate-document button[data-a1-hide-after-sign="1"],
html.a1-signed-view #estimate-document [data-a1-hide-after-sign="1"],
body.a1-signed-view #estimate-document [data-a1-hide-after-sign="1"] {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
  border: 0 !important;
}
html.a1-signed-view #estimate-document .print-hide:has(button.bg-green-600),
body.a1-signed-view #estimate-document .print-hide:has(button.bg-green-600) {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
@media print {
  #estimate-document .print-hide,
  .estimate-document .print-hide {
    display: none !important;
  }
  /* Signature prints even if screen-hidden before accept */
  #estimate-document .print\:flex,
  .estimate-document .print\:flex {
    display: flex !important;
  }
}

/* ═══ ESTIMATE DOC HEADER (Header-A1) — screen + print, Cloudflare URL ═══ */
.a1-est-doc-header,
#estimate-document .header-banner,
.estimate-document .header-banner,
.header-banner {
  display: block !important;
  width: 100% !important;
  background: #ffffff !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
  overflow: visible !important;
  /* screen: room for banner without fixed height trap */
  min-height: 8rem !important;
  height: auto !important;
  max-height: none !important;
}
.a1-est-doc-header-img,
#estimate-document .header-banner img,
.estimate-document .header-banner img,
.header-banner img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 14rem !important;
  min-height: 5rem !important;
  object-fit: contain !important;
  margin: 0 !important;
  padding: 0 !important;
  visibility: visible !important;
  opacity: 1 !important;
}

@media print {
  .a1-est-doc-header,
  #estimate-document .header-banner,
  .estimate-document .header-banner,
  .header-banner,
  .pdf-header-container {
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
    overflow: visible !important;
    background: #ffffff !important;
  }
  #estimate-document .header-banner img,
  .header-banner img,
  .a1-est-doc-header-img {
    min-height: 0 !important;
    max-height: none !important;
  }
  .a1-est-doc-header-img,
  #estimate-document .header-banner img,
  .estimate-document .header-banner img,
  .header-banner img,
  .pdf-header-container img {
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    object-fit: contain !important;
  }
  .a1-est-landing .w-full.overflow-x-auto,
  .a1-est-embed .w-full.overflow-x-auto {
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
    clip-path: none !important;
    -webkit-clip-path: none !important;
    margin: 0 !important;
  }
}

/* A1_PHOTO_TAG_BTNS */
/* Reviews-like buttons (See What Other People Are Saying) */
.a1-reviews-btn,
.a1-reviews-btn-like,
button.a1-reviews-btn-like {
  background: #f8fafc !important;
  background-color: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-color: #e2e8f0 !important;
  color: #1e293b !important;
  -webkit-text-fill-color: #1e293b !important;
  opacity: 1 !important;
  filter: none !important;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .12s ease, box-shadow .15s ease !important;
  cursor: pointer !important;
}
.a1-reviews-btn:hover,
.a1-reviews-btn-like:hover,
button.a1-reviews-btn-like:hover {
  background: #f1f5f9 !important;
  background-color: #f1f5f9 !important;
  border-color: #e2e8f0 !important;
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.08) !important;
}
/* Selected tag (Before / After / Receipts / Issue) = same red as Get a quote */
.a1-photo-tag-btn.a1-photo-tag-active,
.a1-photo-tag-btn.a1-photo-tag-selected,
.a1-photo-tag-btn.a1-red-btn,
.a1-photo-tag-selected.a1-reviews-btn-like {
  background: #d02127 !important;
  background-color: #d02127 !important;
  border: 1px solid #d02127 !important;
  border-color: #d02127 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
.a1-photo-tag-btn.a1-photo-tag-active:hover,
.a1-photo-tag-btn.a1-photo-tag-selected:hover,
.a1-photo-tag-btn.a1-red-btn:hover {
  background: #a0181e !important;
  background-color: #a0181e !important;
  border-color: #a0181e !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.14) !important;
}
/* Idle (not selected) stays light */
.a1-photo-tag-btn.a1-photo-tag-idle {
  background: #f8fafc !important;
  background-color: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  color: #1e293b !important;
  -webkit-text-fill-color: #1e293b !important;
}
/* A1_PHOTO_TAG_BTNS_END */

/* A1_ACTION_BTNS_MOTION */
/* All 4 center action cards: same lift + icon scale (including Have Questions) */
#a1-your-estimate > button.group,
#a1-your-estimate > .a1-have-q-wrap,
#a1-your-estimate > button.a1-have-q-btn,
#a1-your-estimate > button.a1-have-q-wrap {
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
  overflow: visible !important;
}
#a1-your-estimate > button.group:hover,
#a1-your-estimate > .a1-have-q-wrap:hover,
#a1-your-estimate > button.a1-have-q-btn:hover,
#a1-your-estimate > button.a1-have-q-wrap:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1) !important;
}
/* Icon circle scale — match group-hover:scale-110 on all four */
#a1-your-estimate .a1-action-icon,
#a1-your-estimate > button.group > div.rounded-full,
#a1-your-estimate .a1-have-q-btn > div.rounded-full,
#a1-your-estimate .a1-have-q-wrap .rounded-full,
#a1-your-estimate button .rounded-full.bg-purple-50,
#a1-your-estimate button .rounded-full.bg-teal-50,
#a1-your-estimate button .rounded-full.bg-blue-50,
#a1-your-estimate button .rounded-full.bg-red-50,
#a1-your-estimate button .rounded-full.bg-amber-50 {
  transition: transform 0.3s ease !important;
  transform-origin: center center !important;
}
#a1-your-estimate > button.group:hover > div.rounded-full,
#a1-your-estimate > button.a1-have-q-btn:hover > div.rounded-full,
#a1-your-estimate > button.a1-have-q-wrap:hover > div.rounded-full,
#a1-your-estimate > .a1-have-q-wrap:hover .rounded-full,
#a1-your-estimate > button.group:hover .a1-action-icon,
#a1-your-estimate > button:hover .a1-action-icon {
  transform: scale(1.1) !important;
}
/* Never clip icon scale */
#a1-your-estimate,
#a1-your-estimate > * {
  overflow: visible !important;
}
/* A1_ACTION_BTNS_MOTION_END */

/* A1_PRINT_SIMPLE — logo flush to page top; keep section lines visible */
@media print {
  @page {
    size: letter portrait;
    margin: 0 !important;
  }

  /* White paper, zero top gap (spacer 4.25rem + logo-hang caused black band) */
  html,
  html body,
  html body.a1-is-printing,
  html body #root,
  html body #root > div,
  html body .a1-est-landing,
  html body .a1-est-landing.a1-est-landing,
  html body .a1-est-landing.min-h-screen,
  html body .a1-est-landing.a1-has-spacer,
  html body .a1-est-embed {
    background: #fff !important;
    background-image: none !important;
    margin: 0 !important;
    margin-top: 0 !important;
    padding: 0 !important;
    padding-top: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    display: block !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    place-content: flex-start !important;
    overflow: visible !important;
    --a1-logo-hang: 0px !important;
    --logo-hang: 0px !important;
  }
  html body::before,
  html body::after {
    display: none !important;
    content: none !important;
    height: 0 !important;
  }

  /* Dark house wallpaper — do not print as black strip above header */
  html body #a1-cust-bg,
  html body #a1-cust-bg.a1-cust-bg-solid,
  html body .a1-cust-bg {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    width: 0 !important;
  }

  /* Remove every chrome node from the print tree */
  html body #a1-your-estimate,
  html body .a1-have-q-wrap,
  html body .a1-est-sidebar,
  html body aside.a1-est-sidebar,
  html body [data-a1-est-sidebar],
  html body .a1-photos-expand-box,
  html body .a1-site-wrap,
  html body .a1-site-header,
  html body .a1-site-spacer,
  html body div.a1-site-spacer,
  html body .a1-site-spacer.no-print,
  html body .a1-mobile-nav,
  html body .no-print,
  html body .print-hide,
  html body .print-hidden,
  html body #a1-reset-view-chip,
  html body #a1-sig-tip,
  html body #a1-question-host-root,
  html body [data-sonner-toaster],
  html body .a1-reviews-overlay,
  html body #a1-proof-park-banner {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    min-height: 0 !important;
    width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    position: absolute !important;
    left: -9999px !important;
    flex: 0 0 0 !important;
  }

  /* Collapse everything under landing except the paper host (kills ~2.5" white top) */
  html body .a1-est-landing > *:not(:has(#estimate-document)),
  html body .a1-est-embed > *:not(:has(#estimate-document)) {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
  }

  html body .a1-est-landing .w-full.overflow-x-auto,
  html body .a1-est-embed .w-full.overflow-x-auto,
  html body .a1-est-landing > div.w-full.overflow-x-auto,
  html body .a1-est-landing [data-a1-dom-after-bar="1"] {
    display: block !important;
    position: static !important;
    margin: 0 !important;
    margin-top: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    transform: none !important;
    clip-path: none !important;
    -webkit-clip-path: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
  }

  /* Document logo/header at physical top of page 1 */
  html body #estimate-document,
  html body #estimate-document.estimate-document {
    display: block !important;
    position: static !important;
    top: 0 !important;
    left: 0 !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    margin-top: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
    background: #fff !important;
    transform: none !important;
    transform-origin: top left !important;
  }

  /* Prefer breaks between line-item rows (e.g. after row ~16) not mid-row */
  html body #estimate-document tr,
  html body #estimate-document .flex.items-stretch.min-h-\[36px\] {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  /* Kill screen min-height traps that leave blank above logo */
  html body #estimate-document .header-banner,
  html body #estimate-document .a1-est-doc-header,
  html body #estimate-document .header-banner img,
  html body #estimate-document .a1-est-doc-header-img,
  html body .header-banner,
  html body .header-banner img {
    display: block !important;
    margin: 0 !important;
    margin-top: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    max-height: none !important;
    height: auto !important;
    line-height: 0 !important;
    width: 100% !important;
    object-fit: fill !important;
    object-position: top left !important;
    vertical-align: top !important;
  }

  /* Print colors: keep ink. Horizontal lines only — do not touch vertical borders */
  html body #estimate-document,
  html body #estimate-document * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }
  /* Force HORIZONTAL rules to actually print (preview washes out light borders) */
  html body #estimate-document .border-t {
    border-top-width: 1px !important;
    border-top-style: solid !important;
    border-top-color: #444444 !important;
  }
  html body #estimate-document .border-b {
    border-bottom-width: 1px !important;
    border-bottom-style: solid !important;
    border-bottom-color: #444444 !important;
  }
  html body #estimate-document .border-y {
    border-top-width: 1px !important;
    border-bottom-width: 1px !important;
    border-top-style: solid !important;
    border-bottom-style: solid !important;
    border-top-color: #444444 !important;
    border-bottom-color: #444444 !important;
  }
  /* Contact / info rows that use divide-y or soft black borders on top/bottom only */
  html body #estimate-document .divide-y > :not([hidden]) ~ :not([hidden]) {
    border-top-width: 1px !important;
    border-top-style: solid !important;
    border-top-color: #444444 !important;
  }

  /* Page labels — plain text only (never ::after / counter) */
  html body #estimate-document .a1-print-page-label {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    font: 600 9pt/1.25 Arial, Helvetica, sans-serif !important;
    color: #111 !important;
    -webkit-text-fill-color: #111 !important;
    z-index: 9999 !important;
    pointer-events: none !important;
    background: transparent !important;
  }
  html body #estimate-document .a1-print-page-label::before,
  html body #estimate-document .a1-print-page-label::after {
    content: none !important;
    display: none !important;
    speak: never !important;
  }
}
@media screen {
  #a1-print-page-footer,
  .a1-print-page-label {
    display: none !important;
  }
}
/* A1_PRINT_SIMPLE_END */







/* A1_ACTION_BTNS_COMPACT — fit all cards within estimate width */
.a1-est-landing #a1-your-estimate,
.a1-est-embed #a1-your-estimate {
  max-width: 1000px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  /* Room above cards so hover tips clear the fixed site header */
  padding-top: 4.25rem !important;
  margin-top: 0.75rem !important;
  scroll-margin-top: calc(var(--a1-header-h, 4.25rem) + 4.5rem) !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: center !important;
  align-items: stretch !important;
  gap: 0.5rem !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  position: relative !important;
  z-index: 30 !important;
}
.a1-est-landing #a1-your-estimate > button,
.a1-est-embed #a1-your-estimate > button {
  flex: 1 1 0 !important;
  min-width: 5.25rem !important;
  max-width: 11.5rem !important;
  width: auto !important;
  min-height: 7.25rem !important;
  padding: 0.65rem 0.4rem !important;
  border-radius: 0.75rem !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  box-sizing: border-box !important;
}
/* wrap itself has no padding — inner button matches card padding/height */
.a1-est-landing #a1-your-estimate > .a1-have-q-wrap,
.a1-est-embed #a1-your-estimate > .a1-have-q-wrap {
  flex: 1 1 0 !important;
  min-width: 5.25rem !important;
  max-width: 11.5rem !important;
  width: auto !important;
  min-height: 7.25rem !important;
  padding: 0 !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
}
.a1-est-landing #a1-your-estimate .a1-action-icon,
.a1-est-embed #a1-your-estimate .a1-action-icon,
.a1-est-landing #a1-your-estimate .a1-have-q-btn > div:first-child,
.a1-est-embed #a1-your-estimate .a1-have-q-btn > div:first-child {
  width: 2.75rem !important;
  height: 2.75rem !important;
  margin-bottom: 0.4rem !important;
}
.a1-est-landing #a1-your-estimate span.font-semibold,
.a1-est-embed #a1-your-estimate span.font-semibold {
  font-size: 0.75rem !important;
  line-height: 1.2 !important;
}
@media (min-width: 640px) {
  .a1-est-landing #a1-your-estimate span.font-semibold,
  .a1-est-embed #a1-your-estimate span.font-semibold {
    font-size: 0.82rem !important;
  }
}
/* Toast: bottom center (all toasts including invoice request) */
[data-sonner-toaster],
[data-sonner-toaster][data-x-position],
[data-sonner-toaster][data-y-position] {
  position: fixed !important;
  top: auto !important;
  bottom: 1.25rem !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  transform: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-end !important;
  padding: 0 1rem !important;
  box-sizing: border-box !important;
  z-index: 2147483000 !important;
}
[data-sonner-toast] {
  width: min(360px, calc(100vw - 2rem)) !important;
  margin: 0 auto !important;
  text-align: center !important;
}
/* A1_ACTION_BTNS_COMPACT_END */


/* A1_HAVE_Q_MATCH_SIZE — same height/width as the other action cards */
.a1-est-landing #a1-your-estimate,
.a1-est-embed #a1-your-estimate {
  align-items: stretch !important;
}
/* Outer wrap fills same flex slot as sibling buttons (no extra padding on wrap) */
.a1-est-landing #a1-your-estimate > .a1-have-q-wrap,
.a1-est-embed #a1-your-estimate > .a1-have-q-wrap {
  display: flex !important;
  flex: 1 1 0 !important;
  align-self: stretch !important;
  min-width: 5.25rem !important;
  max-width: 11.5rem !important;
  width: auto !important;
  height: auto !important;
  min-height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}
/* Inner button fills the wrap so height matches other cards */
.a1-est-landing #a1-your-estimate > .a1-have-q-wrap > button,
.a1-est-embed #a1-your-estimate > .a1-have-q-wrap > button,
.a1-est-landing #a1-your-estimate .a1-have-q-btn,
.a1-est-embed #a1-your-estimate .a1-have-q-btn {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  flex: 1 1 auto !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  align-self: stretch !important;
  padding: 0.65rem 0.4rem !important;
  margin: 0 !important;
  border-radius: 0.75rem !important;
  box-sizing: border-box !important;
}
/* Same icon circle as the other four */
.a1-est-landing #a1-your-estimate .a1-have-q-btn .a1-action-icon,
.a1-est-embed #a1-your-estimate .a1-have-q-btn .a1-action-icon,
.a1-est-landing #a1-your-estimate .a1-have-q-btn > div.rounded-full,
.a1-est-embed #a1-your-estimate .a1-have-q-btn > div.rounded-full,
.a1-est-landing #a1-your-estimate .a1-have-q-wrap .a1-action-icon,
.a1-est-embed #a1-your-estimate .a1-have-q-wrap .a1-action-icon,
.a1-est-landing #a1-your-estimate .a1-have-q-wrap .rounded-full,
.a1-est-embed #a1-your-estimate .a1-have-q-wrap .rounded-full {
  width: 2.75rem !important;
  height: 2.75rem !important;
  min-width: 2.75rem !important;
  min-height: 2.75rem !important;
  margin-bottom: 0.4rem !important;
  flex-shrink: 0 !important;
}
.a1-est-landing #a1-your-estimate .a1-have-q-btn svg,
.a1-est-embed #a1-your-estimate .a1-have-q-btn svg,
.a1-est-landing #a1-your-estimate .a1-have-q-wrap svg,
.a1-est-embed #a1-your-estimate .a1-have-q-wrap svg {
  width: 1.5rem !important;
  height: 1.5rem !important;
}
/* All five cards share one min-height so none looks shorter */
.a1-est-landing #a1-your-estimate > button.group,
.a1-est-embed #a1-your-estimate > button.group,
.a1-est-landing #a1-your-estimate > .a1-have-q-wrap,
.a1-est-embed #a1-your-estimate > .a1-have-q-wrap {
  min-height: 7.25rem !important;
}
.a1-est-landing #a1-your-estimate > button.group,
.a1-est-embed #a1-your-estimate > button.group {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
}
/* A1_HAVE_Q_MATCH_SIZE_END */


/* A1_ADMIN_INVOICE_CLICK_FIX */
/* Document Type + Invoice payment controls must stay clickable on admin */
body:not(:has(.a1-est-landing)):not(:has(.a1-est-embed)) [data-radix-select-trigger],
body:not(:has(.a1-est-landing)):not(:has(.a1-est-embed)) button[role="combobox"],
body:not(:has(.a1-est-landing)):not(:has(.a1-est-embed)) #payment-status,
body:not(:has(.a1-est-landing)):not(:has(.a1-est-embed)) select.a1-pay-status-select,
body:not(:has(.a1-est-landing)):not(:has(.a1-est-embed)) .a1-pay-status-box {
  pointer-events: auto !important;
  opacity: 1 !important;
  position: relative !important;
  z-index: 40 !important;
  cursor: pointer !important;
}
/* Radix select menus above sticky toolbars / stamps */
[data-radix-popper-content-wrapper],
[data-radix-select-content],
[role="listbox"] {
  z-index: 2147483000 !important;
  pointer-events: auto !important;
  opacity: 1 !important;
}
/* Payment stamps never steal clicks on admin form */
body:not(:has(.a1-est-landing)):not(:has(.a1-est-embed)) .a1-paid-overlay,
body:not(:has(.a1-est-landing)):not(:has(.a1-est-embed)) .a1-unpaid-overlay {
  pointer-events: none !important;
}
/* Customer Request Invoice: keep readable when waiting for signature */
#a1-your-estimate button[title*="Available after"],
#a1-your-estimate button:disabled[title*="sign"] {
  opacity: 0.72 !important;
}
/* A1_ADMIN_INVOICE_CLICK_FIX_END */


/* A1_REQUEST_INVOICE_BTN */
#a1-your-estimate button.a1-request-invoice-btn {
  pointer-events: auto !important;
  cursor: pointer !important;
  opacity: 1 !important;
  filter: none !important;
}
#a1-your-estimate button.a1-request-invoice-btn:disabled {
  opacity: 0.55 !important;
  cursor: not-allowed !important;
}
/* A1_REQUEST_INVOICE_BTN_END */


/* A1_SIGN_GATE_TOOLTIPS — Print / Download / Invoice before sign */
/* Extra air above the action row (desktop + phone) so popups are fully visible */
html body .a1-est-landing #a1-your-estimate,
html body .a1-est-embed #a1-your-estimate,
html body #a1-your-estimate {
  padding-top: 4.5rem !important;
  margin-top: 0.85rem !important;
  overflow: visible !important;
  z-index: 40 !important;
}
@media (min-width: 768px) {
  html body .a1-est-landing #a1-your-estimate,
  html body .a1-est-embed #a1-your-estimate,
  html body #a1-your-estimate {
    padding-top: 5rem !important;
    margin-top: 1rem !important;
  }
}
/* Parents must not clip the tip under the sticky header */
.a1-est-landing,
.a1-est-embed,
.a1-est-landing > div.w-full,
.a1-est-embed > div.w-full {
  overflow: visible !important;
}
#a1-your-estimate button.a1-sign-gate-btn {
  position: relative !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  z-index: 41 !important;
  overflow: visible !important;
}
/*
 * Locked (not signed yet): semi-transparent white on phone (see PHONE_ACTION_BAR).
 * Desktop keeps a soft white card. Icons + label stay readable.
 */
#a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign {
  opacity: 1 !important;
  filter: none !important;
  background: rgba(255, 255, 255, 0.40) !important;
  background-color: rgba(255, 255, 255, 0.40) !important;
  border-color: rgba(255, 255, 255, 0.55) !important;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.08) !important;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
/* Keep icon circles + text solid (do not inherit card fade) */
#a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign .a1-action-icon,
#a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign > div.rounded-full,
#a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign span.font-semibold,
#a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign svg {
  opacity: 1 !important;
  filter: none !important;
}
#a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign > div.rounded-full,
#a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign .a1-action-icon {
  background-color: rgba(255, 255, 255, 0.95) !important;
}
#a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign span.font-semibold {
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
  font-weight: 700 !important;
}
#a1-your-estimate button.a1-sign-gate-btn .a1-sign-gate-hint {
  display: block !important;
  margin-top: 0.2rem !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  color: #b45309 !important;
  -webkit-text-fill-color: #b45309 !important;
  letter-spacing: 0.01em !important;
  text-align: center !important;
  opacity: 1 !important;
}
/* Hover popup sits fully above the card (more gap from header) */
#a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign:hover::after,
#a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign:focus-visible::after {
  content: attr(title) !important;
  position: absolute !important;
  left: 50% !important;
  bottom: calc(100% + 14px) !important;
  transform: translateX(-50%) !important;
  width: max-content !important;
  max-width: min(18rem, 70vw) !important;
  padding: 0.6rem 0.75rem !important;
  border-radius: 0.5rem !important;
  background: #0f172a !important;
  color: #fff !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  text-align: left !important;
  white-space: normal !important;
  z-index: 2147483000 !important;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.28) !important;
  pointer-events: none !important;
}
#a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign:hover::before,
#a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign:focus-visible::before {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  bottom: calc(100% + 2px) !important;
  transform: translateX(-50%) !important;
  border: 6px solid transparent !important;
  border-top-color: #0f172a !important;
  z-index: 2147483001 !important;
  pointer-events: none !important;
}
/* A1_SIGN_GATE_TOOLTIPS_END */

/* Before/after slider handle: clean ↔ circle (never show filename or u2194 junk) */
.a1-ba-slider .ba-handle::after,
.ba-slider .ba-handle::after {
  content: "\2194" !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 0.95rem !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-indent: 0 !important;
  overflow: hidden !important;
  color: #334155 !important;
  background: #fff !important;
}


/* NEVER show "Back to estimate" on the estimate page itself (only on a1painters.com site) */
.a1-est-landing .a1-back-in-header,
.a1-est-embed .a1-back-in-header,
body.a1-customer-view .a1-back-in-header,
.a1-header-inner > .a1-back-in-header {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  position: absolute !important;
  left: -9999px !important;
}


/* A1_PHONE_ACTION_BAR_V2 */
/* Phone: transparent BAR; top 3 SEMI-transparent white; bottom 2 solid white */
@media (max-width: 767px) {
  .a1-est-landing #a1-your-estimate,
  .a1-est-embed #a1-your-estimate,
  html body .a1-est-landing #a1-your-estimate,
  html body .a1-est-embed #a1-your-estimate,
  html body.a1-on-customer-est #a1-your-estimate {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    border-color: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    padding: 0.65rem 0.55rem 0.85rem !important;
    margin-bottom: 0.5rem !important;
    gap: 0.45rem 0.4rem !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    align-content: flex-start !important;
  }

  /* Top row: Invoice / Download / Print — SEMI transparent white (see-through, not solid, not clear) */
  .a1-est-landing #a1-your-estimate > button.a1-sign-gate-btn,
  .a1-est-embed #a1-your-estimate > button.a1-sign-gate-btn,
  html body.a1-on-customer-est #a1-your-estimate > button.a1-sign-gate-btn,
  .a1-est-landing #a1-your-estimate > button.a1-sign-gate-btn.a1-needs-sign,
  .a1-est-embed #a1-your-estimate > button.a1-sign-gate-btn.a1-needs-sign,
  html body.a1-on-customer-est #a1-your-estimate > button.a1-sign-gate-btn.a1-needs-sign {
    order: 1 !important;
    flex: 0 0 calc(33.333% - 0.35rem) !important;
    width: calc(33.333% - 0.35rem) !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    background: rgba(255, 255, 255, 0.40) !important;
    background-color: rgba(255, 255, 255, 0.40) !important;
    border: 1px solid rgba(255, 255, 255, 0.55) !important;
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.1) !important;
    backdrop-filter: blur(6px) !important;
    -webkit-backdrop-filter: blur(6px) !important;
    opacity: 1 !important;
    filter: none !important;
  }

  /* Bottom row: Photos + Question — solid white (usable tools) */
  .a1-est-landing #a1-your-estimate > button.a1-view-photos-btn,
  .a1-est-embed #a1-your-estimate > button.a1-view-photos-btn,
  html body.a1-on-customer-est #a1-your-estimate > button.a1-view-photos-btn,
  .a1-est-landing #a1-your-estimate .a1-have-q-btn,
  .a1-est-embed #a1-your-estimate .a1-have-q-btn,
  html body.a1-on-customer-est #a1-your-estimate .a1-have-q-btn {
    background: #ffffff !important;
    background-color: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05), 0 1px 3px rgba(15, 23, 42, 0.08) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    opacity: 1 !important;
  }
  .a1-est-landing #a1-your-estimate > button.a1-view-photos-btn,
  .a1-est-embed #a1-your-estimate > button.a1-view-photos-btn,
  html body.a1-on-customer-est #a1-your-estimate > button.a1-view-photos-btn {
    order: 2 !important;
    flex: 0 0 calc(50% - 0.35rem) !important;
    width: calc(50% - 0.35rem) !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }
  .a1-est-landing #a1-your-estimate > .a1-have-q-wrap,
  .a1-est-embed #a1-your-estimate > .a1-have-q-wrap,
  html body.a1-on-customer-est #a1-your-estimate > .a1-have-q-wrap {
    order: 2 !important;
    flex: 0 0 calc(50% - 0.35rem) !important;
    width: calc(50% - 0.35rem) !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    background: transparent !important;
  }
  .a1-est-landing #a1-your-estimate > .a1-have-q-wrap > button,
  .a1-est-embed #a1-your-estimate > .a1-have-q-wrap > button {
    width: 100% !important;
    max-width: 100% !important;
  }
}
/* A1_PHONE_ACTION_BAR_V2_END */


/* A1_HERO_FORCE_VISIBLE — keep house on body (see top of file); no fixed pseudo layer */
body.a1-on-customer-est::before,
body:has(.a1-est-landing)::before,
body:has(.a1-est-embed)::before {
  content: none !important;
  display: none !important;
}
body.a1-on-customer-est #root,
body.a1-on-customer-est #root > div,
body:has(.a1-est-landing) #root,
body:has(.a1-est-embed) #root {
  background: transparent !important;
  background-color: transparent !important;
}
/* Action BAR container stays transparent (buttons styled separately) */
@media screen {
  html body.a1-on-customer-est #a1-your-estimate,
  html body:has(.a1-est-landing) #a1-your-estimate,
  html body:has(.a1-est-embed) #a1-your-estimate,
  .a1-est-landing #a1-your-estimate,
  .a1-est-embed #a1-your-estimate {
    background: transparent !important;
    background-color: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
  }
}
/* Phone layout only (colors for locked/usable live in PHONE_ACTION_BAR_V2) */
@media (max-width: 767px) {
  html body.a1-on-customer-est #a1-your-estimate,
  html body .a1-est-landing #a1-your-estimate,
  html body .a1-est-embed #a1-your-estimate {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 0.45rem 0.4rem !important;
    padding: 0.65rem 0.5rem !important;
  }
  html body.a1-on-customer-est #a1-your-estimate > button.a1-sign-gate-btn,
  html body .a1-est-landing #a1-your-estimate > button.a1-sign-gate-btn {
    order: 1 !important;
    flex: 0 0 calc(33.333% - 0.35rem) !important;
    width: calc(33.333% - 0.35rem) !important;
    max-width: none !important;
  }
  html body.a1-on-customer-est #a1-your-estimate > button.a1-view-photos-btn,
  html body .a1-est-landing #a1-your-estimate > button.a1-view-photos-btn,
  html body.a1-on-customer-est #a1-your-estimate > .a1-have-q-wrap,
  html body .a1-est-landing #a1-your-estimate > .a1-have-q-wrap {
    order: 2 !important;
    flex: 0 0 calc(50% - 0.35rem) !important;
    width: calc(50% - 0.35rem) !important;
    max-width: none !important;
  }
}
/* A1_HERO_FORCE_VISIBLE_END */


/* A1_PHONE_SCROLL_STABLE */
/* Phone scroll: no height tricks that fight iOS chrome (heartbeat) */
@media (max-width: 767px) {
  html:has(.a1-est-landing),
  body:has(.a1-est-landing),
  html:has(.a1-est-embed),
  body:has(.a1-est-embed),
  html.a1-on-customer-est,
  body.a1-on-customer-est {
    overscroll-behavior-y: none;
    -webkit-overflow-scrolling: touch;
  }
  .a1-est-landing,
  .a1-est-embed {
    overscroll-behavior-y: none;
    min-height: auto !important;
  }
}
/* A1_PHONE_SCROLL_STABLE_END */


/* A1_BOTTOM_SCROLL_PAD */
@media (max-width: 767px) {
  .a1-est-landing,
  .a1-est-embed {
    padding-bottom: 2.25rem !important;
  }
}
/* A1_BOTTOM_SCROLL_PAD_END */


/* A1_Q_BOTTOM_SHEET_V3 */
/* Phone: Have a Question — bottom sheet under URL chrome, buttons above bar */
@media (max-width: 767px) {
  html.a1-popup-open,
body.a1-popup-open {
  overflow: hidden !important;
  overscroll-behavior: none !important;
  /* touch-action intentionally NOT none — stuck class killed scroll */
}

  html.a1-popup-open #a1-question-host-root,
  body.a1-popup-open #a1-question-host-root {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483646 !important;
    pointer-events: none !important;
  }

  /* Compact phone card (same as global) — not full-height bottom sheet */
  #a1-question-host-root .fixed.inset-0,
  html.a1-popup-open #a1-question-host-root > div,
  body.a1-popup-open #a1-question-host-root > div {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px !important;
    margin: 0 !important;
    background: rgba(15, 23, 42, 0.55) !important;
    overflow: hidden !important;
    z-index: 2147483646 !important;
    transform: none !important;
    zoom: 1 !important;
    pointer-events: auto !important;
    box-sizing: border-box !important;
  }

  #a1-question-host-root [role="dialog"] {
    position: relative !important;
    width: min(400px, calc(100vw - 24px)) !important;
    max-width: calc(100vw - 24px) !important;
    margin: 0 auto !important;
    border-radius: 1rem !important;
    background: #ffffff !important;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.28) !important;
    flex-shrink: 0 !important;
    max-height: min(70dvh, 520px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    box-sizing: border-box !important;
    padding: 1rem !important;
    padding-bottom: max(1rem, calc(env(safe-area-inset-bottom, 0px) + 12px)) !important;
    transform: none !important;
    zoom: 1 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }

  #a1-question-host-root [role="dialog"]::after {
    content: none !important;
    display: none !important;
  }

  #a1-question-host-root [role="dialog"] form,
  #a1-question-host-root [role="dialog"] .flex {
    position: relative !important;
    z-index: 1 !important;
  }

  #a1-question-host-root input,
  #a1-question-host-root textarea {
    font-size: 16px !important; /* no iOS zoom jump */
    min-height: 44px !important;
  }

  #a1-question-host-root .a1-send-to-a1-btn,
  #a1-question-host-root .a1-q-cancel-btn,
  #a1-question-host-root [role="dialog"] button {
    min-height: 48px !important;
    margin-bottom: 0 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }
}
/* A1_Q_BOTTOM_SHEET_V3_END */


/* A1_FULL_PAPER_HOST_CSS */
@media (max-width: 767px) {
  /* Default: full estimate paper visible (no clipped Accept / bottom rows) */
  .a1-est-landing .w-full.overflow-x-auto,
  .a1-est-embed .w-full.overflow-x-auto,
  html body.a1-on-customer-est .w-full.overflow-x-auto {
    overflow: visible !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    max-height: none !important;
    height: auto !important;
    clip-path: none !important;
    -webkit-clip-path: none !important;
  }
  .a1-est-landing #estimate-document,
  .a1-est-embed #estimate-document {
    overflow: visible !important;
    max-height: none !important;
  }
}
/* A1_FULL_PAPER_HOST_CSS_END */


/* A1_SEMI_TOP3_BTNS */
@media (max-width: 900px) {
  /* Phone + narrow admin customer view */
  .a1-est-landing #a1-your-estimate > button.a1-sign-gate-btn,
  .a1-est-embed #a1-your-estimate > button.a1-sign-gate-btn,
  html body.a1-on-customer-est #a1-your-estimate > button.a1-sign-gate-btn,
  #a1-your-estimate > button.a1-sign-gate-btn,
  #a1-your-estimate > button.a1-sign-gate-btn.a1-needs-sign {
    background: rgba(255, 255, 255, 0.40) !important;
    background-color: rgba(255, 255, 255, 0.40) !important;
    border: 1px solid rgba(255, 255, 255, 0.55) !important;
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.1) !important;
    backdrop-filter: blur(5px) !important;
    -webkit-backdrop-filter: blur(5px) !important;
    opacity: 1 !important;
  }
}
/* A1_SEMI_TOP3_BTNS_END */


/* A1_CUSTOMER_SCROLL_ALWAYS */
/* Never leave the estimate page unscrollable after popups / admin customer view */
html:has(.a1-est-landing),
html:has(.a1-est-embed),
body:has(.a1-est-landing),
body:has(.a1-est-embed),
html.a1-on-customer-est,
body.a1-on-customer-est {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  touch-action: pan-y !important;
  height: auto !important;
  max-height: none !important;
}
/* Only lock scroll while question popup is truly open */
html.a1-popup-open,
body.a1-popup-open {
  overflow: hidden !important;
  /* do NOT set touch-action:none on body — if class sticks, scroll dies forever */
  touch-action: pan-y !important;
}
.a1-est-landing,
.a1-est-embed {
  overflow-x: hidden !important;
  overflow-y: visible !important;
  touch-action: pan-y !important;
  height: auto !important;
  max-height: none !important;
  -webkit-overflow-scrolling: touch !important;
}
/* A1_CUSTOMER_SCROLL_ALWAYS_END */


/* A1_SCROLL_EMERGENCY */
/* Customer estimate must always page-scroll on phone (public link + admin customer view) */
@media (max-width: 900px) {
  html:has(.a1-est-landing),
  html:has(.a1-est-embed),
  body:has(.a1-est-landing),
  body:has(.a1-est-embed),
  html.a1-on-customer-est,
  body.a1-on-customer-est {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    height: auto !important;
    max-height: none !important;
    min-height: 100% !important;
    position: static !important;
    touch-action: pan-y !important;
    -webkit-overflow-scrolling: touch !important;
  }
  /* If popup class stuck without dialog, still allow scroll — JS clears class */
  html.a1-popup-open:not(:has([role="dialog"])),
  body.a1-popup-open:not(:has([role="dialog"])) {
    overflow-y: auto !important;
    touch-action: pan-y !important;
  }
  .a1-est-landing,
  .a1-est-embed,
  .a1-est-landing.min-h-screen {
    overflow: visible !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    height: auto !important;
    max-height: none !important;
    min-height: auto !important;
    touch-action: pan-y !important;
  }
  /* Paper host: NEVER trap scroll at 1x zoom */
  .a1-est-landing .w-full.overflow-x-auto,
  .a1-est-embed .w-full.overflow-x-auto,
  html body.a1-on-customer-est .w-full.overflow-x-auto {
    overflow: visible !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    clip-path: none !important;
    -webkit-clip-path: none !important;
    touch-action: pan-y !important;
  }
  .a1-est-landing #estimate-document,
  .a1-est-embed #estimate-document {
    overflow: visible !important;
    max-height: none !important;
    touch-action: pan-y !important;
  }
  #root,
  #root > div {
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
  }
}
/* A1_SCROLL_EMERGENCY_END */


/* A1_WHEEL_SCROLL_PAPER */
/* Paper host must not swallow mouse-wheel / trackpad scroll */
.a1-est-landing .w-full.overflow-x-auto,
.a1-est-embed .w-full.overflow-x-auto,
.a1-est-landing > div.w-full.overflow-x-auto,
.a1-est-embed > div.w-full.overflow-x-auto,
html body .a1-est-landing .w-full.overflow-x-auto,
html body .a1-est-embed .w-full.overflow-x-auto,
html.a1-on-customer-est .w-full.overflow-x-auto {
  overflow: visible !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
  max-height: none !important;
  height: auto !important;
  /* clip-path traps some browsers' wheel — only use when zoomed (JS) */
  clip-path: none !important;
  -webkit-clip-path: none !important;
  overscroll-behavior: auto !important;
  touch-action: pan-y !important;
}
.a1-est-landing #estimate-document,
.a1-est-embed #estimate-document {
  overflow: visible !important;
  max-height: none !important;
  touch-action: pan-y !important;
  overscroll-behavior: auto !important;
}
/* Why Choose stays fixed but must NOT be the only scrollable region */
.a1-est-sidebar,
aside.a1-est-sidebar,
[data-a1-est-sidebar="1"],
[data-a1-est-sidebar] {
  overscroll-behavior: auto !important;
  /* allow wheel to pass to page when not scrolling its own content */
  overscroll-behavior-y: auto !important;
}
/* A1_WHEEL_SCROLL_PAPER_END */


/* A1_WHY_CLOSER_PHONE superseded by A1_WHY_TIGHT_V2 */


/* A1_WHY_TIGHT_V2 */
@media (max-width: 767px) {
  /* Landing: stop huge bottom air after the stack */
  html body .a1-est-landing,
  html body .a1-est-embed,
  .a1-est-landing.min-h-screen,
  .a1-est-landing,
  .a1-est-embed {
    padding-bottom: 2.25rem !important;
  }

  /* Paper host: almost no tail under the white estimate card */
  html body .a1-est-landing .w-full.overflow-x-auto,
  html body .a1-est-embed .w-full.overflow-x-auto,
  .a1-est-landing .w-full.overflow-x-auto,
  .a1-est-embed .w-full.overflow-x-auto {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    min-height: 0 !important;
  }

  html body .a1-est-landing #estimate-document,
  html body .a1-est-embed #estimate-document,
  .a1-est-landing #estimate-document.estimate-document,
  .a1-est-embed #estimate-document.estimate-document {
    margin-bottom: 0.65rem !important;
  }

  /* Why Choose: tight under paper, small space only */
  html body .a1-est-landing .a1-est-sidebar,
  html body .a1-est-embed .a1-est-sidebar,
  html body .a1-est-landing aside.a1-est-sidebar,
  html body .a1-est-embed aside.a1-est-sidebar,
  html body .a1-est-landing [data-a1-est-sidebar],
  html body .a1-est-embed [data-a1-est-sidebar],
  html body .a1-est-landing [data-a1-est-sidebar="1"],
  html body .a1-est-embed [data-a1-est-sidebar="1"],
  .a1-est-landing .a1-est-sidebar,
  .a1-est-embed .a1-est-sidebar {
    order: 4 !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0.65rem 0 1rem 0 !important;
    margin-top: 0.65rem !important;
    margin-bottom: 1rem !important;
    padding: 0 0 0.5rem 0 !important;
    top: auto !important;
    right: auto !important;
    max-height: none !important;
  }

  /* Sig tip same stack position */
  html body #a1-sig-tip {
    margin: 0.65rem 0 1rem 0 !important;
  }
}
/* A1_WHY_TIGHT_V2_END */


/* A1_WHY_SCALE_GAP_FIX */
@media (max-width: 767px) {
  /*
   * Paper is transform-scaled; negative margin-bottom is set in JS.
   * Why Choose must sit just under the visual card with a small gap.
   */
  html body .a1-est-landing .a1-est-sidebar,
  html body .a1-est-embed .a1-est-sidebar,
  html body .a1-est-landing [data-a1-est-sidebar],
  html body .a1-est-embed [data-a1-est-sidebar],
  html body .a1-est-landing [data-a1-est-sidebar="1"],
  html body .a1-est-embed [data-a1-est-sidebar="1"],
  .a1-est-landing .a1-est-sidebar,
  .a1-est-embed .a1-est-sidebar {
    order: 4 !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 12px 0 16px 0 !important;
    padding: 0 0 8px 0 !important;
    top: auto !important;
    right: auto !important;
    max-height: none !important;
    transform: none !important;
  }
  html body .a1-est-landing,
  html body .a1-est-embed {
    padding-bottom: 2rem !important;
  }
  html body .a1-est-landing .w-full.overflow-x-auto,
  html body .a1-est-embed .w-full.overflow-x-auto {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
  html body #a1-sig-tip {
    margin: 12px 0 16px 0 !important;
  }
}
/* A1_WHY_SCALE_GAP_FIX_END */


/* A1_PHONE_SCROLL_INTUITIVE */
@media (max-width: 900px) {
  /* Whole customer estimate page: normal one-finger scroll */
  html:has(.a1-est-landing),
  html:has(.a1-est-embed),
  body:has(.a1-est-landing),
  body:has(.a1-est-embed),
  html.a1-on-customer-est,
  body.a1-on-customer-est {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    height: auto !important;
    max-height: none !important;
    position: static !important;
    touch-action: pan-y !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .a1-est-landing,
  .a1-est-embed,
  .a1-est-landing #root,
  .a1-est-embed #root,
  body.a1-on-customer-est #root,
  body.a1-on-customer-est #root > div {
    overflow: visible !important;
    overflow-x: hidden !important;
    height: auto !important;
    max-height: none !important;
    touch-action: pan-y !important;
  }

  /* Paper + buttons + Why Choose: allow vertical scroll */
  .a1-est-landing .w-full.overflow-x-auto,
  .a1-est-embed .w-full.overflow-x-auto,
  .a1-est-landing #estimate-document,
  .a1-est-embed #estimate-document,
  .a1-est-landing #a1-your-estimate,
  .a1-est-embed #a1-your-estimate,
  .a1-est-landing .a1-est-sidebar,
  .a1-est-embed .a1-est-sidebar,
  .a1-est-landing .a1-photos-expand-box,
  .a1-est-embed .a1-photos-expand-box {
    touch-action: pan-y !important;
    overflow: visible !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    max-height: none !important;
    clip-path: none !important;
    -webkit-clip-path: none !important;
  }

  /*
   * ONLY the signature pad locks the finger for drawing.
   * Rest of page still scrolls when finger is not on the canvas.
   */
  .a1-est-landing canvas.touch-none,
  .a1-est-embed canvas.touch-none,
  .a1-est-landing canvas.cursor-crosshair,
  .a1-est-embed canvas.cursor-crosshair,
  html.a1-signing canvas.touch-none,
  html.a1-signing canvas.cursor-crosshair,
  body.a1-signing canvas.touch-none,
  body.a1-signing canvas.cursor-crosshair {
    touch-action: none !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
  }

  /* While signing: station mode — no vertical page scroll; tip docked */
  html.a1-signing,
  body.a1-signing,
  html.a1-signing-station,
  body.a1-signing-station {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    touch-action: pan-x !important;
    height: 100% !important;
    max-height: 100% !important;
    position: static !important;
    overscroll-behavior-y: none !important;
  }
  /* After signed: free vertical scroll so phone URL bar / ⋮ can return */
  html.a1-signed-view,
  body.a1-signed-view {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    height: auto !important;
    max-height: none !important;
    touch-action: pan-y !important;
    overscroll-behavior-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  html.a1-signed-view.a1-signing,
  body.a1-signed-view.a1-signing,
  html.a1-signed-view.a1-signing-station,
  body.a1-signed-view.a1-signing-station {
    overflow-y: auto !important;
    height: auto !important;
    max-height: none !important;
    touch-action: pan-y !important;
    overscroll-behavior-y: auto !important;
  }

/* Floating Sign & Accept — full label, stays centered while paper pans L/R */
#a1-float-sign-accept {
  position: fixed !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 2147483600 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: min(280px, calc(100vw - 32px)) !important;
  padding: 14px 28px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #16a34a !important;
  color: #fff !important;
  font: 800 17px/1.2 system-ui, Arial, sans-serif !important;
  box-shadow: 0 8px 24px rgba(22, 163, 74, 0.45) !important;
  touch-action: manipulation !important;
  pointer-events: auto !important;
  white-space: nowrap !important;
}
html.a1-signed-view #a1-float-sign-accept,
body.a1-signed-view #a1-float-sign-accept {
  display: none !important;
  pointer-events: none !important;
}
/* Phone only: hide half-cut original Sign & Accept while floating CTA is used */
@media (max-width: 767px) {
  html.a1-signing #estimate-document button[data-a1-hid-inpage-sa="1"],
  body.a1-signing #estimate-document button[data-a1-hid-inpage-sa="1"],
  html.a1-signing-station #estimate-document button[data-a1-hid-inpage-sa="1"],
  body.a1-signing-station #estimate-document button[data-a1-hid-inpage-sa="1"],
  html.a1-signing #estimate-document [data-a1-hid-inpage-sa="1"],
  body.a1-signing #estimate-document [data-a1-hid-inpage-sa="1"] {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    overflow: hidden !important;
  }
}

  /*
   * While signing: blue tip fixed at bottom — always fully visible with buttons
   * while paper is zoomed on the signature box (L/R only).
   */
  html.a1-signing #a1-sig-tip,
  body.a1-signing #a1-sig-tip,
  html.a1-signing-station #a1-sig-tip,
  body.a1-signing-station #a1-sig-tip {
    position: fixed !important;
    left: 8px !important;
    right: 8px !important;
    top: auto !important;
    bottom: max(10px, env(safe-area-inset-bottom, 0px)) !important;
    width: auto !important;
    max-width: 520px !important;
    margin: 0 auto !important;
    z-index: 2147483000 !important;
    max-height: 42vh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35) !important;
    background: rgba(15, 23, 42, 0.96) !important;
    border-radius: 14px !important;
    color: #fff !important;
    box-sizing: border-box !important;
  }

  /* Paper host while signing: allow light horizontal only */
  html.a1-signing .a1-est-landing .w-full.overflow-x-auto,
  html.a1-signing .a1-est-embed .w-full.overflow-x-auto,
  body.a1-signing .a1-est-landing .w-full.overflow-x-auto,
  body.a1-signing .a1-est-embed .w-full.overflow-x-auto {
    touch-action: pan-x !important;
    overflow-y: visible !important;
  }
}
/* A1_PHONE_SCROLL_INTUITIVE_END */

/* A1_SIGNING_STATION */
@media (max-width: 900px) {
  /* Hide action buttons while signing — estimate fills screen above blue tip */
  html.a1-signing #a1-your-estimate,
  body.a1-signing #a1-your-estimate,
  html.a1-signing-station #a1-your-estimate,
  body.a1-signing-station #a1-your-estimate {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
  }
  html.a1-signing .a1-photos-expand-box,
  body.a1-signing .a1-photos-expand-box,
  html.a1-signing-station .a1-photos-expand-box,
  body.a1-signing-station .a1-photos-expand-box {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
}
/* After Accept: signed Contract — force ALL 5 action buttons usable
   (Invoice / Download / Print / Photos / Have a Question).
   Higher specificity than a1-signing hide so bar never stays gone. */
html.a1-signed-view #a1-your-estimate,
body.a1-signed-view #a1-your-estimate {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  pointer-events: auto !important;
}
/* Even if signing classes linger after Accept */
@media (max-width: 900px) {
  html.a1-signed-view.a1-signing #a1-your-estimate,
  body.a1-signed-view.a1-signing #a1-your-estimate,
  html.a1-signed-view.a1-signing-station #a1-your-estimate,
  body.a1-signed-view.a1-signing-station #a1-your-estimate {
    display: flex !important;
    visibility: visible !important;
    height: auto !important;
    max-height: none !important;
    margin: initial !important;
    padding: initial !important;
    overflow: visible !important;
    pointer-events: auto !important;
  }
}
html.a1-signed-view #a1-your-estimate > button,
body.a1-signed-view #a1-your-estimate > button,
html.a1-signed-view #a1-your-estimate > .a1-have-q-wrap,
body.a1-signed-view #a1-your-estimate > .a1-have-q-wrap,
html.a1-signed-view #a1-your-estimate button.a1-sign-gate-btn,
body.a1-signed-view #a1-your-estimate button.a1-sign-gate-btn,
html.a1-signed-view #a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign,
body.a1-signed-view #a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign,
html.a1-signed-view #a1-your-estimate button.a1-view-photos-btn,
body.a1-signed-view #a1-your-estimate button.a1-view-photos-btn,
html.a1-signed-view #a1-your-estimate .a1-have-q-btn,
body.a1-signed-view #a1-your-estimate .a1-have-q-btn {
  pointer-events: auto !important;
  opacity: 1 !important;
  filter: none !important;
  cursor: pointer !important;
  visibility: visible !important;
}
html.a1-signed-view #a1-your-estimate button.a1-sign-gate-btn,
body.a1-signed-view #a1-your-estimate button.a1-sign-gate-btn,
html.a1-signed-view #a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign,
body.a1-signed-view #a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign {
  background: #ffffff !important;
  background-color: #ffffff !important;
  border-color: #e2e8f0 !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08) !important;
}
html.a1-signed-view #a1-your-estimate > .a1-have-q-wrap,
body.a1-signed-view #a1-your-estimate > .a1-have-q-wrap {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  height: auto !important;
  max-height: none !important;
}
html.a1-signed-view #a1-your-estimate .a1-sign-gate-hint,
body.a1-signed-view #a1-your-estimate .a1-sign-gate-hint {
  display: none !important;
}
/* After sign: keep React pad mounted (no removeChild crash) but hide chrome */
html.a1-signed-view #a1-sig-tip,
body.a1-signed-view #a1-sig-tip,
html.a1-signed-view #a1-sign-success-done,
body.a1-signed-view #a1-sign-success-done {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
html.a1-signed-view #estimate-document canvas.touch-none,
body.a1-signed-view #estimate-document canvas.touch-none,
html.a1-signed-view #estimate-document canvas[class*="cursor-crosshair"],
body.a1-signed-view #estimate-document canvas[class*="cursor-crosshair"] {
  opacity: 0 !important;
  pointer-events: none !important;
}
/* After capture: hide live signing UI; show pasted block only */
html.a1-signed-view #estimate-document [data-a1-signing-box-hidden="1"],
body.a1-signed-view #estimate-document [data-a1-signing-box-hidden="1"] {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
/* Same size family as original signature card; ink scaled inside */
#a1-contract-sig-block {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
  overflow: hidden !important;
  position: relative !important;
  z-index: 50 !important;
  margin: 12px 0 16px !important;
  padding: 10px 12px !important;
}
#a1-contract-sig-block .a1-csb-sig-wrap {
  height: 100px !important;
  min-height: 100px !important;
  max-height: 100px !important;
  overflow: hidden !important;
}
/* Enlarge ink only — box size stays 100px */
#a1-contract-sig-block #a1-contract-sig-img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 96px !important;
  max-height: 96px !important;
  min-height: 0 !important;
  object-fit: contain !important;
  object-position: left center !important;
  transform: scale(2.0) !important;
  transform-origin: left center !important;
}
/* Paper must not clip the pasted signature under Total All */
html.a1-signed-view #estimate-document,
body.a1-signed-view #estimate-document {
  overflow: visible !important;
  padding-bottom: 32px !important;
}
/* Simple stamp leftovers (optional in-box) */
#a1-stamped-sig-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  overflow: hidden !important;
}
#a1-stamped-sig,
#a1-stamped-sig-wrap,
img#a1-stamped-sig {
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
}
img#a1-stamped-sig,
#a1-stamped-sig {
  max-height: 110px !important;
  max-width: 96% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: left center !important;
  display: block !important;
  visibility: visible !important;
}
#a1-stamped-print-name {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #000 !important;
  font-weight: 600 !important;
  font-size: 15px !important;
}
@media print {
  #a1-stamped-sig,
  #a1-stamped-sig-wrap {
    display: flex !important;
    visibility: visible !important;
  }
  img#a1-stamped-sig {
    display: block !important;
    max-height: 110px !important;
  }
  #a1-stamped-print-name {
    display: block !important;
    visibility: visible !important;
  }
  #a1-sign-success,
  #a1-sig-tip {
    display: none !important;
  }
}
/* A1_SIGNING_STATION_END */


/* A1_INVOICE_VIEW_FIT */
@media (max-width: 900px) {
  html.a1-invoice-view .a1-est-landing #estimate-document,
  html.a1-invoice-view .a1-est-embed #estimate-document,
  body.a1-invoice-view .a1-est-landing #estimate-document,
  body.a1-invoice-view .a1-est-embed #estimate-document {
    /* width still natural; JS scale fits to phone */
    max-width: none !important;
    transform-origin: top center !important;
  }
  /* Unlock look: no "Sign to unlock" chrome after invoice / job complete */
  html.a1-invoice-view #a1-your-estimate button.a1-sign-gate-btn,
  body.a1-invoice-view #a1-your-estimate button.a1-sign-gate-btn,
  html.a1-invoice-view #a1-your-estimate button.a1-request-invoice-btn,
  body.a1-invoice-view #a1-your-estimate button.a1-request-invoice-btn {
    opacity: 1 !important;
    filter: none !important;
    pointer-events: auto !important;
    cursor: pointer !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    border-color: #e2e8f0 !important;
  }
  html.a1-invoice-view #a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign,
  body.a1-invoice-view #a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign {
    background: #ffffff !important;
    background-color: #ffffff !important;
    border-color: #e2e8f0 !important;
    opacity: 1 !important;
  }
  html.a1-invoice-view #a1-your-estimate .a1-sign-gate-hint,
  body.a1-invoice-view #a1-your-estimate .a1-sign-gate-hint {
    display: none !important;
  }
  html.a1-invoice-view #a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign:hover::after,
  html.a1-invoice-view #a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign:focus-visible::after,
  html.a1-invoice-view #a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign:hover::before,
  html.a1-invoice-view #a1-your-estimate button.a1-sign-gate-btn.a1-needs-sign:focus-visible::before {
    content: none !important;
    display: none !important;
  }
}
/* A1_INVOICE_VIEW_FIT_END */


/* A1_INVOICE_HIDE_WHY_CHOOSE */
html.a1-invoice-view .a1-est-sidebar,
html.a1-invoice-view aside.a1-est-sidebar,
html.a1-invoice-view [data-a1-est-sidebar],
html.a1-invoice-view [data-a1-est-sidebar="1"],
body.a1-invoice-view .a1-est-sidebar,
body.a1-invoice-view aside.a1-est-sidebar,
body.a1-invoice-view [data-a1-est-sidebar],
body.a1-invoice-view [data-a1-est-sidebar="1"] {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
/* Tighter space under paper before next block (estimate only) */
@media (max-width: 900px) {
  .a1-est-landing .w-full.overflow-x-auto,
  .a1-est-embed .w-full.overflow-x-auto {
    margin-bottom: 0.25rem !important;
  }
  html:not(.a1-invoice-view) .a1-est-sidebar,
  html:not(.a1-invoice-view) [data-a1-est-sidebar] {
    margin-top: 0.35rem !important;
  }
}
/* A1_INVOICE_HIDE_WHY_CHOOSE_END */


/* A1_RESTORE_WHY_EQUAL_GAP — Why Choose only UNSIGNED (marketing to get sign) */
/* Hide after real signature + on invoice. Show only pre-sign estimate. */
html.a1-signed-view .a1-est-sidebar,
html.a1-signed-view aside.a1-est-sidebar,
html.a1-signed-view [data-a1-est-sidebar],
html.a1-signed-view [data-a1-est-sidebar="1"],
body.a1-signed-view .a1-est-sidebar,
body.a1-signed-view aside.a1-est-sidebar,
body.a1-signed-view [data-a1-est-sidebar],
body.a1-signed-view [data-a1-est-sidebar="1"] {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
html:not(.a1-invoice-view):not(.a1-signed-view) .a1-est-landing .a1-est-sidebar,
html:not(.a1-invoice-view):not(.a1-signed-view) .a1-est-embed .a1-est-sidebar,
html:not(.a1-invoice-view):not(.a1-signed-view) .a1-est-landing [data-a1-est-sidebar],
html:not(.a1-invoice-view):not(.a1-signed-view) .a1-est-embed [data-a1-est-sidebar],
html:not(.a1-invoice-view):not(.a1-signed-view) .a1-est-landing [data-a1-est-sidebar="1"],
html:not(.a1-invoice-view):not(.a1-signed-view) .a1-est-embed [data-a1-est-sidebar="1"],
html:not(.a1-invoice-view):not(.a1-signed-view).a1-on-customer-est .a1-est-sidebar,
body:not(.a1-invoice-view):not(.a1-signed-view).a1-on-customer-est .a1-est-sidebar {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  overflow: visible !important;
}
@media (max-width: 767px) {
  html:not(.a1-invoice-view):not(.a1-signed-view) .a1-est-landing .a1-est-sidebar,
  html:not(.a1-invoice-view):not(.a1-signed-view) .a1-est-embed .a1-est-sidebar,
  html:not(.a1-invoice-view):not(.a1-signed-view) .a1-est-landing [data-a1-est-sidebar],
  html:not(.a1-invoice-view):not(.a1-signed-view) .a1-est-embed [data-a1-est-sidebar],
  html:not(.a1-invoice-view):not(.a1-signed-view) .a1-est-landing [data-a1-est-sidebar="1"],
  html:not(.a1-invoice-view):not(.a1-signed-view) .a1-est-embed [data-a1-est-sidebar="1"] {
    order: 4 !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 12px 0 1.25rem 0 !important;
    padding: 0 0 0.75rem 0 !important;
    top: auto !important;
    right: auto !important;
  }
  html:not(.a1-invoice-view):not(.a1-signed-view) .a1-est-landing,
  html:not(.a1-invoice-view):not(.a1-signed-view) .a1-est-embed {
    padding-bottom: 2.5rem !important;
    min-height: 0 !important;
  }
  html.a1-signed-view .a1-est-landing,
  html.a1-signed-view .a1-est-embed,
  body.a1-signed-view .a1-est-landing,
  body.a1-signed-view .a1-est-embed {
    padding-bottom: 1.5rem !important;
    min-height: 0 !important;
  }
}
/* A1_RESTORE_WHY_EQUAL_GAP_END */

/* FORCE_UPLOAD est-phone-menu-b-1785585814 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */


/* menu-full-overlay-1785586126 */


/* bar-paper-gap-12b-1785587444 */


/* paper-under-buttons-1785604240 */

/* ═══ SOLID: paper always under 5 buttons (mobile) — yellow-back + email ═══ */
@media screen and (max-width: 900px) {
  .a1-est-landing,
  .a1-est-embed {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    row-gap: 0 !important;
  }
  #a1-your-estimate {
    order: 1 !important;
    flex-shrink: 0 !important;
    margin-bottom: 12px !important;
  }
  .a1-est-landing .w-full.overflow-x-auto:has(#estimate-document),
  .a1-est-embed .w-full.overflow-x-auto:has(#estimate-document) {
    order: 2 !important;
    flex-shrink: 0 !important;
  }
  .a1-est-sidebar,
  [data-a1-est-sidebar],
  [data-a1-est-sidebar="1"] {
    order: 3 !important;
  }
  .a1-photos-expand-box {
    order: 4 !important;
  }
  .a1-photos-expand-box[data-a1-photos-open="1"] {
    order: 2 !important;
  }
}

/* ═══ Yellow-back park stack: buttons + paper + Why Choose (no air) ═══ */
#a1-park-stack,
div#a1-park-stack {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 12px !important;
  row-gap: 12px !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  box-sizing: border-box !important;
}
html[data-a1-from-site="1"] .a1-est-landing,
html.a1-from-site-park .a1-est-landing {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  min-height: 0 !important;
}
html[data-a1-from-site="1"] .a1-est-landing .min-h-screen,
html.a1-from-site-park .a1-est-landing .min-h-screen {
  min-height: 0 !important;
  height: auto !important;
}

/* ═══ Kill browser scroll-anchoring (pulls email/yellow open to bottom) ═══ */
html:has(.a1-est-landing),
html:has(.a1-est-embed),
html.a1-on-customer-est,
body:has(.a1-est-landing),
body:has(.a1-est-embed),
body.a1-on-customer-est,
html:has(.a1-est-landing) #root,
html:has(.a1-est-landing) #root > div,
.a1-est-landing,
.a1-est-embed {
  overflow-anchor: none !important;
}

/* ============================================================
 * A1 SOLID-14H — permanent mobile stack (end thrash era)
 * Buttons under header, paper under buttons. Flex order only.
 * Empty min-h-screen holes collapsed. No JS required for order.
 * ============================================================ */
@media screen and (max-width: 900px) {
  .a1-est-landing,
  .a1-est-embed {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    row-gap: 0 !important;
    min-height: 0 !important;
    height: auto !important;
  }
  .a1-est-landing .min-h-screen,
  .a1-est-embed .min-h-screen,
  .a1-est-landing [class*="min-h-"],
  .a1-est-landing > div {
    min-height: 0 !important;
  }
  /* 5-button bar first in stack */
  #a1-your-estimate,
  .a1-est-landing #a1-your-estimate {
    order: 1 !important;
    flex-shrink: 0 !important;
    width: 100% !important;
    margin: 0 0 12px 0 !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    position: relative !important;
    transform: none !important;
  }
  /* Paper host directly under buttons */
  .a1-est-landing > .w-full.overflow-x-auto,
  .a1-est-landing .w-full.overflow-x-auto:has(#estimate-document),
  .a1-est-landing [data-a1-dom-after-bar="1"],
  .a1-est-embed .w-full.overflow-x-auto:has(#estimate-document),
  .a1-est-embed [data-a1-dom-after-bar="1"] {
    order: 2 !important;
    flex-shrink: 0 !important;
    padding-top: 0 !important;
    min-height: 0 !important;
    position: relative !important;
  }
  .a1-est-landing #estimate-document,
  .a1-est-embed #estimate-document {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  /* Why Choose after paper */
  .a1-est-landing .a1-est-sidebar,
  .a1-est-landing [data-a1-est-sidebar],
  .a1-est-landing [data-a1-est-sidebar="1"] {
    order: 3 !important;
    position: static !important;
  }
  /* Photos last unless open under bar */
  .a1-est-landing .a1-photos-expand-box {
    order: 4 !important;
  }
  .a1-est-landing .a1-photos-expand-box[data-a1-photos-open="1"] {
    order: 2 !important;
  }
  /* Empty wrappers that buried paper at y~1288 */
  .a1-est-landing [data-a1-empty-wrap="1"] {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    flex: 0 0 0 !important;
  }
}

/* BAR-HEIGHT-1785653001 — stop #a1-your-estimate stretching to ~1400px */
@media screen and (max-width: 900px) {
  #a1-your-estimate,
  .a1-est-landing #a1-your-estimate {
    flex-grow: 0 !important;
    flex-shrink: 0 !important;
    flex-basis: auto !important;
    align-self: flex-start !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin-bottom: 12px !important;
    padding-bottom: 0 !important;
  }
}
