/* Shared alignment for legacy service templates. The build sets each family
   explicitly; featured mosaics, FAQs, viewers, and unrelated apps stay natural. */
body[data-af-service-layout="land-surveying"] :is(.grid-3, .profile-disciplines, .license-strip, .grid-2:has(> .callout-panel)),
body[data-af-service-layout="civil-engineering"] :is(.hero-metrics, .scope-grid, .corridor-grid, .process, .civil-profile__disciplines),
body[data-af-service-layout="3d-rendering"] .seo-grid,
body[data-af-service-layout="scan-to-bim"]:not(.scan-bim-redesign) .grid:has(> .card),
body[data-af-service-layout="scan-to-bim"] .location-grid,
body[data-af-service-layout="drone-services"] .grid:has(> .card),
body[data-af-service-layout="real-estate-photography"] .grid:has(> .card),
body[data-af-service-layout="3d-gaussian-splatting"] .grid.grid-2,
body[data-af-service-layout="ai-photo-editing"] :is(.copy-grid, .areas-matrix, .service-areas-grid),
body[data-af-service-layout="ai-inspection"] .grid-wrap,
body[data-af-service-layout="object-detection"] :is(.metrics, .benefit-grid, .use-grid, .deliverables-grid, .process, .segmentation-counts),
body[data-af-service-layout="services"] :is(.stats, .grid.three, .grid.four, .service-grid),
body[data-af-service-layout="services"] #service-clusters > .wrap > .grid.two,
body[data-af-service-layout="drone-360-video"] :is(.steps, .tiles, .plans),
body[data-af-service-layout="google-street-view-capture"] :is(.steps, .tiles, .plans),
body[data-af-service-layout="google-maps-integration"] section[aria-labelledby="industriesTitle"] > .grid.grid-2,
body[data-af-service-layout="google-maps-integration"] section[aria-label^="Google Maps value"].grid-2,
body:is([data-af-service-layout="matterport"], [data-af-service-layout="matterport-3d-tours"]) :is(#tour .grid, .measurement-gallery, .hero-stats .steps) {
  grid-auto-rows: 1fr;
  align-items: stretch;
}

body:is([data-af-service-layout="matterport"], [data-af-service-layout="matterport-3d-tours"]) .measurement-gallery > figure {
  display: flex;
  flex-direction: column;
  margin: 0;
}
body:is([data-af-service-layout="matterport"], [data-af-service-layout="matterport-3d-tours"]) .measurement-gallery img {
  flex-shrink: 0;
  aspect-ratio: 2200 / 1422;
  object-fit: contain;
}
body:is([data-af-service-layout="matterport"], [data-af-service-layout="matterport-3d-tours"]) .measurement-gallery figcaption {
  flex: 1;
}
body:is([data-af-service-layout="matterport"], [data-af-service-layout="matterport-3d-tours"]) #tour .card h4 {
  overflow-wrap: anywhere;
}
body:is([data-af-service-layout="matterport"], [data-af-service-layout="matterport-3d-tours"]) #tour .card h4 .word {
  max-width: 100%;
  white-space: normal;
}
body:is([data-af-service-layout="matterport"], [data-af-service-layout="matterport-3d-tours"]):not(.matterport-global) #tour .specs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 205px), 1fr));
  grid-auto-rows: 1fr;
}
body:is([data-af-service-layout="matterport"], [data-af-service-layout="matterport-3d-tours"]):not(.matterport-global) #tour .specs > .spec { min-width: 0; }

/* Translated copy can be a single animated word, especially in Japanese. */
body[data-af-service-layout="scan-to-bim"] main {
  overflow-wrap: anywhere;
}
body[data-af-service-layout="scan-to-bim"] .card { min-width: 0; }
body[data-af-service-layout="scan-to-bim"] main .word {
  max-width: 100%;
  white-space: normal;
}

/* Older CAD templates allow decorative hero layers beyond the page bounds. */
body[data-af-service-layout="scan-to-cad"] { overflow-x: clip; }

body[data-af-service-layout="ai-inspection"] .grid-wrap {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
}

body[data-af-service-layout="object-detection"] .case-grid :is(.video-shell, .image-shell) {
  margin: 0;
}

@media (max-width: 680px) {
  body[data-af-service-layout="scan-to-bim"]:not(.scan-bim-redesign) .card table,
  body[data-af-service-layout="drone-services"] .card table { width: 100%; table-layout: fixed; }
  body[data-af-service-layout="scan-to-bim"]:not(.scan-bim-redesign) .card :is(th, td),
  body[data-af-service-layout="drone-services"] .card :is(th, td) { overflow-wrap: anywhere; }
}

@media (min-width: 981px) {
  body[data-af-service-layout="ai-3d-floorplan-generator"] .converter-wrap { align-items: stretch; }
  body[data-af-service-layout="ai-3d-floorplan-generator"] .converter-wrap .panel-card {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  body[data-af-service-layout="ai-3d-floorplan-generator"] .converter-wrap .preview-box { flex: 1; }
}
