:root{--muted:#485f72}
html,body{max-width:100%;overflow-x:clip}
.brxe-section,.brxe-container,.brxe-block,.brxe-div,section,main{min-width:0}
.dept-row::after{left:0;right:0}
@media (max-width: 900px){
  .hero-home .hero-media{overflow:hidden;padding-right:18px}
  .hero-home .hero-media>img:nth-child(2),
  .hero-home .hero-media>img:nth-child(3){transform:none}
  .hero-home .hero-label{left:18px}
}
@media (max-width: 640px){
  .shell,.narrow,.mega-inner{width:min(100% - 32px,1400px)}
  .hero-copy{padding-left:20px;padding-right:20px}
  .hero-home .hero-media{padding-left:20px;padding-right:20px}
  .dept-row{grid-template-columns:52px 1fr;gap:14px}
  .dept-row .tagline,.dept-thumb{grid-column:2}
}
/* Bricks specificity normalization */
.hero,.hero .brxe-heading,.hero .brxe-text-basic,.hero-copy h1{color:#fff!important}
.hero-copy p{color:rgba(255,255,255,.82)!important}
.hero .kicker,.hero .kicker p{color:#fff!important}
.hero-label,.hero-label .brxe-text-basic,.hero-label strong,.hero-label span{color:var(--ink)!important}
.site-header .brand img,.footer .brand img{background:transparent!important}
@media (max-width:760px){
  .hero-copy h1,.hero-home .hero-copy h1{font-size:clamp(2.85rem,13vw,4.45rem)!important;line-height:.91!important}
  .hero-copy p{font-size:1rem!important;line-height:1.55!important}
}

/* === Precision polish v2: typography, spacing, image framing === */
.hero-stage,
.hero-home .hero-stage{
  min-height:clamp(680px,82vh,860px);
}
.hero-copy{
  padding-top:82px;
  padding-bottom:96px;
  max-width:none;
}
.hero-copy h1{
  font-size:clamp(3.25rem,5.15vw,5.8rem)!important;
  line-height:.94!important;
  letter-spacing:-.052em!important;
  max-width:760px;
  text-wrap:balance;
}
.hero-home .hero-copy h1{
  font-size:clamp(3.5rem,5.4vw,6rem)!important;
  max-width:720px;
}
.hero-copy p{
  max-width:620px;
  font-size:clamp(1rem,1.15vw,1.18rem)!important;
  line-height:1.55!important;
}
.hero-actions{gap:14px 16px;flex-wrap:wrap}
.hero-actions .btn{min-height:52px}

.hero-media{
  min-height:620px;
}
.hero-media>img{
  object-position:center center;
}
.hero-label{
  max-width:min(360px,calc(100% - 48px));
}

.section{
  padding:96px 0;
}
.section-head{
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.68fr);
  gap:56px;
  margin-bottom:48px;
}
.section-head h2{
  font-size:clamp(2.75rem,4.25vw,4.75rem)!important;
  line-height:.96!important;
  letter-spacing:-.048em!important;
  max-width:900px;
}
.section-head p{
  font-size:1.04rem;
  line-height:1.62;
  max-width:560px;
  justify-self:end;
}

.editorial-split{
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:64px;
}
.big-statement h2{
  font-size:clamp(2.8rem,4.25vw,4.7rem)!important;
  line-height:.96!important;
  letter-spacing:-.05em!important;
}
.big-statement p{
  font-size:1.03rem;
  line-height:1.65;
}

.dept-row{
  grid-template-columns:64px 150px minmax(280px,1fr) minmax(280px,360px);
  gap:24px;
  min-height:180px;
  padding:24px 0;
}
.dept-row .name{font-size:1.35rem}
.dept-row .tagline{
  font-size:clamp(1.45rem,2vw,2.2rem);
  line-height:1.05;
  max-width:620px;
}
.dept-thumb{
  height:130px;
  overflow:hidden;
}
.dept-thumb::before{left:0;top:0}
.dept-thumb img{
  object-fit:cover;
  object-position:center;
}

.project-ribbon{
  grid-template-columns:1.08fr .92fr .92fr;
  gap:18px;
  align-items:stretch;
}
.project-ribbon figure,
.project-ribbon figure:nth-child(2),
.project-ribbon figure:nth-child(3){
  min-height:0;
  aspect-ratio:4/3;
  transform:none;
}
.project-ribbon img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.gallery{
  grid-auto-rows:105px;
  gap:14px;
}
.gallery figure{
  border-radius:2px;
}
.gallery img{
  object-position:center;
}
.team-preview{
  gap:18px;
}
.team-preview article,
.team-preview article:nth-child(2),
.team-preview article:nth-child(3){
  min-height:470px;
  transform:none;
}
.team-preview img{
  object-position:center 28%;
}

.contact-stage{
  grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
}
.contact-info,.contact-form{
  padding:48px;
}
.contact-info h2{
  font-size:clamp(2.7rem,4vw,4.5rem);
  line-height:.96;
}
.contact-form .form-group{
  margin-bottom:18px;
}
.contact-form label{
  display:block;
  margin-bottom:7px;
  font-weight:800;
  color:var(--ink);
}
.contact-form input,
.contact-form textarea{
  width:100%;
  min-height:50px;
  border:1px solid #9aa9b5;
  background:#fff;
  color:var(--ink);
  padding:13px 14px;
  border-radius:4px;
}
.contact-form textarea{min-height:170px;resize:vertical}
.contact-form .options-wrapper{margin-top:4px}
.gp-privacy-note{font-size:.88rem;line-height:1.5;margin:.25rem 0 1rem;color:var(--muted)}

@media(max-width:1180px){
  .hero-stage,.hero-home .hero-stage{min-height:auto}
  .hero-copy{padding-top:70px;padding-bottom:58px}
  .hero-copy h1,.hero-home .hero-copy h1{
    max-width:850px;
    font-size:clamp(3rem,7vw,5.1rem)!important;
  }
  .hero-media{min-height:520px}
  .section-head{grid-template-columns:1fr;gap:24px}
  .section-head p{justify-self:start;max-width:720px}
  .editorial-split{grid-template-columns:1fr;gap:34px}
  .big-statement{position:static}
}

@media(max-width:760px){
  .hero-copy{
    padding:58px 20px 42px!important;
  }
  .hero-copy::after{
    left:20px!important;
    bottom:10px!important;
  }
  .hero-copy h1,
  .hero-home .hero-copy h1{
    font-size:clamp(2.55rem,11.8vw,3.55rem)!important;
    line-height:.96!important;
    letter-spacing:-.045em!important;
    max-width:100%;
    margin-top:.28em;
    margin-bottom:.28em;
  }
  .hero-copy p{
    font-size:.98rem!important;
    line-height:1.55!important;
  }
  .hero-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    width:100%;
    margin-top:28px;
  }
  .hero-actions .btn{
    width:100%;
    justify-content:center;
    min-height:54px;
    text-align:center;
  }

  .hero-media,
  .hero-home .hero-media{
    min-height:0!important;
    height:auto!important;
    padding:0 16px 40px!important;
    display:block!important;
    overflow:hidden!important;
  }
  .hero-media>img,
  .hero-home .hero-media>img,
  .hero-home .hero-media>img:nth-child(1),
  .hero-home .hero-media>img:nth-child(n+2){
    display:block!important;
    position:relative!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:4/3!important;
    object-fit:cover!important;
    object-position:center center!important;
    transform:none!important;
    clip-path:none!important;
    margin:0!important;
  }
  .hero-home .hero-media>img:nth-child(n+2){
    display:none!important;
  }
  .hero-media::before{
    left:0!important;
    bottom:20px!important;
    width:50%!important;
    height:25%!important;
  }
  .hero-media::after{
    right:16px!important;
    top:16px!important;
    width:64px!important;
    height:64px!important;
    border-width:14px!important;
  }
  .hero-label,
  .hero-home .hero-label{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    margin:-22px 14px 0!important;
    width:calc(100% - 28px)!important;
    max-width:none!important;
  }

  .section{padding:64px 0}
  .section-head{margin-bottom:34px;gap:18px}
  .section-head h2,
  .big-statement h2{
    font-size:clamp(2.3rem,10vw,3.25rem)!important;
    line-height:1!important;
    letter-spacing:-.04em!important;
  }
  .section-head p,
  .big-statement p{
    font-size:.98rem;
    line-height:1.62;
  }

  .dept-row{
    grid-template-columns:42px 1fr!important;
    gap:10px 14px!important;
    padding:22px 0!important;
    min-height:0!important;
  }
  .dept-row .num{padding-left:12px}
  .dept-row .name{font-size:1.1rem}
  .dept-row .tagline{
    grid-column:1/-1!important;
    padding-left:56px!important;
    font-size:1.5rem!important;
    line-height:1.08!important;
  }
  .dept-thumb{
    grid-column:1/-1!important;
    margin-left:56px!important;
    width:calc(100% - 56px)!important;
    height:auto!important;
    aspect-ratio:16/9;
  }

  .project-ribbon{
    grid-template-columns:1fr;
    gap:16px;
  }
  .project-ribbon figure,
  .project-ribbon figure:nth-child(2),
  .project-ribbon figure:nth-child(3){
    aspect-ratio:4/3;
    min-height:0!important;
  }
  .gallery{
    grid-template-columns:1fr;
    grid-auto-rows:auto;
    gap:16px;
  }
  .gallery figure:nth-child(n){
    grid-column:auto!important;
    grid-row:auto!important;
    min-height:0!important;
    aspect-ratio:4/3;
  }

  .team-preview,.team-wall{grid-template-columns:1fr!important;gap:16px}
  .team-preview article:nth-child(n){min-height:0!important;aspect-ratio:4/5;transform:none!important}
  .team-preview img{object-position:center 24%}

  .contact-stage{grid-template-columns:1fr}
  .contact-info,.contact-form{padding:30px 20px!important}
  .contact-info h2{font-size:2.6rem}
  .contact-form .bricks-button{width:100%;justify-content:center;min-height:54px}
  .footer-grid{gap:34px}
}

@media(max-width:420px){
  .hero-copy h1,.hero-home .hero-copy h1{
    font-size:clamp(2.35rem,11vw,3.1rem)!important;
  }
  .section-head h2,.big-statement h2{
    font-size:clamp(2.15rem,9.6vw,2.9rem)!important;
  }
}

/* === Precision polish v3: match actual Bricks markup === */
.dept-row{display:grid!important}

/* project-ribbon and gallery are native Bricks DIV cards, not figure elements */
.project-ribbon > .brxe-div{
  position:relative!important;
  overflow:hidden!important;
  min-height:0!important;
  aspect-ratio:4/3;
  background:#d8d1c7;
  box-shadow:0 16px 42px rgba(7,24,39,.12);
  transform:none!important;
}
.project-ribbon > .brxe-div > img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  margin:0!important;
  transform:none!important;
}
.project-ribbon > .brxe-div > .brxe-div{
  position:absolute!important;
  left:14px!important;
  bottom:14px!important;
  z-index:3!important;
  background:#fff!important;
  color:var(--ink)!important;
  padding:9px 12px!important;
  border-left:5px solid var(--accent)!important;
  box-shadow:0 8px 24px rgba(0,0,0,.16)!important;
  width:auto!important;
}
.project-ribbon > .brxe-div > .brxe-div p{
  margin:0!important;
  font-size:.86rem!important;
  font-weight:900!important;
  color:var(--ink)!important;
}

.gallery > .brxe-div{
  position:relative!important;
  overflow:hidden!important;
  background:#d8d1c7!important;
  box-shadow:0 14px 38px rgba(0,0,0,.16)!important;
}
.gallery > .brxe-div:nth-child(1){grid-column:span 7;grid-row:span 5}
.gallery > .brxe-div:nth-child(2){grid-column:span 5;grid-row:span 3}
.gallery > .brxe-div:nth-child(3){grid-column:span 5;grid-row:span 4}
.gallery > .brxe-div:nth-child(4){grid-column:span 7;grid-row:span 2}
.gallery > .brxe-div:nth-child(n+5){grid-column:span 4;grid-row:span 3}
.gallery > .brxe-div > img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  margin:0!important;
}
.gallery > .brxe-div > .brxe-div{
  position:absolute!important;
  left:12px!important;
  bottom:12px!important;
  z-index:3!important;
  background:#fff!important;
  padding:8px 11px!important;
  border-left:5px solid var(--accent)!important;
  width:auto!important;
  box-shadow:0 8px 20px rgba(0,0,0,.16)!important;
}
.gallery > .brxe-div > .brxe-div p{
  margin:0!important;
  font-size:.84rem!important;
  font-weight:900!important;
  color:var(--ink)!important;
}

@media(max-width:760px){
  .dept-row{display:grid!important}
  .project-ribbon{display:grid!important;grid-template-columns:1fr!important;gap:16px!important}
  .project-ribbon > .brxe-div{
    aspect-ratio:4/3!important;
    width:100%!important;
  }
  .gallery{display:grid!important;grid-template-columns:1fr!important;grid-auto-rows:auto!important;gap:16px!important}
  .gallery > .brxe-div:nth-child(n){
    grid-column:auto!important;
    grid-row:auto!important;
    aspect-ratio:4/3!important;
    min-height:0!important;
  }
}

/* === Precision polish v4: team cards and compact mobile metrics === */
.team-wall{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
.team-card,
.team-card:nth-child(n){
  margin-top:0!important;
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  background:#fff!important;
}
.team-card img{
  width:100%!important;
  aspect-ratio:4/5!important;
  height:auto!important;
  object-fit:cover!important;
  object-position:center 22%!important;
  margin:0!important;
}
.team-card > .brxe-div{
  position:relative!important;
  padding:16px 16px 19px!important;
  background:#fff!important;
  border-top:5px solid var(--accent)!important;
  min-height:86px;
}
.team-card > .brxe-div h3{
  margin:0 0 4px!important;
  font-size:1.05rem!important;
  line-height:1.18!important;
}
.team-card > .brxe-div p{
  margin:0!important;
  font-size:.86rem!important;
  line-height:1.45!important;
  color:var(--muted)!important;
}

@media(max-width:1180px){
  .team-wall{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .team-wall{grid-template-columns:1fr!important;gap:16px!important}
  .team-card img{aspect-ratio:4/4.6!important;object-position:center 18%!important}
  .team-card > .brxe-div{min-height:0}
  .overlap-grid .metric{padding:24px 24px!important;min-height:118px!important}
}
@media(min-width:1181px){
  body.page-id-54 .hero-stage{
    height:clamp(680px,82vh,860px)!important;
    min-height:0!important;
    max-height:860px!important;
    grid-template-rows:minmax(0,1fr)!important;
  }
  body.page-id-54 .hero-copy,
  body.page-id-54 .hero-media{
    min-height:0!important;
    height:100%!important;
  }
  body.page-id-54 .hero-media{overflow:hidden!important}
  body.page-id-54 .hero-media>img{
    min-height:0!important;
    max-height:100%!important;
    height:100%!important;
    width:100%!important;
    object-fit:cover!important;
    object-position:center center!important;
  }
}

/* === Services hero uniformity: same geometry as department pages === */
@media(min-width:1181px){
  body.page-id-23 .hero-stage{
    height:clamp(680px,82vh,860px)!important;
    min-height:0!important;
    max-height:860px!important;
    grid-template-rows:minmax(0,1fr)!important;
  }
  body.page-id-23 .hero-copy,
  body.page-id-23 .hero-media{
    min-height:0!important;
    height:100%!important;
  }
  body.page-id-23 .hero-media{
    overflow:hidden!important;
  }
  body.page-id-23 .hero-media>img{
    min-height:0!important;
    max-height:100%!important;
    height:100%!important;
    width:100%!important;
    object-fit:cover!important;
    object-position:center center!important;
  }
}

/* Services list: consistent typographic and vertical alignment */
body.page-id-23 .dept-row{
  align-items:center!important;
}
body.page-id-23 .dept-row .num,
body.page-id-23 .dept-row .name,
body.page-id-23 .dept-row .tagline{
  align-self:center!important;
}
body.page-id-23 .dept-thumb{
  align-self:center!important;
}
@media(max-width:760px){
  body.page-id-23 .dept-row{
    padding:24px 0!important;
  }
  body.page-id-23 .dept-row .tagline{
    padding-left:56px!important;
    margin-top:2px!important;
  }
  body.page-id-23 .dept-thumb{
    margin-top:8px!important;
  }
}
