/* =========================================================
   Clear Link v1.8.1
   Unified top-style FV + unrestricted headings without overlap
   ========================================================= */

/* ---------- Unified FV: same interaction / visual language as TOP ---------- */
.site-unified-hero{
  height:clamp(670px,82svh,900px)!important;
  min-height:670px!important;
  align-items:flex-end!important;
}
.site-unified-hero .home-hero__content{
  width:100%;
  padding-top:0!important;
  padding-bottom:74px!important;
}
.site-unified-hero .home-hero__panel{
  width:min(980px,76vw)!important;
  min-height:0!important;
  padding:clamp(34px,4vw,50px) clamp(34px,4.6vw,62px)!important;
  background:rgba(43,54,48,.43)!important;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 24px 60px rgba(22,35,29,.12),inset 0 0 0 1px rgba(255,255,255,.06)!important;
  backdrop-filter:blur(7px)!important;
  -webkit-backdrop-filter:blur(7px)!important;
  overflow:hidden;
}
.site-unified-hero .home-hero__panel h1{
  width:auto!important;
  max-width:none!important;
  margin:0!important;
  font-size:clamp(40px,4.55vw,68px)!important;
  line-height:1.38!important;
  letter-spacing:.025em!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
  text-wrap:balance;
}
.site-unified-hero .home-hero__panel .home-hero__script{
  margin:0 0 18px!important;
  font-size:clamp(15px,1.25vw,19px)!important;
  transform:none!important;
  letter-spacing:.055em;
}
.site-unified-hero .home-hero__panel .home-hero__lead{
  width:auto!important;
  max-width:72ch!important;
  margin:22px 0 0!important;
  font-size:clamp(12px,1vw,14px)!important;
  line-height:2!important;
  letter-spacing:.025em!important;
}
.site-unified-hero .home-hero__slide img{object-position:center 48%}
.site-unified-hero .home-hero__controls{z-index:8}
.site-unified-hero + .bp-breadcrumb-wrap,
.site-unified-hero + .ft-breadcrumbs{position:relative;z-index:1}

/* ---------- Site-wide heading width policy ---------- */
main :where(h1,h2){
  max-width:none!important;
  width:auto!important;
  min-width:0!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
  text-wrap:balance;
}
main :where(.section-title,.bp-section__heading,.bp-page-title__main,.archive-intro,.page-intro__grid>div,.service-concept__copy,.case-story>div,.ft-section-head,.ft-consult__intro,.ft-promise__heading,.ft-cases__head>div){
  max-width:none!important;
  width:100%!important;
  min-width:0!important;
}
main :where(.section-title h2,.bp-section__heading h2,.bp-page-title__main h2,.archive-intro h2,.page-intro__grid h2,.service-concept__copy h2,.case-story h2,.ft-section-head h2,.ft-consult__intro h2,.ft-promise__heading h2,.ft-cases__head h2){
  max-width:none!important;
}

/* ---------- Blueprint pages: headings get the whole row ---------- */
.bp-design .bp-page-title__grid{
  grid-template-columns:1fr!important;
  gap:22px!important;
}
.bp-design .bp-page-title__meta{
  position:static!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:20px!important;
  order:0!important;
  text-align:left!important;
}
.bp-design .bp-page-title__main{order:1!important}
.bp-design .bp-page-title__main h2{font-size:clamp(36px,4.4vw,62px)!important;line-height:1.42!important}
.bp-design .bp-page-title__main p{max-width:78ch!important;line-height:2!important}

.bp-design .bp-section__layout{
  display:grid!important;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr)!important;
  grid-template-areas:"head head" "media grid"!important;
  column-gap:clamp(28px,4vw,64px)!important;
  row-gap:32px!important;
  align-items:start!important;
}
.bp-design .bp-section__heading{
  grid-area:head!important;
  grid-column:1/-1!important;
  grid-row:auto!important;
  position:relative!important;
  inset:auto!important;
  z-index:2!important;
  padding:0!important;
  margin:0!important;
}
.bp-design .bp-section__heading--row{
  display:block!important;
  width:100%!important;
}
.bp-design .bp-section__media{
  grid-area:media!important;
  grid-column:1!important;
  grid-row:2!important;
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  aspect-ratio:4/3!important;
}
.bp-design .bp-feature-grid{
  grid-area:grid!important;
  grid-column:2!important;
  grid-row:2!important;
  min-width:0!important;
}
.bp-design .bp-section--even .bp-feature-grid{
  grid-column:1/-1!important;
}
.bp-design .bp-section--even .bp-section__media{display:none!important}

/* Cards / hubs: heading row stays above, never under cards */
.bp-design .bp-card-grid,
.bp-design .bp-service-grid,
.bp-design .bp-problem-grid,
.bp-design .bp-gallery__grid,
.bp-design .bp-next__grid,
.hub-grid,
.related-menu__grid,
.service-reasons__grid{
  position:relative!important;
  z-index:1!important;
  clear:both!important;
}

/* Signature copy: avoid constrained headings while preserving the visual variants */
.bp-design .bp-signature__copy h2{
  max-width:none!important;
  line-height:1.3!important;
  font-size:clamp(32px,3.8vw,56px)!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
}
.bp-design .bp-signature__copy p{max-width:55ch!important}

/* Standard/fallback layouts */
.page-intro__grid{
  grid-template-columns:1fr!important;
  gap:26px!important;
}
.page-intro__grid .entry-content{max-width:82ch!important}
.service-concept__grid{
  grid-template-columns:minmax(0,1fr) minmax(360px,.8fr)!important;
  gap:clamp(34px,5vw,78px)!important;
}
.service-concept__copy h2{line-height:1.48!important}
.case-story{
  grid-template-columns:1fr!important;
  gap:26px!important;
}
.case-story__body{max-width:86ch!important}
.archive-intro{max-width:none!important}
.archive-intro p{max-width:82ch!important}

/* First-time page: no artificial line breaks from span blocks */
.ft-page :where(.ft-section-head h2 span,.ft-consult__intro h2 span,.ft-promise__heading h2 span,.ft-cases__head h2 span){display:inline!important}
.ft-section-head{
  grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)!important;
  gap:22px 56px!important;
}
.ft-consult__grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)!important;
  gap:clamp(38px,5vw,78px)!important;
}
.ft-consult__intro h2{font-size:clamp(36px,3.6vw,54px)!important;line-height:1.48!important}
.ft-promise__grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1.55fr)!important;
  gap:clamp(36px,5vw,76px)!important;
}
.ft-promise__heading h2{font-size:clamp(34px,3.3vw,50px)!important;line-height:1.5!important}

/* Header stays readable over every top-style FV */
body.has-overlay-header .site-header{z-index:1000!important;overflow:visible!important}
body.has-overlay-header .site-header__top,
body.has-overlay-header .site-header__bottom{overflow:visible!important}

@media (max-width:1100px){
  .site-unified-hero .home-hero__panel{width:min(900px,82vw)!important}
  .bp-design .bp-section__layout{grid-template-columns:1fr 1fr!important}
  .service-concept__grid{grid-template-columns:1fr 1fr!important}
}

@media (max-width:820px){
  .site-unified-hero{
    height:690px!important;
    min-height:650px!important;
  }
  .site-unified-hero .home-hero__content{padding-bottom:58px!important}
  .site-unified-hero .home-hero__panel{
    width:min(92vw,680px)!important;
    padding:28px 24px!important;
  }
  .site-unified-hero .home-hero__panel h1{
    font-size:clamp(32px,8.7vw,44px)!important;
    line-height:1.45!important;
  }
  .site-unified-hero .home-hero__panel .home-hero__lead{font-size:12px!important;line-height:1.9!important}

  .bp-design .bp-section__layout,
  .service-concept__grid,
  .ft-section-head,
  .ft-consult__grid,
  .ft-promise__grid{
    grid-template-columns:1fr!important;
    grid-template-areas:none!important;
  }
  .bp-design .bp-section__heading,
  .bp-design .bp-section__media,
  .bp-design .bp-feature-grid{
    grid-area:auto!important;
    grid-column:1!important;
    grid-row:auto!important;
  }
  .bp-design .bp-section__media{aspect-ratio:16/9!important}
  .bp-design .bp-page-title__main h2{font-size:36px!important}
  .ft-section-head{gap:18px!important}
}

@media (max-width:560px){
  .site-unified-hero .home-hero__panel{width:calc(100vw - 28px)!important}
  .site-unified-hero .home-hero__controls{left:14px!important;right:14px!important}
  main :where(h1,h2){letter-spacing:0!important}
}
