
/* Native top-layer dialog. No element on the page can render above its backdrop. */
dialog#cleaning-offer {
  position:fixed;
  inset:0;
  margin:auto;
  padding:0;
  width:min(520px, calc(100vw - 36px));
  max-width:calc(100vw - 36px);
  max-height:calc(100dvh - 36px);
  overflow-y:auto;
  overscroll-behavior:contain;
  border:1px solid #d4edf5;
  border-radius:24px;
  background:linear-gradient(155deg,#eefaff,#fff 43%,#fff);
  color:#11384a;
  box-shadow:0 28px 95px rgba(2,18,34,.45),0 8px 20px rgba(2,18,34,.18);
  box-sizing:border-box;
  text-align:center;
  font-family:'DM Sans',Arial,sans-serif;
}
dialog#cleaning-offer:not([open]){display:none!important}
dialog#cleaning-offer[open]{display:block!important;animation:none!important}
dialog#cleaning-offer::backdrop{
  background:rgba(3,20,31,.70);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}
@keyframes offerAppear{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
#cleaning-offer,#cleaning-offer *{box-sizing:border-box}
#cleaning-offer .cleaning-offer-panel {position:relative;padding:40px 34px 27px;}
#cleaning-offer .cleaning-offer-panel::before{
  content:'';position:absolute;left:50%;top:0;transform:translateX(-50%);
  width:42%;height:5px;background:linear-gradient(90deg,#1ab5da,#087fa2);
  border-radius:0 0 10px 10px;
}
#cleaning-offer .cleaning-offer-close {
  position:absolute;right:15px;top:14px;width:40px;height:40px;
  border:0;border-radius:50%;background:#e5f5fa;color:#174b60;
  cursor:pointer;font-size:28px;line-height:40px;padding:0;
}
#cleaning-offer .cleaning-offer-close:hover{background:#c9ecf5}
#cleaning-offer .cleaning-offer-kicker{margin:0 36px 13px;font-size:11px;font-weight:800;letter-spacing:.14em;color:#087a9c}
#cleaning-offer .cleaning-offer-price{font-size:clamp(66px,11vw,88px);font-weight:800;letter-spacing:-.055em;line-height:1.05;margin:0 0 12px;color:#087fa2}
#cleaning-offer h2{font-size:clamp(24px,3vw,29px);line-height:1.22;margin:0 0 12px;color:#123b4d;letter-spacing:-.03em}
#cleaning-offer .cleaning-offer-description{font-size:15px;line-height:1.5;color:#45616e;margin:0 auto 18px;max-width:405px}
#cleaning-offer .cleaning-offer-hours{font-size:13px;font-weight:700;color:#234c5b;background:#eaf7fb;border-radius:11px;margin:0 auto 8px;padding:10px 12px;line-height:1.45}
#cleaning-offer .cleaning-offer-hours-note{font-size:12px;color:#506975;margin:0 0 20px;line-height:1.5}
#cleaning-offer .cleaning-offer-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#cleaning-offer .cleaning-offer-actions a{
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;
  min-height:67px;padding:11px 7px;border-radius:13px;text-decoration:none;
  font-size:16px;font-weight:800;line-height:1.25;transition:background-color .2s,transform .2s;
}
#cleaning-offer .cleaning-offer-actions a:hover{transform:translateY(-2px)}
#cleaning-offer .cleaning-offer-actions small{font-size:11px;white-space:nowrap;font-weight:600}
#cleaning-offer .cleaning-offer-call{background:#087fa2;color:#fff!important;border:1px solid #087fa2}
#cleaning-offer .cleaning-offer-call:hover{background:#086b8a}
#cleaning-offer .cleaning-offer-text{background:#f0fafc;color:#09617c!important;border:1.5px solid #087fa2}
#cleaning-offer .cleaning-offer-text:hover{background:#def3fa}
#cleaning-offer .cleaning-offer-terms{font-size:11px;line-height:1.55;color:#627b85;margin:17px auto 0;max-width:415px}
#cleaning-offer :focus-visible{outline:3px solid #00a4d3;outline-offset:3px}
html.cleaning-offer-open,body.cleaning-offer-open{overflow:hidden!important}
@media(max-width:560px){
  dialog#cleaning-offer{width:calc(100vw - 28px);max-width:calc(100vw - 28px);max-height:calc(100dvh - 28px);border-radius:19px}
  #cleaning-offer .cleaning-offer-panel{padding:38px 19px 21px}
  #cleaning-offer .cleaning-offer-price{font-size:68px}
  #cleaning-offer .cleaning-offer-description{font-size:14px}
  #cleaning-offer .cleaning-offer-hours{font-size:12px}
  #cleaning-offer .cleaning-offer-hours-note{font-size:11px;margin-bottom:15px}
  #cleaning-offer .cleaning-offer-actions a{min-height:59px;font-size:14px}
  #cleaning-offer .cleaning-offer-actions small{font-size:10px}
  #cleaning-offer .cleaning-offer-kicker{font-size:10px;letter-spacing:.11em}
}
@media(max-width:360px){#cleaning-offer .cleaning-offer-actions{grid-template-columns:1fr;gap:9px}#cleaning-offer .cleaning-offer-actions a{min-height:51px}}
@media(max-height:560px){dialog#cleaning-offer{max-height:calc(100dvh - 14px)}#cleaning-offer .cleaning-offer-price{font-size:54px}#cleaning-offer .cleaning-offer-panel{padding-top:31px;padding-bottom:17px}}
@media(prefers-reduced-motion:reduce){dialog#cleaning-offer[open]{animation:none}}

/* Shared sitewide floating offer access — below all page UI, above mobile call bar. */
.offer-launcher {
  position:fixed;z-index:12000;bottom:26px;right:26px;
  display:flex;align-items:center;gap:11px;
  width:max-content;max-width:calc(100vw - 32px);min-height:68px;
  border:1px solid rgba(255,255,255,.45);border-radius:999px;
  padding:9px 19px 9px 10px;background:linear-gradient(125deg,#086e94,#0a9bc3);
  box-shadow:0 14px 35px rgba(4,45,64,.26),0 3px 8px rgba(4,45,64,.13);
  color:#fff;text-align:left;cursor:pointer;
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(16px) scale(.91);transform-origin:85% 70%;
  transition:transform .31s cubic-bezier(.17,.89,.28,1.34),opacity .24s ease,visibility .24s;
  isolation:isolate;
}
.offer-launcher.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}
.offer-launcher:hover{filter:brightness(1.08);box-shadow:0 17px 40px rgba(4,45,64,.33),0 4px 12px rgba(4,45,64,.17)}
.offer-launcher:focus-visible{outline:3px solid #1cbadf;outline-offset:4px}
.offer-launcher-logo{width:49px;height:49px;border-radius:50%;background:#fff;display:grid;place-items:center;flex:none;box-shadow:inset 0 0 0 1px #d8f0f5}
.offer-launcher-logo img{width:37px;height:37px;display:block;object-fit:contain}
.offer-launcher-text{display:flex;flex-direction:column;gap:2px;line-height:1.17}
.offer-launcher-text strong{font-family:'DM Sans',Arial,sans-serif;font-size:15px;letter-spacing:.005em;color:#fff}
.offer-launcher-text small{font-size:11px;font-weight:600;color:#eafaff;white-space:nowrap}
/* The native HTML dialog is in the top layer. The launcher never covers it. */
dialog#cleaning-offer[open]::backdrop{animation:fdg-offer-backdrop-in .35s ease-out both}
dialog#cleaning-offer.offer-is-closing::backdrop{animation:fdg-offer-backdrop-out .46s ease-in both}
@keyframes fdg-offer-backdrop-in{from{background:rgba(3,20,31,0);-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{background:rgba(3,20,31,.7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}}
@keyframes fdg-offer-backdrop-out{from{background:rgba(3,20,31,.7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}to{background:rgba(3,20,31,0);-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}}
@media(max-width:700px){
  .offer-launcher{right:16px;bottom:calc(91px + env(safe-area-inset-bottom,0px));min-height:59px;padding:7px 15px 7px 8px;gap:8px}
  .offer-launcher-logo{height:43px;width:43px}
  .offer-launcher-logo img{width:33px;height:33px}
  .offer-launcher-text strong{font-size:13px}
  .offer-launcher-text small{font-size:10px}
}
@media(max-width:360px){.offer-launcher{right:9px;bottom:85px}}
@media(prefers-reduced-motion:reduce){.offer-launcher{transition:none!important}dialog#cleaning-offer[open]::backdrop,dialog#cleaning-offer.offer-is-closing::backdrop{animation:none!important}}
