/* ASCE v2.12.0 — quartz-inspired card inset / aligned section frames.
   Only layout properties: never replace background, texture, animation or theme colors. */
:root{--asce-align-width:1280px;--asce-card-gutter:clamp(16px,2.7vw,36px);--asce-align-gap:clamp(12px,1.4vw,20px)}
/* Equal outer boundaries on desktop; backgrounds still belong to the original full-width sections. */
body :is(.asce-solutions,.asce-about,.asce-pc-project-section,.asce-pc-clients,.asce-staff-section,.asce-contact){box-sizing:border-box;width:100%;max-width:var(--asce-align-width);margin-inline:auto;min-width:0}
/* The same inset for all cards, headings and the bottom edge, as in Quartz v1.7.1. */
body .asce-solutions{padding:clamp(34px,4vw,58px) var(--asce-card-gutter) var(--asce-card-gutter)}
body .asce-solutions-head,body .asce-solutions-grid{width:100%;max-width:none;min-width:0;margin-inline:0;box-sizing:border-box}
body .asce-solutions-grid{gap:var(--asce-align-gap);align-items:stretch}
body .asce-solutions-card{min-width:0;height:100%;justify-content:flex-start}
body .asce-solutions-symbol{flex-shrink:0}
body .asce-solutions-card h3{min-height:1.2em}
body .asce-pc-project-section,body .asce-pc-clients{padding-inline:var(--asce-card-gutter);box-sizing:border-box}
body .asce-pc-project-grid{gap:var(--asce-align-gap);align-items:stretch;min-width:0}
body .asce-pc-project{min-width:0;height:100%;display:flex;flex-direction:column}
body .asce-pc-project-info{flex:1;display:flex;flex-direction:column;min-width:0}
body .asce-pc-project-link{margin-top:auto}
body .asce-pc-client-viewport{min-width:0;max-width:100%}
body .asce-pc-client-card{min-width:0}
body .asce-staff-section{padding-inline:var(--asce-card-gutter)}
body .asce-staff-inner{width:100%;max-width:100%;min-width:0}
body .asce-staff-editorial-layout,body .asce-staff-feature{min-width:0;max-width:100%}
body .asce-staff-departments,body .asce-staff-teams{min-width:0;gap:var(--asce-align-gap)}
body .asce-staff-department,body .asce-staff-team{min-width:0;box-sizing:border-box}
body .asce-contact{padding-inline:var(--asce-card-gutter)}
body .asce-contact-inner{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
body .asce-contact-layout{min-width:0;gap:var(--asce-align-gap)}
body .asce-contact-details,body .asce-contact-form-panel{min-width:0;box-sizing:border-box}
body .asce-about{box-sizing:border-box}
body .asce-about-copy,body .asce-about-visual,body .asce-about-principles{min-width:0}
/* Avoid overflow from Elementor wrappers and long text without changing their backgrounds. */
body :is(.asce-solutions,.asce-about,.asce-pc-project-section,.asce-pc-clients,.asce-staff-section,.asce-contact) :is(img,video,iframe){max-width:100%}
body :is(.asce-solutions,.asce-about,.asce-pc-project-section,.asce-pc-clients,.asce-staff-section,.asce-contact) :is(h2,h3,h4,p){overflow-wrap:break-word}
@media(max-width:767px){
 :root{--asce-card-gutter:16px;--asce-align-gap:14px}
 body .asce-solutions{padding-block:30px 18px}
 body .asce-solutions-grid{grid-template-columns:1fr}
 body .asce-staff-editorial-layout{grid-template-columns:1fr}
}

/* v2.12.1 — Include the Living Map hero in the same outer card frame.
   Preserve map height, pin coordinates and absolute-positioned overlays. */
body .asce-lmap{
  box-sizing:border-box;
  width:100%;
  max-width:var(--asce-align-width);
  min-width:0;
  margin-inline:auto;
}
body .asce-lmap-stage{width:100%;max-width:100%;}
