/* =========================================================
   Clear Link v1.10.6 — Mobile-first final audit
   PC styles remain untouched; this layer owns <= 820px.
   ========================================================= */
@media (max-width: 820px){
  :root{
    --cl-mobile-gutter:16px;
    --cl-mobile-section:72px;
    --cl-mobile-radius:20px;
  }

  html{overflow-x:hidden;scroll-padding-top:78px}
  body{overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
  main{overflow:clip}

  /* Consistent gutters across every page family. */
  .container,.container-wide,.container-narrow,
  .sf-shell,.pf-shell,.cf-shell,.af-shell,.fq-shell,.column-focus__shell,.ft-shell,.ftc-shell,
  .column-category-archive .journal-grid--archive,.column-focus .journal-grid--archive{
    width:calc(100% - (var(--cl-mobile-gutter) * 2))!important;
    max-width:none!important;
    margin-inline:auto!important;
  }

  .section,.sf-section,.pf-section,.cf-section,.af-section,.fq-section,.ft-section,.ftc-section{
    padding-top:var(--cl-mobile-section)!important;
    padding-bottom:var(--cl-mobile-section)!important;
  }

  /* Type: mobile gets its own scale, not a compressed desktop scale. */
  main :where(h1,h2,h3,h4,h5,h6){
    width:auto!important;
    max-width:100%!important;
    min-width:0!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
    text-wrap:pretty!important;
    letter-spacing:0!important;
  }
  main :where(h2,.section-title h2,.home-editorial-title,.sf-heading h2,.sf-heading-grid h2,.pf-heading h2,.pf-heading-grid h2,.cf-heading h2,.af-heading h2,.fq-intro h2,.column-focus__intro h2){
    font-size:clamp(30px,8.5vw,40px)!important;
    line-height:1.42!important;
  }
  main :where(h3,.sf-card h3,.pf-card h3,.cf-card h3,.column-guide-card h3){
    font-size:clamp(20px,5.8vw,26px)!important;
    line-height:1.48!important;
  }
  main :where(p,li,dd,figcaption){font-size:13px;line-height:1.9}
  .section-kicker,.section-title__en,.sf-kicker,.pf-kicker,.cf-kicker,.af-kicker,.fq-kicker{font-size:10px!important;line-height:1.4!important}
  .section-title__lead{font-size:13px!important;line-height:1.9!important;margin-top:16px!important}
  .section-heading-row{display:grid!important;grid-template-columns:1fr!important;gap:18px!important;align-items:start!important;margin-bottom:34px!important}
  .section-heading-row>.arrow-link{justify-self:start}
  .arrow-link{font-size:12px;gap:12px}

  /* Header: compact, fully visible, safe on notched devices. */
  html body.has-overlay-header .site-header,
  html body.has-overlay-header .site-header.site-header--overlay{
    height:68px!important;
    min-height:68px!important;
    position:absolute!important;
    top:0!important;
    left:0!important;
    right:0!important;
    background:linear-gradient(180deg,rgba(19,31,25,.38),rgba(19,31,25,.04))!important;
    box-shadow:none!important;
  }
  html body.has-overlay-header .site-header.is-scrolled{
    position:fixed!important;
    background:rgba(255,255,255,.97)!important;
    box-shadow:0 5px 22px rgba(22,38,29,.08)!important;
    backdrop-filter:blur(12px)!important;
  }
  html body.has-overlay-header .site-header__top{height:68px!important;min-height:68px!important;padding:0!important}
  .brand{max-width:calc(100% - 58px)!important;padding-right:8px!important;gap:7px!important}
  .brand__custom-logo img{max-height:38px!important;max-width:min(220px,64vw)!important}
  .brand__word b{font-size:16px!important;letter-spacing:.055em!important}
  .brand__word small{font-size:6px!important;letter-spacing:.10em!important;margin-top:4px!important}
  .menu-trigger{width:50px!important;flex:0 0 50px!important;height:60px!important;margin-left:auto!important;gap:5px!important}
  .menu-trigger__lines{width:22px!important;gap:5px!important}.menu-trigger__lines i{width:22px!important}
  .menu-trigger__label{font-size:6px!important}
  body.admin-bar.has-overlay-header .site-header,body.admin-bar.has-overlay-header .site-header.is-scrolled{top:32px!important}

  /* Full-screen navigation becomes a true mobile menu. */
  .mega-menu__panel{width:100%!important;max-width:none!important}
  .mega-menu__head{height:70px!important;padding-inline:var(--cl-mobile-gutter)!important}
  .mega-menu__body,.mega-menu__body--canonical{display:block!important;padding:26px var(--cl-mobile-gutter) 92px!important}
  .mega-column{margin-bottom:34px!important}.mega-column__title{margin-bottom:16px!important}
  .mega-hierarchy--services,.mega-hierarchy__children,.mega-service-grid,.mega-problem-grid{grid-template-columns:1fr!important}
  .mega-child-link,.mega-service-grid a{min-height:58px!important;border-right:0!important;padding:13px 14px!important}
  .mega-menu__contact{grid-template-columns:1fr!important}.mega-menu__contact>*{min-height:72px!important}

  /* TOP hero — mobile-specific crop, panel and controls. */
  .home-main--future .home-hero:not(.site-unified-hero),
  .site-unified-hero{
    height:min(760px,88svh)!important;
    min-height:660px!important;
    max-height:780px!important;
  }
  /* v1.11.27: mobile heroes use dedicated portrait assets from <picture>.
     No blurred letterbox, no contain scaling. The portrait crop fills the FV. */
  .home-hero__slide,.site-unified-hero .home-hero__slide{
    isolation:isolate!important;
    background:#d8d2c8!important;
  }
  .home-hero__slide::before,.site-unified-hero .home-hero__slide::before{
    content:none!important;
    display:none!important;
  }
  .home-hero__slide picture,.site-unified-hero .home-hero__slide picture{
    position:relative!important;
    z-index:1!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
  }
  .home-main--future .home-hero:not(.site-unified-hero) .home-hero__slide img,
  .site-unified-hero .home-hero__slide img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center!important;
    animation:none!important;
    transform:none!important;
    will-change:auto!important;
  }
  .home-hero__veil{background:linear-gradient(180deg,rgba(21,33,27,.34) 0%,rgba(21,33,27,.06) 38%,rgba(21,33,27,.34) 100%)!important}
  .home-hero__content,.site-unified-hero .home-hero__content{
    width:100%!important;
    padding:0 var(--cl-mobile-gutter) 96px!important;
    align-items:flex-end!important;
  }
  .home-hero__panel,.site-unified-hero .home-hero__panel{
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    margin:0!important;
    padding:24px 20px 22px!important;
    border-radius:18px!important;
    background:rgba(31,48,39,.52)!important;
    border:1px solid rgba(255,255,255,.16)!important;
    backdrop-filter:blur(7px)!important;
  }
  .home-hero__script,.site-unified-hero .home-hero__script{font-size:13px!important;margin:0 0 12px!important;letter-spacing:.04em!important}
  .home-hero__panel h1,.site-unified-hero .home-hero__panel h1{
    width:100%!important;max-width:none!important;font-size:clamp(31px,9.2vw,42px)!important;line-height:1.42!important;margin:0!important;
  }
  .home-hero__lead,.site-unified-hero .home-hero__lead{max-width:none!important;font-size:12px!important;line-height:1.85!important;margin:16px 0 0!important}
  .home-hero__controls,.site-unified-hero .home-hero__controls{
    left:var(--cl-mobile-gutter)!important;right:var(--cl-mobile-gutter)!important;bottom:20px!important;gap:8px!important;
  }
  .home-hero__arrow{width:34px!important;height:34px!important}.home-hero__pause{width:34px!important;height:34px!important}
  .home-hero__counter{font-size:9px!important}.home-hero__dots{gap:5px!important}.home-hero__dots button{width:22px!important}
  .home-hero__scroll{display:none!important}

  /* TOP content: editorial but compact. */
  .home-editorial-rail{padding:11px 0!important}
  .future-intro__grid,.future-banner__grid{grid-template-columns:1fr!important;gap:28px!important}
  .future-intro__copy{max-width:none!important}.future-intro__copy p{font-size:13px!important;line-height:1.95!important}
  .reform-menu__grid--future,.works-grid--future,.journal-grid--latest-three,.find-grid,.reason-cards{grid-template-columns:1fr!important;max-width:none!important;gap:18px!important}
  .reform-menu-card{border-radius:18px!important;overflow:hidden!important}
  .reform-menu-card__media{aspect-ratio:16/9!important;max-height:none!important}
  .reform-menu-card__text{padding:20px 18px 22px!important;gap:7px!important}
  .find-grid>a{min-height:0!important;padding:24px 20px!important;border-radius:18px!important}
  .find-grid h3{margin:26px 0 9px!important}
  .future-banner__points{grid-template-columns:1fr!important;gap:0!important}
  .future-banner__points>div{padding:22px 0!important;border-right:0!important;border-bottom:1px solid rgba(33,71,58,.15)!important}
  .future-banner__points>div:last-child{border-bottom:0!important}
  .reason-cards article{min-height:0!important;padding:24px 20px!important}
  .reason-cards__stat strong{font-size:72px!important}
  .works-grid--future .work-card figure,.journal-grid--latest-three .journal-card figure{aspect-ratio:16/10!important;border-radius:16px!important}

  /* Service pages */
  .sf-heading-grid,.sf-recommend__grid,.sf-check__grid,.sf-philosophy-grid,
  .sf-priority-grid,.sf-transform-grid,.sf-door-grid,.sf-plan-grid,.sf-heating-grid,
  .sf-swatch-grid,.sf-material-grid,.sf-three,.sf-inline-menu,.sf-inline-menu--cards,
  .sf-hub-grid,.sf-next-grid,.sf-process-list{grid-template-columns:1fr!important;gap:16px!important}
  .sf-recommend__grid .sf-side-visual{order:-1!important;aspect-ratio:16/10!important;min-height:0!important;max-width:none!important;width:100%!important;justify-self:stretch!important;border-radius:18px!important}
  .sf-card-grid,.sf-scope-grid{grid-template-columns:1fr!important;gap:12px!important}
  .sf-card{min-height:0!important;padding:22px 20px!important;border-radius:18px!important}
  .sf-card>span{margin-bottom:24px!important}.sf-card--scope{padding:20px 0!important;border-radius:0!important}
  .sf-hub-card:nth-child(n){grid-column:auto!important;border-radius:18px!important}.sf-hub-card figure{aspect-ratio:16/10!important}
  .sf-inline-menu a{min-height:76px!important;padding:16px!important}
  .sf-special article{min-height:0!important;transform:none!important;border-radius:18px!important}
  .sf-plan-visual{width:100%!important;margin-top:18px!important;transform:none!important}
  .sf-process-list li{min-height:0!important;padding:24px 4px!important;border-right:0!important}.sf-process-list span{margin-bottom:22px!important}
  .sf-faq-list summary{grid-template-columns:34px minmax(0,1fr) 24px!important;gap:8px!important;padding:20px 0!important;font-size:17px!important}

  /* Problem pages */
  .pf-heading-grid,.pf-signs-grid,.pf-check-grid,.pf-note-grid,.pf-unsure-grid,.pf-card-grid,.pf-special-grid,.pf-hub-grid,.pf-next-grid{grid-template-columns:1fr!important;gap:16px!important}
  .pf-sign-visual,.pf-note-grid figure{aspect-ratio:16/10!important;min-height:0!important;border-radius:18px!important}
  .pf-card,.pf-special-grid article{min-height:0!important;padding:22px 20px!important;border-radius:18px!important;transform:none!important}
  .pf-card>span,.pf-special-grid article>span{margin-bottom:24px!important}

  /* Cost/support pages */
  .cf-intro__grid,.cf-note__grid,.cf-budget__grid,.cf-compare__grid,.cf-visual__grid,.cf-insurance__grid,.cf-subsidy-check__grid,
  .cf-menu__grid,.cf-three,.cf-four,.cf-programs,.cf-next__grid,.cf-flow__list{grid-template-columns:1fr!important;gap:16px!important}
  .cf-menu-card{grid-template-columns:1fr!important;border-radius:18px!important}.cf-menu-card figure{aspect-ratio:16/9!important;min-height:0!important}
  .cf-card{min-height:0!important;padding:22px 20px!important;border-radius:18px!important}.cf-card h3{margin-top:24px!important}
  .cf-budget__grid>div:last-child>div{grid-template-columns:56px 1fr!important;gap:8px 14px!important;padding:20px!important;border-radius:16px!important}.cf-budget__grid>div:last-child>div p{grid-column:2!important}
  .cf-compare figure,.cf-visual figure,.cf-insurance figure,.cf-subsidy-check figure{border-radius:18px!important}.cf-compare img,.cf-visual img,.cf-insurance img,.cf-subsidy-check img{aspect-ratio:16/10!important}
  .cf-flow__list li{min-height:0!important;border-right:0!important;padding:22px 0!important}.cf-flow__list h3{margin-top:22px!important}
  .cf-alert .cf-shell{gap:14px!important}.cf-alert h2{margin:0!important}
  .cf-ledger>div{grid-template-columns:40px 1fr!important;gap:8px 12px!important;padding:20px 0!important}.cf-ledger p{grid-column:2!important}

  /* About pages */
  .af-ten-grid,.af-rep-mission__grid,.af-rep-profile__layout,.af-story-grid,.af-story-link .af-story-grid,.af-area-grid{grid-template-columns:1fr!important;gap:18px!important}
  .af-ten-grid .af-card,.af-area-grid>div{min-height:0!important;padding:22px 20px!important;border-radius:18px!important}
  .af-rep-photo,.af-story-link__photo{border-radius:18px!important;overflow:hidden!important}.af-rep-photo img,.af-story-link__photo img{aspect-ratio:4/3!important;object-fit:cover!important}
  .af-rep-photo--main{transform:none!important}
  .af-rep-profile-list>div{grid-template-columns:96px 1fr!important;gap:12px!important}
  .af-story-section h2,.af-rep-mission h2{font-size:clamp(30px,8.5vw,40px)!important;line-height:1.42!important}
  .af-company-table>div{grid-template-columns:1fr!important;gap:6px!important;padding:18px 0!important}
  .af-area-lead{font-size:13px!important;line-height:1.9!important}

  /* First-time pages */
  .ft-section-head,.ft-consult__grid,.ft-promise__grid,.ft-guide-grid,.ft-case-grid,
  .ftc-intro__grid,.ftc-start__grid,.ftc-choose__visual,.ftc-note,.ftc-during__visual,.ftc-choose__grid,.ftc-during__list,.ftc-three,.ftc-four,.ftc-next__grid{
    grid-template-columns:1fr!important;gap:18px!important;
  }
  .ft-consult__photo,.ftc-choose__visual figure,.ftc-during__visual figure{aspect-ratio:4/3!important;min-height:0!important;border-radius:18px!important;overflow:hidden!important}
  .ft-guide-card,.ft-case-card,.ftc-three article,.ftc-four article{min-height:0!important;border-radius:18px!important}
  .ftc-timeline li{grid-template-columns:42px 1fr!important;gap:10px!important;padding:20px 0!important}.ftc-timeline p{grid-column:2!important}

  /* FAQ: horizontal category navigation is faster on phones. */
  .fq-intro__grid,.fq-group__grid,.fq-contact__grid{grid-template-columns:1fr!important;gap:24px!important}
  .fq-category-nav{
    display:flex!important;overflow-x:auto!important;gap:10px!important;margin-top:32px!important;padding:0 0 8px!important;
    border:0!important;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  }
  .fq-category-nav::-webkit-scrollbar{display:none}.fq-category-nav a{flex:0 0 min(72vw,260px)!important;min-height:104px!important;border:1px solid var(--fq-line)!important;border-radius:16px!important;scroll-snap-align:start;padding:16px!important}
  .fq-group__heading{position:static!important}.fq-group__heading>span{margin-bottom:18px!important}
  .fq-list summary{grid-template-columns:30px minmax(0,1fr) 22px!important;gap:8px!important;padding:20px 0!important}.fq-list summary strong{font-size:16px!important;line-height:1.55!important}
  .fq-answer{grid-template-columns:30px 1fr!important;gap:8px!important;padding-bottom:22px!important}.fq-answer p{font-size:13px!important}

  /* Column/blog */
  .column-focus__intro,.column-category-heading,.column-category-archive__intro{grid-template-columns:1fr!important;gap:20px!important}
  .column-category-grid,.column-topic-grid,.column-guide-grid{grid-template-columns:1fr!important;gap:0!important}
  .column-category-card{min-height:0!important;padding:22px 20px!important}.column-category-card h3{margin:32px 0 10px!important}
  .column-guide-card{border-radius:18px!important}.column-guide-card figure{aspect-ratio:16/10!important}.column-guide-card>div{padding:20px!important}
  .column-featured__heading,.column-latest__heading{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;margin-bottom:28px!important}
  .column-category-filter{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;padding-bottom:7px!important;scrollbar-width:none}.column-category-filter::-webkit-scrollbar{display:none}.column-category-filter a{flex:0 0 auto!important}

  /* Generic blueprint/fallback pages */
  .bp-design .bp-section__layout,.bp-design .bp-page-title__grid,.page-intro__grid,.service-concept__grid,.case-summary__grid,.archive-intro,.error-page__grid{grid-template-columns:1fr!important;grid-template-areas:none!important;gap:22px!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,.service-concept__grid figure,.case-hero__image,.article-header figure{aspect-ratio:4/3!important;border-radius:18px!important;overflow:hidden!important}
  .bp-card-grid,.bp-feature-grid,.bp-problem-grid,.bp-next__grid,.bp-gallery__grid,.hub-grid,.related-menu__grid,.service-reasons__grid{grid-template-columns:1fr!important;gap:14px!important}
  .bp-card,.bp-feature-grid article,.hub-card{min-height:0!important;padding:22px 20px!important;border-radius:18px!important}
  .bp-note__inner{padding:26px 20px!important;border-radius:20px!important}
  .related-menu__grid a{min-height:88px!important;padding:18px!important}

  .works-filter{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;gap:8px!important;padding-bottom:8px!important;scrollbar-width:none!important;-webkit-overflow-scrolling:touch!important}.works-filter::-webkit-scrollbar{display:none}.works-filter a{flex:0 0 auto!important}
  .pagination{display:flex!important;flex-wrap:wrap!important;gap:8px!important;justify-content:center!important}

  /* Articles, tables and forms. */
  .entry-content{font-size:14px!important;line-height:2!important}.entry-content h2{font-size:28px!important;margin:48px 0 18px!important}.entry-content h3{font-size:21px!important;margin:36px 0 14px!important}.entry-content img{margin:30px 0!important}
  .entry-content table{display:block!important;width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;white-space:nowrap!important}
  input:not([type=checkbox]):not([type=radio]),select,textarea{max-width:100%;font-size:16px!important}
  .cl-contact-form__row{grid-template-columns:1fr!important;gap:8px!important;padding:18px 0!important}.cl-contact-form__submit{width:100%!important}

  /* Final CTA and footer. */
  .cl-final-cta{min-height:0!important;display:block!important}
  .cl-final-cta__inner{padding:68px 0 72px!important}.cl-final-cta__content{text-align:center!important}.cl-final-cta h2{font-size:clamp(26px,7vw,32px)!important;line-height:1.42!important;text-align:center!important;margin-left:auto!important;margin-right:auto!important}
  .cl-final-cta__veil{background:linear-gradient(180deg,rgba(17,29,23,.82),rgba(17,29,23,.90))!important}.cl-final-cta__lead{font-size:13px!important;line-height:1.9!important;text-align:center!important;margin-left:auto!important;margin-right:auto!important}
  .cl-final-cta__actions{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;margin-top:26px!important}.cl-final-cta__button{width:100%!important;min-width:0!important;min-height:56px!important;padding:0 17px!important}
  .site-footer{padding:52px 0 28px!important}.site-footer__top{grid-template-columns:1fr!important;gap:42px!important}.footer-brand>p{max-width:34em!important;margin-top:20px!important}
  .footer-map{grid-template-columns:1fr!important;gap:0!important}.footer-map>div{padding:24px 0!important;border-top:1px solid rgba(255,255,255,.12)!important}.footer-map h3{margin-bottom:13px!important}.footer-map a{font-size:12px!important;margin:8px 0!important}.footer-subnav{padding-left:12px!important}
  .site-footer__bottom{display:block!important;margin-top:26px!important;padding:20px 0 8px!important}.site-footer__bottom div{display:flex!important;flex-wrap:wrap!important;gap:8px 16px!important;margin-top:12px!important}

  .mobile-contact-bar{
    height:calc(64px + env(safe-area-inset-bottom,0px))!important;
    padding-bottom:env(safe-area-inset-bottom,0px)!important;
    z-index:6000!important;background:rgba(255,255,255,.98)!important;backdrop-filter:blur(12px)!important;
  }
  .mobile-contact-bar a{min-width:0!important}.mobile-contact-bar small{font-size:6px!important}.mobile-contact-bar span{font-size:10px!important;white-space:nowrap!important}

  /* Remove desktop hover movement on touch layouts. */
  .reform-menu-card:hover,.work-card:hover,.journal-card:hover,.sf-hub-card:hover,.column-guide-card:hover,.cl-final-cta__button:hover{transform:none!important}
}


@media (max-width: 782px){
  body.admin-bar.has-overlay-header .site-header,body.admin-bar.has-overlay-header .site-header.is-scrolled{top:46px!important}
}

@media (max-width: 580px){
  body:not(.cl-easy-editing){padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
  .cl-easy-editing .mobile-contact-bar{display:none!important}
  .home-hero__content,.site-unified-hero .home-hero__content{padding-bottom:148px!important}
  .home-hero__controls,.site-unified-hero .home-hero__controls{bottom:calc(76px + env(safe-area-inset-bottom,0px))!important}
}

@media (max-width: 520px){
  :root{--cl-mobile-gutter:14px;--cl-mobile-section:64px}
  .home-main--future .home-hero:not(.site-unified-hero),.site-unified-hero{min-height:640px!important;height:min(720px,88svh)!important}
  .home-hero__panel,.site-unified-hero .home-hero__panel{padding:21px 17px 19px!important;border-radius:16px!important}
  .home-hero__panel h1,.site-unified-hero .home-hero__panel h1{font-size:clamp(29px,9vw,38px)!important;line-height:1.44!important}
  .home-hero__lead,.site-unified-hero .home-hero__lead{font-size:11.5px!important;line-height:1.8!important}
  .home-hero__dots{display:none!important}
  main :where(h2,.section-title h2,.home-editorial-title,.sf-heading h2,.sf-heading-grid h2,.pf-heading h2,.pf-heading-grid h2,.cf-heading h2,.af-heading h2,.fq-intro h2,.column-focus__intro h2){font-size:clamp(28px,8vw,36px)!important}
  .fq-category-nav a{flex-basis:78vw!important}
  .af-rep-profile-list>div{grid-template-columns:1fr!important;gap:4px!important}
  .mobile-contact-bar span{font-size:9px!important}
}
