/* Integration boundary and the one approved WordPress-only mobile polish. */
html.dfl-view{scroll-behavior:smooth;scroll-padding-top:100px}
html.dfl-view:has(.dfl-site:is(.bim-page,.dim-page,.coord-page,.modeling-page,.pd-page,.td-page)){scroll-behavior:auto}
html.dfl-view:has(.dfl-site.bim-page){scroll-padding-top:0}
html.dfl-view{font-size:16px;width:100%;min-width:0;height:auto}
body.dfl-view{margin:0;padding:0;width:100%;min-width:0;height:auto;min-height:100vh;background:#fff;border:0;box-shadow:none}
.dfl-site{box-sizing:border-box;min-width:0}
.dfl-site .site-header{box-sizing:border-box}
.dfl-site #main{display:block;position:relative;float:none;clear:both;padding:0;width:100%;height:auto;min-height:0;max-height:none;overflow:visible;background:transparent;max-width:var(--max);margin:0 auto}
.dfl-site #main>section{position:relative;height:auto;max-height:none;float:none;clear:both}
.dfl-site :is(section,article,figure,.hero-copy,.project-copy,.section-heading,.footer-top>div,.service-row>div){min-width:0}
.dfl-site .image-stage{flex:1 0 auto;min-height:0;justify-content:center}
.dfl-site .image-stage img{height:auto;max-width:100%;object-fit:contain}
.dfl-site.home-page .hero{grid-template-columns:minmax(0,42fr) minmax(0,58fr)}
.dfl-site.home-page .approach{grid-template-columns:minmax(0,36fr) minmax(0,64fr)}
.dfl-site.home-page :is(.project,.technology){grid-template-columns:minmax(0,42fr) minmax(0,58fr)}
.dfl-site.home-page .service-row{grid-template-columns:55px minmax(0,1fr) 170px}
.dfl-site.home-page .difference{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:1.25rem}
.dfl-site.home-page .difference>h2{grid-column:1;grid-row:2/4}
.dfl-site.home-page .difference>p{grid-column:2;grid-row:2}
.dfl-site.home-page .difference>.text-link{grid-column:2;grid-row:3}
.dfl-site .contact-strip>div{min-width:0}
.dfl-site .site-footer :is(a,address){overflow-wrap:anywhere}
@media(max-width:1100px){.dfl-site.home-page .hero{grid-template-columns:minmax(0,46fr) minmax(0,54fr)}.dfl-site.home-page .approach{column-gap:2.5rem}.dfl-site.home-page .service-row{grid-template-columns:35px minmax(0,1fr) 150px}}
@media(max-width:700px){.dfl-site.home-page :is(.hero,.approach,.project,.technology,.difference){grid-template-columns:minmax(0,1fr)}.dfl-site.home-page .service-row{grid-template-columns:30px minmax(0,1fr)}.dfl-site.home-page .difference>h2,.dfl-site.home-page .difference>p,.dfl-site.home-page .difference>.text-link{grid-column:auto;grid-row:auto}.dfl-site.home-page .difference{row-gap:0}.dfl-site .contact-strip{align-items:flex-start}}
.dfl-site :is(h1,h2,h3,p,a,button,li,figcaption,address){font-family:inherit}
.dfl-site :is(h1,h2,h3){color:inherit}
body.admin-bar .dfl-site .site-header{top:32px}
@media(max-width:782px){body.admin-bar .dfl-site .site-header{top:46px}}
@media(max-width:600px){body.admin-bar .dfl-site .site-header{top:0}}
@media(max-width:800px){.dfl-site .dim-figure figcaption{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.dfl-site .dim-figure figcaption a{display:block;flex:none;width:auto;min-width:0;white-space:normal;line-height:1.6}}
@media(prefers-reduced-motion:reduce){html.dfl-view{scroll-behavior:auto}}
.dfl-site .dfl-media-fallback{display:block;width:100%;max-width:100%;background:transparent;box-sizing:border-box}
.dfl-site a[aria-disabled="true"][data-dfl-media-missing]{cursor:default;opacity:.7;text-decoration:none}

/* WEB-13: corporate links only in approved footer and contact locations. */
.dfl-site .dfl-social-links{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1rem}
.dfl-site .dfl-social-link{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-width:44px;min-height:44px;padding:10px;box-sizing:border-box;color:inherit;font:inherit;font-size:.875rem;line-height:1.4;text-decoration:none}
.dfl-site .dfl-social-link svg{display:block;flex:none;width:20px;height:20px}
.dfl-site .dfl-social-link:hover{color:#6d5500}
.dfl-site .dfl-social-link:focus-visible{outline:2px solid currentColor;outline-offset:2px}
