/* Phase B instant central photos: old PHP image src is never shown before JS hydrates.
   Applied in <head> before service-card HTML appears. */
html.dbsu-image-boot img.service-img:not(.dbsu-photo-ready){opacity:0!important;}
html.dbsu-image-boot img.service-img.dbsu-photo-ready{opacity:1!important;}
.dbsu-page .dbsu-photo-frame{position:relative;width:100%;aspect-ratio:1/1;border-radius:16px;overflow:hidden;display:block;background:linear-gradient(135deg,#eff5ff,#e8edf6);}
.dbsu-page .dbsu-photo-frame::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 24%,rgba(255,255,255,.55) 48%,transparent 73%);background-size:200% 100%;animation:dbsu-image-shimmer 1.3s linear infinite;pointer-events:none;}
.dbsu-page .dbsu-photo-frame:has(img.dbsu-photo-ready)::before,.dbsu-page .dbsu-photo-frame:has(img.dbsu-photo-failed)::before{display:none;}
.dbsu-page .dbsu-photo-frame img.service-img{position:relative;z-index:1;display:block;width:100%!important;height:100%!important;object-fit:cover;}
.dbsu-page .dbsu-photo-frame:has(img.dbsu-photo-failed)::after{content:"Photo unavailable";position:absolute;inset:0;display:grid;place-items:center;color:#60728c;font-size:11px;text-align:center;padding:10px;}
.dbsu-header-icon{background:linear-gradient(135deg,#e7f0ff,#f4f8ff)!important;}
.dbsu-header-icon img:not(.dbsu-photo-ready){opacity:0!important;}
@keyframes dbsu-image-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.dbsu-page .dbsu-photo-frame::before{animation:none}}

/* Phase B - common presentation only.  No SEO/price/cart selectors modified. */
:root { --dbsu-blue:#0667F9; --dbsu-text:#172b48; --dbsu-muted:#66748a; }
.dbsu-enabled .dbsu-app-header,
.dbsu-enabled .dbsu-card-list,
.dbsu-enabled .dbsu-service-card {box-sizing:border-box;}
.dbsu-app-header{max-width:925px;margin:0 auto 18px;background:linear-gradient(135deg,#0964f4,#0065ff);border-radius:24px;color:#fff;padding:16px 18px;display:flex;align-items:center;gap:15px;box-shadow:0 12px 22px rgba(3,78,196,.16);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;}
.dbsu-header-icon{width:67px;height:67px;flex:0 0 67px;border:7px solid rgba(255,255,255,.95);background:#eaf1fa;border-radius:17px;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.dbsu-header-icon img{width:100%;height:100%;object-fit:cover;}
.dbsu-header-copy{min-width:0;flex:1;}
.dbsu-eyebrow{font-size:10px;letter-spacing:1.8px;color:#eaf2ff;font-weight:700;margin:0 0 5px;}
.dbsu-header-name{font-size:clamp(20px,4vw,25px);line-height:1.2;font-weight:800;color:#fff;margin:0 0 6px;}
.dbsu-header-sub{font-size:13px;color:#e5eeff;line-height:1.35;}
.dbsu-header-close{width:42px;height:42px;flex:0 0 42px;border:0;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:27px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.dbsu-header-close:focus-visible{outline:3px solid #fff;outline-offset:2px;}
.dbsu-page .dbsu-card-list{display:grid!important;grid-template-columns:1fr!important;gap:15px!important;max-width:925px;margin:0 auto 26px!important;align-items:stretch;}
.dbsu-page .dbsu-card-list > [class*="col-"]{flex:0 0 100%!important;max-width:100%!important;width:100%!important;min-width:0!important;display:block!important;padding:0!important;margin:0!important;}
.dbsu-page .dbsu-service-card{display:flex!important;align-items:stretch;gap:18px;background:#fff;border-radius:22px;border:1px solid #eef2fa;box-shadow:0 7px 20px rgba(20,54,110,.055);padding:16px!important;text-align:left!important;transition:transform .2s ease,box-shadow .2s ease;overflow:visible!important;height:auto!important;min-height:168px;}
.dbsu-page .dbsu-service-card:hover{transform:translateY(-1px)!important;box-shadow:0 10px 25px rgba(20,54,110,.08)}
.dbsu-page .dbsu-info{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;}
.dbsu-page .dbsu-info > h3, .dbsu-page .dbsu-info > h2{margin:0 0 5px!important;color:#172332;font-size:clamp(16px,2.5vw,19px);line-height:1.3;font-weight:760;}
.dbsu-page .dbsu-price{font-size:17px;font-weight:800;color:#101724;margin:0 0 8px;letter-spacing:-.3px;}
.dbsu-page .dbsu-info > p:not(.dbsu-price){font-size:13px;color:#66717f;line-height:1.46;margin:0 0 12px!important;}
.dbsu-page .dbsu-details-btn{margin-top:auto;padding:4px 0;display:inline-flex;gap:4px;align-items:center;justify-content:flex-start;border:0;background:transparent;color:#0967df;font-size:14px;font-weight:650;cursor:pointer;}
.dbsu-page .dbsu-details-btn:focus-visible{outline:3px solid #96baff;outline-offset:3px;border-radius:4px;}
.dbsu-page .dbsu-side{width:122px;flex:0 0 122px;display:flex;flex-direction:column;gap:10px;align-items:stretch;justify-content:flex-start;}
.dbsu-page .dbsu-side .service-img{height:113px!important;width:100%!important;max-width:none!important;aspect-ratio:1 / 1;object-fit:cover!important;border-radius:16px!important;margin:0!important;}
.dbsu-page .dbsu-side form{margin:0!important;width:100%;}
.dbsu-page .dbsu-side form button{display:flex!important;align-items:center;justify-content:center;width:100%!important;min-width:0!important;min-height:46px;padding:10px 8px!important;font-size:15px!important;font-weight:750!important;border:0!important;border-radius:14px!important;color:#fff!important;background:#0869f9!important;box-shadow:0 4px 12px rgba(0,93,255,.16)!important;white-space:normal;line-height:1.2;cursor:pointer;}
.dbsu-page .dbsu-side form button:hover{background:#005cda!important;}
.dbsu-page .dbsu-side form button:focus-visible{outline:3px solid #89b5ff;outline-offset:2px;}
.dbsu-page .dbsu-info > .proc-wrap,.dbsu-page .dbsu-info > .offer-card{display:none!important;}
.dbsu-page .dbsu-info > .hot-ribbon{position:static!important;transform:none!important;left:auto!important;top:auto!important;box-shadow:none!important;display:inline-flex;width:auto;padding:4px 9px!important;font-size:10px;border-radius:6px;margin:0 0 6px;}
.dbsu-page .dbsu-info > .dbsu-original-price{display:none!important;}
.dbsu-details-dialog{border:0;max-width:min(530px,calc(100vw - 24px));width:100%;max-height:min(88dvh,830px);border-radius:24px;padding:0;box-shadow:0 22px 90px rgba(18,37,66,.3);color:#1c2c41;}
.dbsu-details-dialog::backdrop{background:rgba(12,22,43,.54);backdrop-filter:blur(5px);}
.dbsu-dialog-top{position:sticky;top:0;background:#fff;z-index:2;border-bottom:1px solid #eaf0f8;padding:17px 20px;display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.dbsu-dialog-top strong{font-size:19px;line-height:1.35;}
.dbsu-dialog-close{border:0;background:#eff4fb;border-radius:11px;width:34px;height:34px;flex:0 0 34px;font-size:23px;cursor:pointer;color:#243e66;}
.dbsu-dialog-body{padding:17px 20px 24px;font-size:14px;line-height:1.55;}
.dbsu-dialog-body .dbsu-dialog-price{font-size:22px;font-weight:800;margin-bottom:12px;color:#0e65e6;}
.dbsu-dialog-body .proc-wrap{display:block!important;margin:15px 0 0;}
.dbsu-dialog-body .proc-content{max-height:none!important;overflow:visible!important;}
.dbsu-dialog-body .proc-label,.dbsu-dialog-body .proc-toggle{display:none!important;}
.dbsu-dialog-body .proc-box{margin:0;box-shadow:none!important;}
.dbsu-dialog-body .offer-card{display:block!important;}
.dbsu-shutter{position:fixed;inset:0;z-index:2147482000;background:rgba(4,14,28,.58);backdrop-filter:blur(7px);display:flex;align-items:flex-end;justify-content:center;}
.dbsu-shutter[hidden]{display:none!important;}
.dbsu-shutter-panel{height:min(93dvh,1000px);width:100%;max-width:710px;border-radius:28px 28px 0 0;background:#f7f8fc;overflow:hidden;box-shadow:0 0 80px rgba(0,0,0,.2);animation:dbsu-slideup .28s cubic-bezier(.2,.8,.25,1);}
.dbsu-shutter iframe{width:100%;height:calc(100% - 36px);border:0;background:#f7f8fc;display:block;}
/* Visible native-feeling sheet drag handle above iframe (mobile and desktop). */
.dbsu-drag-handle{display:flex;align-items:center;justify-content:center;width:100%;height:36px;padding:0;margin:0;border:0;cursor:grab;background:#f7f8fc;border-radius:28px 28px 0 0;touch-action:none;user-select:none;-webkit-user-select:none;}
.dbsu-drag-handle span{width:62px;height:5px;border-radius:999px;background:#cdd4e0;pointer-events:none;}
.dbsu-drag-handle:active{cursor:grabbing;}
.dbsu-drag-handle:focus-visible{outline:3px solid #076bff;outline-offset:-3px;}

.dbsu-page .dbsu-close-sheet{display:none;}
html.dbsu-in-sheet body{background:#f7f8fc!important;}
html.dbsu-in-sheet #stickyTopbar,html.dbsu-in-sheet .warranty-banner{display:none!important;}
html.dbsu-in-sheet .dbsu-page > h1, html.dbsu-in-sheet .dbsu-page > h1 + p, html.dbsu-in-sheet .dbsu-page > .text-center.muted {display:none!important;}
html.dbsu-in-sheet .dbsu-page .seo-block,html.dbsu-in-sheet .dbsu-page .content-card{display:none!important;}
html.dbsu-in-sheet .dbsu-page .dbsu-card-list ~ .my-4,html.dbsu-in-sheet .dbsu-page .dbsu-card-list ~ .container {display:none!important;}
html.dbsu-in-sheet footer{display:none!important;}
html.dbsu-in-sheet .dbsu-page{margin-top:12px!important;max-width:100%;padding:0 14px 24px;}
html.dbsu-in-sheet .dbsu-app-header{margin-bottom:14px;}
@keyframes dbsu-slideup{from{transform:translateY(100%);opacity:.6}to{transform:translateY(0);opacity:1}}
@media (min-width:900px){.dbsu-shutter{align-items:center;}.dbsu-shutter-panel{height:min(91dvh,920px);border-radius:27px;max-width:680px;}}
@media(max-width:600px){.dbsu-page .dbsu-service-card{padding:13px!important;gap:11px;min-height:156px;}.dbsu-page .dbsu-side{width:104px;flex-basis:104px;}.dbsu-page .dbsu-side .service-img{height:100px!important;}.dbsu-page .dbsu-side form button{min-height:43px;font-size:14px!important;}.dbsu-app-header{padding:14px;gap:11px;border-radius:21px;}.dbsu-header-icon{width:62px;height:62px;flex-basis:62px;}.dbsu-header-close{width:38px;height:38px;flex-basis:38px;}.dbsu-header-sub{font-size:12px;}}
@media(prefers-reduced-motion:reduce){.dbsu-service-card,.dbsu-shutter-panel{transition:none!important;animation:none!important;}}

/* Sheet blue header is a reliable swipe-down surface on touch devices.
   Normal service-list scrolling stays enabled; the page is dismissed only from the
   header or when the list is already scrolled to the top. */
html.dbsu-in-sheet .dbsu-app-header{touch-action:none;-webkit-user-select:none;user-select:none;}
html.dbsu-in-sheet .dbsu-page{overscroll-behavior-y:contain;}
@media (max-width:600px){.dbsu-drag-handle{height:38px;}.dbsu-shutter iframe{height:calc(100% - 38px);}}

/* Image-frame sizing parity with existing 113px / 100px card images. */
.dbsu-page .dbsu-side .dbsu-photo-frame{height:113px;}
@media(max-width:600px){.dbsu-page .dbsu-side .dbsu-photo-frame{height:100px;}}

/* ----------------------------------------------------------------------
   Phase B: DIRECT SEO LANDING PAGE POLISH (Nov 2026)
   The original H1, city text, intro copy, JSON-LD, FAQ, and city rate cards
   remain in the HTML. Only their visible spacing/typography is refined.
   Does NOT apply to the homepage iframe sheet (.dbsu-in-sheet).
   ---------------------------------------------------------------------- */
html.dbsu-enabled:not(.dbsu-in-sheet) .dbsu-page {
  margin-top: 20px !important;
}
html.dbsu-enabled:not(.dbsu-in-sheet) .dbsu-page > h1 {
  width: min(100%, 980px);
  margin: 8px auto 9px !important;
  color: #152944;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: clamp(24px, 2.7vw, 31px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em;
  line-height: 1.26 !important;
  text-align: center;
  text-wrap: balance;
}
html.dbsu-enabled:not(.dbsu-in-sheet) .dbsu-page > p.text-center,
html.dbsu-enabled:not(.dbsu-in-sheet) .dbsu-page > .text-center.muted {
  max-width: 850px;
  margin: 0 auto 16px !important;
  color: #5c6d85;
  font-size: 14px !important;
  line-height: 1.55 !important;
  text-align: center;
}
html.dbsu-enabled:not(.dbsu-in-sheet) .dbsu-page > .dbsu-app-header {
  margin-top: 12px;
  margin-bottom: 14px;
}
html.dbsu-enabled:not(.dbsu-in-sheet) .dbsu-page > .dbsu-card-list {
  gap: 13px !important;
}
@media (max-width: 600px) {
  html.dbsu-enabled:not(.dbsu-in-sheet) .dbsu-page {
    margin-top: 12px !important;
  }
  html.dbsu-enabled:not(.dbsu-in-sheet) .dbsu-page > h1 {
    margin: 6px auto 7px !important;
    font-size: clamp(21px, 5.6vw, 25px) !important;
    line-height: 1.28 !important;
  }
  html.dbsu-enabled:not(.dbsu-in-sheet) .dbsu-page > p.text-center,
  html.dbsu-enabled:not(.dbsu-in-sheet) .dbsu-page > .text-center.muted {
    padding: 0 3px;
    margin: 0 auto 12px !important;
    font-size: 12px !important;
    line-height: 1.5 !important;
  }
  html.dbsu-enabled:not(.dbsu-in-sheet) .dbsu-page > .dbsu-app-header {
    margin-top: 9px;
    margin-bottom: 12px;
  }
}


/* PHASE B: MOBILE VERTICAL FLOW + CONCISE SERVICE SUMMARIES
   Scope the axis-lock to sheet pages. Normal SEO pages and footer unaffected.
   Preserve original descriptions, prices, service form, and View Details.
*/
html.dbsu-in-sheet,
html.dbsu-in-sheet body {
  width:100% !important;
  max-width:100% !important;
  overflow-x:hidden !important;
  overscroll-behavior-x:none;
}
html.dbsu-in-sheet body { touch-action:pan-y; }
html.dbsu-in-sheet .dbsu-page {
  box-sizing:border-box !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  overflow-x:clip !important;
  padding-inline:12px !important;
}
/* Bootstrap .row has negative margins and gutter padding by default. */
html.dbsu-in-sheet .dbsu-page .dbsu-card-list {
  --bs-gutter-x:0;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin-inline:0 !important;
  padding-inline:0 !important;
  overflow-x:clip !important;
  touch-action:pan-y;
}
html.dbsu-in-sheet .dbsu-page .dbsu-card-list > [class*="col-"] {
  box-sizing:border-box !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin-inline:0 !important;
  padding-inline:0 !important;
}
.dbsu-page .dbsu-service-card,
.dbsu-page .dbsu-info,
.dbsu-page .dbsu-side,
.dbsu-page .dbsu-app-header {
  box-sizing:border-box;
  max-width:100%;
  min-width:0;
}
.dbsu-page .dbsu-service-card { width:100%; min-height:0 !important; }
.dbsu-page .dbsu-info > h2,
.dbsu-page .dbsu-info > h3,
.dbsu-page .dbsu-info > p { max-width:100%; overflow-wrap:anywhere; }
.dbsu-page .dbsu-service-summary {
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  margin:3px 0 9px;
  padding:8px 10px;
  border-radius:11px;
  background:#f5f8fe;
  border:1px solid #e9f0fc;
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
}
.dbsu-page .dbsu-summary-label {
  display:block;
  margin-bottom:5px;
  font-size:9px;
  font-weight:800;
  letter-spacing:.75px;
  line-height:1.2;
  color:#70809a;
}
.dbsu-page .dbsu-summary-lines { display:flex; flex-wrap:wrap; gap:5px 8px; }
.dbsu-page .dbsu-summary-item {
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:11px;
  line-height:1.3;
  color:#405777;
  overflow-wrap:anywhere;
}
.dbsu-page .dbsu-summary-item::before {
  content:"";
  display:inline-block;
  width:5px;
  height:5px;
  flex:0 0 5px;
  border-radius:50%;
  background:#0869f9;
}
.dbsu-page .dbsu-details-btn { margin-top:auto; }
@media (max-width:600px) {
  html.dbsu-in-sheet .dbsu-page .dbsu-app-header { width:100%; max-width:100%; }
  .dbsu-page .dbsu-service-card {
    gap:10px !important;
    padding:12px !important;
    min-height:0 !important;
    overflow:hidden !important;
  }
  .dbsu-page .dbsu-info { flex:1 1 0; min-width:0; }
  .dbsu-page .dbsu-side { width:98px; flex:0 0 98px; gap:7px; }
  .dbsu-page .dbsu-side .dbsu-photo-frame,
  .dbsu-page .dbsu-side .service-img { height:94px !important; }
  .dbsu-page .dbsu-side form button { min-height:39px !important; padding:7px 5px !important; }
  .dbsu-page .dbsu-info > h3,
  .dbsu-page .dbsu-info > h2 { font-size:15px; line-height:1.28; }
  .dbsu-page .dbsu-info > p:not(.dbsu-price) { margin-bottom:7px !important; font-size:12px; }
  .dbsu-page .dbsu-service-summary { padding:7px 8px; margin:4px 0 8px; }
  .dbsu-page .dbsu-summary-item { font-size:10px; }
  .dbsu-page .dbsu-summary-lines { flex-direction:column; gap:4px; }
  .dbsu-page .dbsu-details-btn { font-size:13px; }
}
@media (max-width:370px) {
  .dbsu-page .dbsu-service-card { gap:9px !important; padding:10px !important; }
  .dbsu-page .dbsu-side { width:90px; flex-basis:90px; }
  .dbsu-page .dbsu-side .dbsu-photo-frame,
  .dbsu-page .dbsu-side .service-img { height:86px !important; }
  .dbsu-page .dbsu-summary-item { font-size:10px; }
}
