/* V113: no desktop section geometry overrides. V108 inline CSS is authoritative. */
html.pragmaV113Desktop #pragmaContactBar,
html.pragmaV113Desktop .pragmaV112VideoControls,
html.pragmaV113Desktop #pragmaV60GalleryLightbox .pragmaV109ProjectDetails { display:none!important; }
/* The previous desktop lightbox fills its original stage, without a sidebar or native-size ceiling. */
html.pragmaV113Desktop #pragmaV60GalleryLightbox #pragmaV60GalleryImage {
  max-width:100%!important; max-height:100%!important;
}
html.pragmaV113Desktop :is(.pragmaV27HandIcon,.pragmaOrbitHand) svg {
  display:block; width:1em; height:1.2em;
}
/* Shared loader only: absolute overlay does not consume image area on desktop. */
html.pragmaV113Desktop #pragmaV60GalleryLightbox .pragmaV60Stage {position:relative!important}
html.pragmaV113Desktop #pragmaV60GalleryLightbox .pragmaV110ImageStatus {
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; padding:26px 50px; text-align:center; color:#e5d9ed; background:#171020;
  font:400 13px/1.5 Arial,sans-serif; z-index:3;
}
html.pragmaV113Desktop #pragmaV60GalleryLightbox [hidden] {display:none!important}
html.pragmaV113Desktop #pragmaV60GalleryLightbox .pragmaV110Retry {
  min-height:44px; padding:10px 18px; border:1px solid #9872b6; border-radius:20px;
  background:#713db1; color:white; cursor:pointer;
}
html.pragmaV113Desktop #pragmaV60GalleryLightbox[data-pragma-image-state="loading"] #pragmaV60GalleryImage,
html.pragmaV113Desktop #pragmaV60GalleryLightbox[data-pragma-image-state="error"] #pragmaV60GalleryImage {opacity:0!important}
/* Compatibility for moving the expanded map outside the presentation track.
   These rules do not target the preview, its title, map size, indicators or any other section. */
html.pragmaV113Desktop .pragmaMapFs.pragmaV109MapOverlay {z-index:200000!important}
html.pragmaV113Desktop .pragmaV109MapOverlay .pragmaMapFsContent {display:block!important;z-index:1!important}
html.pragmaV113Desktop .pragmaV109MapOverlay #mapCard.mapExpanded {
  position:absolute!important; inset:0!important; width:100%!important; height:100%!important;
  border-radius:inherit!important; transform:none!important; z-index:1!important;
}
html.pragmaV113Desktop .pragmaV109MapOverlay .pragmaMapFsShell {isolation:isolate!important}
html.pragmaV113Desktop .pragmaMapFs.open #pragmaV112MapClose {
  display:flex!important; visibility:visible!important; opacity:1!important; pointer-events:auto!important;
  position:absolute!important; top:16px!important; right:16px!important; left:auto!important; bottom:auto!important;
  padding:10px!important; z-index:200010!important; transform:none!important;
}
html.pragmaV113Desktop #pragmaV112MapClose svg {width:22px;height:22px;pointer-events:none}
html.pragmaV113Desktop #mapCard.mapExpanded .pragmaV98Exit {display:none!important}
/* Keep existing service details functional without changing desktop cards. */
html.pragmaV113Desktop .pragmaV109DetailDialog {
  width:min(560px,calc(100vw - 32px)); max-height:85dvh; box-sizing:border-box;
  border:1px solid #b092d155; border-radius:24px; padding:34px; background:#fff; color:#30223d; overflow:auto;
}
html.pragmaV113Desktop .pragmaV109DetailDialog .pragmaV109Close {
  position:absolute; right:16px; top:16px; width:44px; height:44px; padding:10px;
  border:1px solid #b092d155; border-radius:13px; background:#31213f; color:white; cursor:pointer;
}
html.pragmaV113Desktop .pragmaV109DetailDialog .pragmaV109Close svg {width:20px;height:20px}
/* Phone gallery: restore photo-filled cards and previous row scale, not small contained images. */
html.pragmaV113Phone #track.track .panel.portfolio .thumbGrid {
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-auto-rows:clamp(130px,24dvh,210px)!important; gap:10px!important;
}
html.pragmaV113Phone #track.track .panel.portfolio .thumbGrid .thumb {
  display:block!important; position:relative!important; height:100%!important;
  min-height:0!important; padding:0!important; border:0!important; background:#ddd!important;
}
html.pragmaV113Phone #track.track .panel.portfolio .thumbGrid .thumb > img {
  display:block!important; position:absolute!important; inset:0!important;
  width:100%!important; height:100%!important; max-width:100%!important; max-height:100%!important;
  object-fit:cover!important; object-position:center!important; margin:0!important;
}
html.pragmaV113Phone #track.track .panel.portfolio .thumbGrid .thumb .thumbLabel {
  position:absolute!important; inset:auto 0 0!important; display:block!important;
  padding:26px 11px 11px!important; width:100%!important; max-height:60%!important; overflow:hidden!important;
  background:linear-gradient(0deg,rgba(14,9,17,.85),rgba(14,9,17,.4) 72%,transparent)!important;
  color:white!important; pointer-events:none!important;
}
html.pragmaV113Phone #track.track .panel.portfolio .thumb .thumbLabel .pragmaV110CardTitle {
  color:white!important; font:600 12px/1.25 Arial,sans-serif!important; margin:0!important;
}
html.pragmaV113Phone #track.track .panel.portfolio .thumb .thumbLabel .pragmaV110CardClient {
  color:#ecdcf5!important; font:500 9px/1.25 Arial,sans-serif!important; margin:0 0 4px!important;
}
html.pragmaV113Phone #track.track .panel.portfolio .thumb .pragmaV110CardLocation {display:none!important}
/* Remove the intrinsic-pixel display cap; the full photograph fits the available stage. */
html.pragmaV113Phone #pragmaV60GalleryLightbox.pragmaV110Gallery #pragmaV60GalleryImage {
  max-width:100%!important; max-height:100%!important; object-fit:contain!important;
}
html.pragmaV113Phone #pragmaV60GalleryLightbox.pragmaV110Gallery .pragmaV60Stage {padding:8px 8px!important}
html.pragmaV113Phone #pragmaV60GalleryLightbox.pragmaV110Gallery .pragmaV109ProjectDetails {max-height:24dvh!important}
html.pragmaV113Phone #pragmaV60GalleryLightbox.pragmaV110Gallery .pragmaV110ProjectTitle {font-size:21px!important}
