/* Shared green composition; deliberate brand breaks remain in the markup. */
h1,h2,h3{ text-wrap:balance; }
p,li{ text-wrap:pretty; }
.practice-map .map-heading p{max-width:none}
.map-task>span:nth-child(2){min-width:0}
@media(max-width:420px){.practice-map{padding:17px}.map-mast{flex-wrap:wrap;gap:8px}.map-task{grid-template-columns:23px 1fr}.map-task-state{grid-column:2}.map-footer{flex-wrap:wrap}.map-insight-label{font-size:10px}.map-insight-text{font-size:14px!important}}
@media(min-width:761px) and (max-width:960px){body.roots .hero,body.roots .cards,body.roots .steps{grid-template-columns:1fr}body.roots .hero{gap:30px}body.roots .practice-map{max-width:600px}body.roots .card{padding:28px}.map-footer{font-size:11px}}
/* Align reading starts instead of centering short copy beside tall examples. */
body.roots .hero{align-items:start;padding-block:36px 44px}
body.roots .hero>div:first-child>.eyebrow:first-child{margin-top:0}
.roots-era .ai-bridge .wrap{align-items:start}
body.roots .section{padding-block:48px}
body.roots .section>.wrap>.eyebrow:first-child,body.roots .section>.eyebrow:first-child{margin-top:0}
@media(max-width:760px){body.roots .hero{padding-block:28px 34px}body.roots .section{padding-block:36px}}
/* Consistent reading rhythm for the homepage Elf introduction. */
.ai-bridge .elf-introduction{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.ai-bridge .elf-introduction h2{margin:0;font-size:clamp(32px,3.3vw,44px);line-height:1.12}
.ai-bridge .elf-introduction p{margin:0;font-size:16px;line-height:1.75;max-width:none}
.ai-bridge .elf-introduction .ai-link{margin:8px 0 0;font-size:16px;line-height:1.4;min-height:52px;padding:15px 20px}
@media(max-width:600px){.ai-bridge .elf-introduction{gap:18px}.ai-bridge .elf-introduction .ai-link{margin-top:6px}}
/* Dark highlights must override explicit child colors, not only inherited text. */
.ai-era .work-item:focus-within .work-number>span:last-child{color:#e1edb4}
.ai-era .work-item:focus-within :is(h3,p,a,li){color:#fff}
body.roots .card:focus-within :is(h2,h3,p,a,span,.eyebrow){color:#fff}
@media(hover:hover) and (pointer:fine){
 .ai-era .work-item:hover .work-number>span:last-child{color:#e1edb4}
 .ai-era .work-item:hover :is(h3,p,a,li){color:#fff}
 body.roots .card:hover :is(h2,h3,p,a,span,.eyebrow){color:#fff}
}
/* Switch foreground and background together to avoid low-contrast intermediate frames. */
.ai-era .work-item,.ai-era .work-item:nth-child(2),.ai-era .work-item:nth-child(3),body.roots .card{transition-property:transform,box-shadow}
/* Keep the services introduction together, close to the service choices. */
#services{padding-top:42px}
#services .section-header{display:block;margin-bottom:26px}
#services .section-header .eyebrow{margin:0 0 12px}
#services .section-header h2{margin:0;font-size:clamp(32px,3.5vw,46px);line-height:1.12;max-width:none}
#services .section-header>p{max-width:740px;margin:14px 0 0;font-size:16px;line-height:1.65}
#services .work-grid{margin-top:0}
@media(max-width:600px){#services{padding-top:32px}#services .section-header{margin-bottom:22px}}

body.nav-mobile-open .assistant-launch{visibility:hidden;pointer-events:none}
/* Let long calls to action wrap without stranding their direction arrow. */
.card a{display:inline-flex;align-items:center;gap:8px;font-size:15px;line-height:1.5}
.card a .link-label{min-width:0}.card a .link-arrow{flex:none}
.cards .card h2{font-family:inherit;font-size:24px;font-weight:600;line-height:1.2}
@media(max-width:600px){.elf-choices .button{white-space:normal;text-align:left}.assistant-launch{font-size:14px;padding:10px 14px;right:14px;bottom:14px}}
.button:has(.link-label){display:inline-flex;align-items:center;gap:10px}
.card h2{margin:0 0 18px}
a:has(>.link-label){display:inline-flex;align-items:center;gap:.4em}
.home-library-cta{margin:28px 0 0}.home-library-cta .button{display:inline-flex;gap:24px;align-items:center}
@media(max-width:650px){body:has(.home-library-cta) .assistant-launch{width:54px;height:54px;padding:0;border-radius:50%;font-size:0;display:flex;align-items:center;justify-content:center;gap:0}body:has(.home-library-cta) .assistant-launch:after{content:'✦ AI';font-size:13px;font-weight:700}}

/* Balance each deliberate homepage phrase independently on narrow screens. */
.home-heading-line{display:block;text-wrap:balance}
/* Keep headings and their explanations together before two columns become cramped. */
@media(max-width:900px){body:has(.home-library-cta) .section-header{display:block}body:has(.home-library-cta) .section-header>p{width:auto;max-width:680px;margin-top:18px}}
body:has(.home-library-cta) .work-item li{display:flex;align-items:baseline;gap:8px}
body:has(.home-library-cta) .work-item li:before{flex:none;margin-right:0}
body:has(.home-library-cta) .work-item li a{min-width:0}
