/* V29 mobile navigation, readable articles, safe-area and overflow fixes. */
html{max-width:100%;overflow-x:hidden}
body{max-width:100%;overflow-x:clip}
img,svg,video,canvas{max-width:100%}
main p,main li,main h1,main h2,main h3,.primary-nav a,.mega-menu a{overflow-wrap:anywhere}
.seo-article>header{max-width:100%}
.seo-article>header>img{display:block;width:100%;max-width:100%;height:auto;object-fit:contain;margin-top:32px;border-radius:20px;overflow:hidden}
.seo-article .article-body img{display:block;width:auto;max-width:100%;height:auto}
.seo-article pre,.seo-article code{white-space:pre-wrap;overflow-wrap:anywhere}
table{max-width:100%}

@media(max-width:1000px){
  .site-header{background:rgba(7,10,10,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.08)}
  .nav-wrap{position:relative}
  .menu-toggle{position:relative;z-index:3;display:grid!important;place-content:center;min-width:44px;min-height:44px;padding:8px;cursor:pointer;border-radius:10px}
  .menu-toggle i{transition:transform .22s ease,opacity .18s ease;margin:3px auto}
  .menu-open .menu-toggle i:first-child{transform:translateY(4px) rotate(45deg)}
  .menu-open .menu-toggle i:last-child{transform:translateY(-4px) rotate(-45deg)}
  body:not(.menu-open) .primary-nav{display:none!important}
  body.menu-open{overflow:hidden;overscroll-behavior:none}
  body.menu-open:before{content:"";position:fixed;inset:0;z-index:1900;background:rgba(0,0,0,.58);backdrop-filter:blur(3px)}
  body.menu-open .site-header{z-index:2100}
  body.menu-open .primary-nav{display:flex!important}
  .primary-nav{position:fixed!important;z-index:2;top:calc(68px + env(safe-area-inset-top));right:12px!important;bottom:max(12px,env(safe-area-inset-bottom));left:12px!important;inset-inline:12px!important;width:auto!important;max-height:calc(100dvh - 82px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:12px!important;margin:0!important;border-radius:16px!important;background:#0d1412!important;box-shadow:0 24px 70px rgba(0,0,0,.58);overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .primary-nav>a,.nav-group>button{min-height:46px;padding:12px 13px!important;border-radius:9px;font-size:.93rem!important}
  .primary-nav>a:focus-visible,.nav-group>button:focus-visible,.menu-toggle:focus-visible{outline:2px solid var(--page-accent,#7ee3d0);outline-offset:2px}
  .nav-group>button{display:flex;align-items:center;justify-content:space-between}
  .mega-menu{position:static!important;width:100%!important;max-height:none!important;margin:4px 0 8px;padding:7px!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;border-radius:12px!important;overflow:visible!important}
  .mega-menu a{min-width:0;padding:11px!important;line-height:1.28}
  .mega-menu small{line-height:1.25}
  .menu-open .lead-float{opacity:0;pointer-events:none;transform:translateY(120px)}
}

@media(max-width:650px){
  .shell,body.v9-page .shell{width:min(100% - 28px,1180px)!important}
  .brand{min-width:0}.brand span{min-width:0}.brand small{white-space:nowrap}
  .primary-nav{top:calc(62px + env(safe-area-inset-top));max-height:calc(100dvh - 76px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
  .mega-menu{grid-template-columns:1fr!important}
  .breadcrumbs{overflow-x:auto;white-space:nowrap;scrollbar-width:none}.breadcrumbs::-webkit-scrollbar{display:none}
  .hero-section,.seo-article{max-width:100%;overflow:hidden}
  .seo-article{padding:92px 16px 72px}
  .seo-article h1{font-size:clamp(2rem,10vw,2.7rem)!important;line-height:1.06!important;letter-spacing:-.035em;margin:14px 0 18px}
  .seo-article>header>p{font-size:1.02rem;line-height:1.65}
  .seo-article>header>img{margin-top:22px;border-radius:13px}
  .article-layout{margin-top:42px;gap:24px}
  .article-body h2{font-size:clamp(1.65rem,7.8vw,2.1rem);line-height:1.15;margin:42px 0 14px}
  .article-body p{font-size:1rem;line-height:1.75}
  .answer-box{padding:17px 18px}.article-side{padding-top:10px}
  .v10-page .hero-media{height:390px!important;min-height:0!important}
  .v10-immersive-visual{height:270px!important}
  .sector-rail,.project-rail{overscroll-behavior-x:contain;scroll-snap-type:x proximity}
  .sector-rail>a,.project-rail>button{scroll-snap-align:start}
  .lead-float{right:12px!important;bottom:max(12px,env(safe-area-inset-bottom))!important;max-width:calc(100vw - 24px);padding:12px 15px!important;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:transform .22s ease,opacity .22s ease!important}
  body.is-scrolling .lead-float{opacity:0;pointer-events:none;transform:translateY(120px)}
  .lead-modal{padding:10px!important;align-items:end!important}
  .lead-dialog{width:100%!important;max-height:calc(100dvh - 20px)!important;padding:26px 18px calc(22px + env(safe-area-inset-bottom))!important;border-radius:18px 18px 12px 12px!important;overscroll-behavior:contain}
  .lead-dialog h2{font-size:1.75rem!important;margin-right:38px!important}.lead-close{right:12px!important;top:11px!important;min-width:44px;min-height:44px}
  .lead-popup-form input,.lead-popup-form select,.lead-popup-form textarea{font-size:16px!important;min-height:46px}
}

@media(max-width:380px){
  .brand span{font-size:.82rem!important}.brand small{font-size:.48rem!important;letter-spacing:.11em}
  .seo-article{padding-inline:13px}.seo-article h1{font-size:2rem!important}
  .lead-float{font-size:.73rem;padding:11px 13px!important}
}

/* CMS visual-editor image controls are persisted as these public classes. */
.cms-published-content figure,.seo-article figure,main figure{max-width:100%;clear:both}
.cms-published-content figure img,.seo-article figure img,main figure img{display:block;max-width:100%;height:auto}
.cms-published-content figcaption,.seo-article figcaption,main figcaption{padding:7px 4px;color:#8fa59b;text-align:center;font-size:.82rem;line-height:1.45}
.cms-published-content .align-left,.seo-article .align-left,main .align-left{float:left;margin:8px 24px 16px 0}
.cms-published-content .align-right,.seo-article .align-right,main .align-right{float:right;margin:8px 0 16px 24px}
.cms-published-content .align-center,.seo-article .align-center,main .align-center{display:table;float:none;margin:24px auto}
.cms-published-content .align-none,.seo-article .align-none,main .align-none{float:none;margin:24px 0}
@media(max-width:680px){.cms-published-content .align-left,.cms-published-content .align-right,.seo-article .align-left,.seo-article .align-right,main .align-left,main .align-right{float:none;margin:20px auto!important;width:100%!important}}
