/* =========================================================
   Clear Link v1.11.2 — structural safety / final layout guard
   Loaded after every legacy stylesheet.
   Purpose: prevent inherited grid/width rules from collapsing sections.
   ========================================================= */

/* Base containment. */
html,body{max-width:100%;overflow-x:clip}
body *{box-sizing:border-box}
main,main>section,main>div,
.home-main--future,.sf-page,.pf-page,.cf-page,.af-page,.ftc-page,.ft-page,.fq-page,.bp-design,.archive-main,.case-detail{min-width:0;max-width:100%}
main :where(.container,.container-wide,.container-narrow,.sf-shell,.pf-shell,.cf-shell,.af-shell,.ftc-shell,.ft-shell,.fq-shell,.column-focus__shell){min-width:0;max-width:100%}
main :where(img,picture,figure,video,iframe){max-width:100%}
main picture{display:block}
main img{height:auto}
main :where([class*="__grid"],[class*="-grid"],[class*="__layout"],[class*="__wrap"],[class*="__body"],[class*="__content"])>*{min-width:0}

/* Heading safety: section titles cannot inherit a narrow width that forces vertical text. */
main section :where(
  .section-title,.home-section-head,.sf-heading,.sf-heading-grid,.pf-heading,.pf-heading-grid,
  .cf-heading,.af-heading,.ftc-heading,.fq-group__heading,.bp-section__heading,.bp-gallery__heading,
  .cl-common-faq__heading,.ft-section-head,.ft-consult__head,.ft-promise__heading,
  .column-focus__intro,.column-category-heading,.column-featured__heading,.column-latest__heading,
  .archive-intro,.fq-intro__grid,.fq-contact__grid,.bp-page-title__grid,.bp-profile__intro
){min-width:0!important;width:100%!important;max-width:100%!important}

main section :where(
  .section-title h2,.home-section-head h2,.sf-heading h2,.sf-heading-grid h2,.pf-heading h2,.pf-heading-grid h2,
  .cf-heading h2,.af-heading h2,.ftc-heading h2,.fq-group__heading h2,.bp-section__heading h2,.bp-gallery__heading h2,
  .cl-common-faq__heading h2,.ft-section-head h2,.ft-consult__head h2,.ft-promise__heading h2,
  .column-focus__intro h2,.column-category-heading h2,.column-featured__heading h2,.column-latest__heading h2,
  .archive-intro h2,.fq-intro__grid h2,.fq-contact__grid h2,.bp-page-title__grid h2,.bp-profile__intro h2
){
  width:auto!important;
  max-width:min(100%,1180px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
  text-wrap:balance!important;
}
@supports (word-break:auto-phrase){
  main section :where(
    .section-title h2,.home-section-head h2,.sf-heading h2,.sf-heading-grid h2,.pf-heading h2,.pf-heading-grid h2,
    .cf-heading h2,.af-heading h2,.ftc-heading h2,.fq-group__heading h2,.bp-section__heading h2,.bp-gallery__heading h2,
    .cl-common-faq__heading h2,.ft-section-head h2,.ft-consult__head h2,.ft-promise__heading h2,
    .column-focus__intro h2,.column-category-heading h2,.column-featured__heading h2,.column-latest__heading h2,
    .archive-intro h2,.fq-intro__grid h2,.fq-contact__grid h2,.bp-page-title__grid h2,.bp-profile__intro h2
  ){word-break:auto-phrase!important}
}

/* Remaining editorial heading/lead pairs become heading-first centered stacks. */
.column-focus__intro,
.column-category-heading,
.column-featured__heading,
.column-latest__heading,
.fq-intro__grid,
.fq-contact__grid,
.bp-page-title__grid,
.bp-profile__intro{
  display:grid!important;
  grid-template-columns:1fr!important;
  justify-items:center!important;
  align-items:start!important;
  gap:clamp(16px,2.5vw,28px)!important;
  text-align:center!important;
}
.column-focus__intro>*,.column-category-heading>*,.column-featured__heading>*,.column-latest__heading>*,
.fq-intro__grid>*,.fq-contact__grid>*,.bp-page-title__grid>*,.bp-profile__intro>*{
  width:min(100%,820px)!important;
  max-width:820px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
}
.bp-page-title__meta{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}
.bp-page-title__main p,.archive-intro>p,.column-focus__intro>p,.column-category-heading>p,.column-featured__heading>p,.column-latest__heading>p,
.fq-intro__grid>div:last-child p,.fq-contact__grid>div:last-child p,.bp-profile__intro>p{max-width:780px!important;margin-inline:auto!important;text-align:center!important}

/* TOP reasons: isolate the statistic from all legacy .reason-cards rules. */
.home-main--future .reason-cards--stable{grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:stretch!important}
.home-main--future .reason-cards--stable>article:nth-child(n){grid-column:auto!important;width:auto!important;margin:0!important;min-width:0!important}
.home-main--future .reason-experience-stat{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:12px!important;
  width:100%!important;
  min-width:0!important;
  min-height:170px!important;
  margin:26px 0 0!important;
  padding:30px 38px!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:22px!important;
  background:linear-gradient(120deg,#183d33,#2f5d4f)!important;
  color:#fff!important;
  text-align:center!important;
  box-shadow:none!important;
}
.home-main--future .reason-experience-stat::before{display:none!important}
.home-main--future .reason-experience-stat small{font-size:10px!important;letter-spacing:.14em!important;color:rgba(255,255,255,.78)!important}
.home-main--future .reason-experience-stat>div{display:flex!important;align-items:flex-end!important;justify-content:center!important;gap:14px!important;min-width:0!important}
.home-main--future .reason-experience-stat strong{display:block!important;margin:0!important;font-family:var(--cl-font-serif)!important;font-size:clamp(48px,5.2vw,74px)!important;font-weight:500!important;line-height:1!important;letter-spacing:0!important;color:#fff!important;white-space:nowrap!important}
.home-main--future .reason-experience-stat b{display:block!important;margin:0!important;padding:0 0 7px!important;font-size:13px!important;font-weight:600!important;line-height:1.3!important;color:#fff!important;white-space:nowrap!important}
.home-main--future .reason-experience-stat p{max-width:700px!important;margin:0!important;font-size:13px!important;line-height:1.8!important;color:rgba(255,255,255,.84)!important;text-align:center!important}

/* TOP maintenance: explicit cells prevent the old 10-year layout from becoming a narrow text column. */
.home-main--future .maintenance__grid--with-visual>*{min-width:0!important;width:auto!important;max-width:100%!important}
.home-main--future .maintenance__experience{
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
  width:100%!important;min-width:0!important;text-align:center!important
}
.home-main--future .maintenance__experience :where(small,strong,span){display:block!important;width:auto!important;max-width:100%!important;writing-mode:horizontal-tb!important;word-break:normal!important;overflow-wrap:normal!important}
.home-main--future .maintenance__experience strong{white-space:nowrap!important}

/* Predictable image ratios for editorial cards; no stretched or zero-height media. */
.home-main--future :where(.reform-menu-card__media,.reason-cards--stable figure,.work-card figure,.journal-card figure,.support-links__lead-media,.maintenance__visual),
:where(.sf-page,.pf-page,.cf-page,.af-page,.ftc-page,.ft-page,.fq-page,.bp-design,.archive-main,.case-detail) :where(.bp-card__media,.bp-section__media,.bp-gallery__card,.column-guide-card figure,.work-card figure){
  overflow:hidden!important;
}
.home-main--future :where(.reform-menu-card__media,.reason-cards--stable figure,.work-card figure,.journal-card figure,.support-links__lead-media,.maintenance__visual) img,
:where(.sf-page,.pf-page,.cf-page,.af-page,.ftc-page,.ft-page,.fq-page,.bp-design,.archive-main,.case-detail) :where(.bp-card__media,.bp-section__media,.bp-gallery__card,.column-guide-card figure,.work-card figure) img{
  display:block!important;width:100%!important;height:100%!important;object-fit:cover!important
}

/* Legal items are articles, not nested sections. */
.bp-legal__list>article{min-width:0}

/* CTA text must not collapse inside narrow legacy columns. */
main :where(.arrow-link,.btn,.button,.cl-final-cta__button,.bp-contact-routing a){min-width:0;max-width:100%;writing-mode:horizontal-tb;word-break:normal;overflow-wrap:break-word}

/* Mobile safety. */
@media(max-width:820px){
  main section :where(
    .section-title h2,.home-section-head h2,.sf-heading h2,.sf-heading-grid h2,.pf-heading h2,.pf-heading-grid h2,
    .cf-heading h2,.af-heading h2,.ftc-heading h2,.fq-group__heading h2,.bp-section__heading h2,.bp-gallery__heading h2,
    .cl-common-faq__heading h2,.ft-section-head h2,.ft-consult__head h2,.ft-promise__heading h2,
    .column-focus__intro h2,.column-category-heading h2,.column-featured__heading h2,.column-latest__heading h2,
    .archive-intro h2,.fq-intro__grid h2,.fq-contact__grid h2,.bp-page-title__grid h2,.bp-profile__intro h2
  ){
    width:100%!important;max-width:100%!important;white-space:normal!important;
    font-size:clamp(27px,7.2vw,34px)!important;line-height:1.42!important;
  }
  .home-main--future .reason-cards--stable{grid-template-columns:1fr!important}
  .home-main--future .reason-experience-stat{padding:28px 18px!important}
  .home-main--future .reason-experience-stat>div{gap:9px!important}
  .home-main--future .reason-experience-stat strong{font-size:clamp(46px,14vw,64px)!important}
  .home-main--future .maintenance__grid--with-visual{grid-template-columns:1fr!important}
}

/* Heading-first normalization for legacy two-column content sections. */
main :where(
  .sf-philosophy-grid,.sf-check__grid,.pf-unsure-grid,.pf-check-grid,
  .cf-budget__grid,.cf-insurance__grid,.af-philosophy__grid,.af-position__grid,
  .page-intro__grid,.service-concept__grid
){
  display:grid!important;
  grid-template-columns:1fr!important;
  justify-items:center!important;
  align-items:start!important;
  gap:clamp(24px,4vw,44px)!important;
}
main :where(
  .sf-philosophy-grid,.sf-check__grid,.pf-unsure-grid,.pf-check-grid,
  .cf-budget__grid,.cf-insurance__grid,.af-philosophy__grid,.af-position__grid,
  .page-intro__grid,.service-concept__grid
)>:first-child{
  width:100%!important;
  max-width:900px!important;
  margin-inline:auto!important;
  text-align:center!important;
}
main :where(
  .sf-philosophy-grid,.sf-check__grid,.pf-unsure-grid,.pf-check-grid,
  .cf-budget__grid,.cf-insurance__grid,.af-philosophy__grid,.af-position__grid,
  .page-intro__grid,.service-concept__grid
)>:first-child h2{
  width:auto!important;
  max-width:min(100%,1180px)!important;
  margin-inline:auto!important;
  text-align:center!important;
  writing-mode:horizontal-tb!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
main :where(.sf-philosophy-grid,.pf-unsure-grid,.af-position__grid)>:last-child{
  width:min(100%,820px)!important;
  margin-inline:auto!important;
  text-align:center!important;
}
main :where(.sf-philosophy-grid,.pf-unsure-grid,.af-position__grid)>:last-child>p{max-width:780px!important;margin-inline:auto!important;text-align:center!important}

/* About-page visual stories: keep the section heading/content before the image.
   The markup intentionally keeps the existing image asset first, so final ordering is
   enforced here without introducing nested sections or duplicating content. */
.af-page .af-visual-story__grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  justify-items:center!important;
  align-items:start!important;
  gap:clamp(24px,4vw,44px)!important;
}
.af-page .af-visual-story__grid>div{
  order:1!important;
  width:min(100%,900px)!important;
  margin-inline:auto!important;
  text-align:center!important;
}
.af-page .af-visual-story__grid>figure{
  order:2!important;
  width:min(100%,1040px)!important;
  margin:0 auto!important;
  aspect-ratio:16/9!important;
  overflow:hidden!important;
  border-radius:clamp(18px,2vw,28px)!important;
}
.af-page .af-visual-story__grid>figure img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
}
.af-page .af-visual-story__grid h2,
.af-page .af-rep-mission__grid h2,
.af-page .af-story-grid h2{
  width:auto!important;
  max-width:min(100%,1180px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
  text-wrap:balance!important;
}
.af-page .af-visual-story__grid h2{text-align:center!important}
@supports (word-break:auto-phrase){
  .af-page .af-visual-story__grid h2,
  .af-page .af-rep-mission__grid h2,
  .af-page .af-story-grid h2{word-break:auto-phrase!important}
}
@media(max-width:820px){
  .af-page .af-visual-story__grid>div{width:100%!important}
  .af-page .af-visual-story__grid>figure{width:100%!important}
  .af-page .af-visual-story__grid h2,
  .af-page .af-rep-mission__grid h2,
  .af-page .af-story-grid h2{
    max-width:100%!important;
    font-size:clamp(27px,7.2vw,34px)!important;
    line-height:1.42!important;
  }
}

/* Cost visual/check blocks: enforce heading/copy first, media second. */
.cf-page :where(.cf-visual__grid,.cf-subsidy-check__grid){
  display:grid!important;
  grid-template-columns:1fr!important;
  justify-items:center!important;
  align-items:start!important;
  gap:clamp(24px,4vw,44px)!important;
}
.cf-page :where(.cf-visual__grid,.cf-subsidy-check__grid)>div{
  width:min(100%,900px)!important;
  max-width:900px!important;
  margin-inline:auto!important;
  text-align:center!important;
}
.cf-page :where(.cf-visual__grid,.cf-subsidy-check__grid)>div h2{
  width:auto!important;
  max-width:min(100%,1180px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
  writing-mode:horizontal-tb!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
  text-wrap:balance!important;
}
.cf-page :where(.cf-visual__grid,.cf-subsidy-check__grid)>div>p:last-child{
  max-width:780px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
}
.cf-page :where(.cf-visual__grid,.cf-subsidy-check__grid)>figure{
  width:min(100%,1040px)!important;
  margin:0 auto!important;
  aspect-ratio:16/9!important;
  overflow:hidden!important;
  border-radius:clamp(18px,2vw,28px)!important;
}
.cf-page :where(.cf-visual__grid,.cf-subsidy-check__grid)>figure img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
}
.cf-page .cf-subsidy-check__grid .cf-mini-list{width:min(100%,760px)!important;margin:28px auto 0!important;text-align:left!important}
@supports (word-break:auto-phrase){
  .cf-page :where(.cf-visual__grid,.cf-subsidy-check__grid)>div h2{word-break:auto-phrase!important}
}

/* Problem note: heading/copy first, supporting image second. */
.pf-page .pf-note-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  justify-items:center!important;
  align-items:start!important;
  gap:clamp(24px,4vw,44px)!important;
}
.pf-page .pf-note-grid>div{
  width:min(100%,900px)!important;
  max-width:900px!important;
  margin-inline:auto!important;
  text-align:center!important;
}
.pf-page .pf-note-grid>div h2{
  width:auto!important;
  max-width:min(100%,1180px)!important;
  margin-inline:auto!important;
  text-align:center!important;
  writing-mode:horizontal-tb!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
  text-wrap:balance!important;
}
.pf-page .pf-note-grid>div>p:last-of-type{max-width:780px!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important}
.pf-page .pf-note-grid>div>a{display:inline-flex!important;margin-top:18px!important}
.pf-page .pf-note-grid>figure{
  width:min(100%,1040px)!important;
  margin:0 auto!important;
  aspect-ratio:16/9!important;
  overflow:hidden!important;
  border-radius:clamp(18px,2vw,28px)!important;
}
.pf-page .pf-note-grid>figure img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
@supports (word-break:auto-phrase){.pf-page .pf-note-grid>div h2{word-break:auto-phrase!important}}

/* About representative/story sections: title block spans the full section first.
   Body remains editorial to preserve the intentional human-made rhythm. */
.af-page .af-rep-mission__grid,
.af-page .af-story-grid{
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  gap:clamp(24px,4vw,52px)!important;
  align-items:start!important;
}
.af-page .af-rep-mission__grid>div:first-child,
.af-page .af-story-grid>div:first-child{
  grid-column:1/-1!important;
  width:min(100%,940px)!important;
  margin-inline:auto!important;
  text-align:center!important;
}
.af-page .af-rep-mission__grid>div:first-child h2,
.af-page .af-story-grid>div:first-child h2,
.af-page .af-rep-mission__grid>div:first-child h3,
.af-page .af-story-grid>div:first-child h3{
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
}
.af-page .af-rep-mission__grid>div:first-child>p:not(.af-kicker):not(.af-story-no){
  max-width:780px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:left!important;
}
.af-page .af-rep-mission__grid>figure{
  grid-column:3/11!important;
  width:100%!important;
  max-width:760px!important;
  margin:0 auto!important;
  transform:none!important;
}
.af-page .af-story-grid>.af-story-copy{
  grid-column:3/11!important;
  width:100%!important;
  max-width:780px!important;
  margin-inline:auto!important;
  text-align:left!important;
}
.af-page .af-story-link .af-story-grid>.af-story-copy{
  grid-column:2/8!important;
  max-width:none!important;
}
.af-page .af-story-link .af-story-grid>.af-story-link__photo{
  grid-column:8/12!important;
  width:100%!important;
  min-height:0!important;
  aspect-ratio:4/5!important;
  align-self:start!important;
}
.af-page .af-story-link .af-story-grid>.af-story-link__photo img{width:100%!important;height:100%!important;object-fit:cover!important}

/* Direct-heading sections that do not use the shared heading wrapper. */
main :where(
  .cf-alert>.cf-shell,
  .bp-note__inner,
  .bp-contact-routing__intro,
  .bp-next>.container,
  .case-summary__heading
){text-align:center!important}
main :where(
  .cf-alert>.cf-shell h2,
  .bp-note__inner h2,
  .bp-contact-routing__intro h2,
  .bp-next>.container>h2,
  .case-summary__heading h2
){
  width:auto!important;
  max-width:min(100%,1180px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
  writing-mode:horizontal-tb!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
  text-wrap:balance!important;
}
main .cf-alert>.cf-shell>p:not(.cf-kicker),
main .bp-note__inner>p:last-child,
main .bp-contact-routing__intro>p:last-child{
  max-width:780px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
}
main .cf-alert>.cf-shell>a{justify-self:center!important}
@supports (word-break:auto-phrase){
  main :where(.cf-alert>.cf-shell h2,.bp-note__inner h2,.bp-contact-routing__intro h2,.bp-next>.container>h2,.case-summary__heading h2){word-break:auto-phrase!important}
}
@media(max-width:820px){
  .af-page .af-rep-mission__grid,
  .af-page .af-story-grid{grid-template-columns:1fr!important}
  .af-page .af-rep-mission__grid>div:first-child,
  .af-page .af-story-grid>div:first-child,
  .af-page .af-rep-mission__grid>figure,
  .af-page .af-story-grid>.af-story-copy,
  .af-page .af-story-link .af-story-grid>.af-story-copy,
  .af-page .af-story-link .af-story-grid>.af-story-link__photo{grid-column:1!important;width:100%!important;max-width:100%!important}
  .af-page .af-story-link .af-story-grid>.af-story-link__photo{aspect-ratio:16/10!important}
  main :where(.cf-alert>.cf-shell h2,.bp-note__inner h2,.bp-contact-routing__intro h2,.bp-next>.container>h2,.case-summary__heading h2){
    font-size:clamp(27px,7.2vw,34px)!important;line-height:1.42!important
  }
}

/* Remaining standalone CTA links are button-shaped as well. */
main :where(.sf-philosophy-grid,.ft-cases__head,.archive-empty__links) a:not([class*="card"]){
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:12px!important;
  min-height:48px!important;
  padding:12px 20px!important;
  border:1px solid #173d34!important;
  border-radius:999px!important;
  background:#173d34!important;
  color:#fff!important;
  text-decoration:none!important;
  font-weight:700!important;
  font-size:13px!important;
  line-height:1.4!important;
  box-shadow:0 8px 22px rgba(23,61,52,.10)!important;
}
main .sf-philosophy-grid a:not([class*="card"]){border-color:#fff!important;background:#fff!important;color:#173d34!important}

/* Case detail: keep the new heading-first summary stable against legacy two-column story rules. */
.case-detail .case-summary__heading{
  width:min(100%,1180px)!important;
  margin:0 auto clamp(26px,3vw,42px)!important;
}
.case-detail .case-data{margin-bottom:clamp(24px,3vw,40px)!important}
.case-detail .case-story.case-story--body-only{
  display:block!important;
  grid-template-columns:none!important;
  width:min(100%,900px)!important;
  max-width:900px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.case-detail .case-story--body-only .case-story__body{
  width:100%!important;
  max-width:900px!important;
  margin:0 auto!important;
  min-width:0!important;
}
@media(max-width:820px){
  .case-detail .case-summary__heading{margin-bottom:24px!important}
  .case-detail .case-story.case-story--body-only{width:100%!important;max-width:100%!important}
}

/* Global heading text safety: legacy layers must never split a word/phrase into vertical-looking fragments. */
main :where(h1,h2,h3){
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
  text-wrap:balance;
  min-width:0;
}
@supports (word-break:auto-phrase){main :where(h1,h2,h3){word-break:auto-phrase!important}}
