/* Mobile has its own composition. This stylesheet leaves desktop rules untouched. */
.mobile-context-controls{display:none}
@media(max-width:760px){
 /* Contain content by layout, not by concealing horizontal overflow. */
 .container,.nav-shell,.textile-labels,.illustration-note,.life-experience,.mobile-stage-select{width:calc(100% - 40px);max-width:540px;margin-left:auto;margin-right:auto}
 main,section,.container,.hero-intro,.hero-aside,.request-detail,.knowledge-composition,.understanding-workspace,.source-evidence,.understanding-result,.understanding-copy,.life-experience,.stage-readout,.stage-text,.impact-heading,.outcomes,.feature-proof,.feature-comparison,.feature-explanation,.service-pair,.service-pair article,.assessment-layout,.assessment-copy,.brief,.footer-main>div{min-width:0;max-width:100%}
 .container,.nav-shell,.textile-labels,.illustration-note,.life-experience,.mobile-stage-select{max-width:540px}
 .section{padding:56px 0}
 h1,h2,h3,p,a,button,span,select{overflow-wrap:break-word}
 h1,h2{text-wrap:balance}
 p{line-height:1.65}
 .button{width:100%;max-width:100%;padding:16px 17px;font-size:14px;line-height:1.5;gap:12px;min-height:54px;white-space:normal;text-align:left}
 .button>span,.text-link>span,.service-link>span{flex-shrink:0}
 .text-link{min-height:48px;font-size:15px;line-height:1.5}
 main .section-identifier,main .eyebrow.section-identifier,.hero>.container>.section-identifier{font-size:18px;line-height:1.4}
 .eyebrow{margin-bottom:19px}
 .site-header{height:88px}
 .nav-shell{gap:18px}
 .site-header .official-logo{width:156px;max-width:100%;height:auto}
 .menu-toggle{min-height:44px;min-width:82px;justify-content:space-between;padding:10px 12px;font-size:14px}
 #main-nav{top:87px;padding:14px 20px 24px}
 #main-nav>a,.services-menu>button{font-size:16px;min-height:48px;line-height:1.45}
 #main-nav .header-cta{padding:14px 15px}
 #service-links{min-width:0;width:100%}
 #service-links a{font-size:15px;line-height:1.5;min-height:48px}
 .hero{padding-top:25px;overflow:visible}
 .hero>.container>.section-identifier{max-width:300px;align-items:flex-start;gap:10px;margin-bottom:23px}
 .hero h1{font-size:clamp(42px,11.3vw,49px);line-height:1.06;letter-spacing:-.6px;max-width:100%}
 .hero-line{display:inline}
 .hero-aside{padding-top:25px}
 .hero-aside>p{font-size:18px;line-height:1.65;letter-spacing:0;max-width:100%}
 .hero-aside .button{font-size:14px;margin-top:23px;padding:16px 17px;gap:12px}
 .hero-aside .text-link{display:flex;margin:9px 0 0;padding:10px 0;gap:15px;font-size:15px}
 .bottleneck h2{font-size:35px;line-height:1.15;letter-spacing:-.35px;max-width:100%}
 .body-copy{font-size:17px;line-height:1.65;margin-top:25px}
 .body-copy p+p{margin-top:18px}
 .bridge-copy{font-size:31px;line-height:1.2;margin-top:30px;text-wrap:balance}
 .bridge-copy br{display:block}
 /* The full circle stays interactive; named controls and explanations sit below. */
 .lifecycle-section{height:auto}
 .life-pin{position:relative;min-height:0;overflow:visible;padding:52px 0}
 .life-header{display:block}
 .life-header h2{font-size:40px;line-height:1.1;letter-spacing:-.4px;max-width:100%}
 .life-header h2 br{display:none}
 .life-header h2 em:before{content:' '}
 .life-header>p{font-size:17px;line-height:1.7;max-width:100%;margin-top:24px}
 .life-experience{display:flex;flex-direction:column;gap:25px;margin-top:29px;padding:0}
 .continuity-instrument{display:block;position:relative;width:100%;max-width:390px;min-width:0;aspect-ratio:1;margin:0 auto 25px}
 .instrument-ring{position:absolute;inset:0;width:auto;height:auto}
 .activity-orbit{position:absolute;inset:0;overflow:clip}
 .activity-ring,.active-indicator{display:block}
 .activity-ring button{width:48px;min-width:48px;height:48px;min-height:48px;padding:0;border-radius:50%;font-size:16px}
 .activity-ring button>span{font-size:16px;line-height:1;margin:0;color:#d5dfc7}
 .activity-ring button[aria-pressed=true]{background:#506042;box-shadow:0 0 0 1px #d0ab7c}
 .context-core{position:absolute;left:21.5%;top:21.5%;width:57%;height:57%;min-height:0;display:flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden}
 .core-label{font-size:12px;line-height:1.3;max-width:145px;text-align:center;letter-spacing:0;color:#d3dec6}
 .context-core>strong{font-size:34px;line-height:1.1;margin-top:1px}
 #core-textile{position:static;width:100%;height:19px;margin:4px 0;opacity:1}
 .core-subtitle{font-size:13px;line-height:1.4;max-width:145px;margin-top:4px;text-align:center;color:#e0e4cb}
 .instrument-caption{position:absolute;top:calc(100% + 8px);bottom:auto;left:0;right:0;width:100%;margin:0;display:block;text-align:center}
 .instrument-caption .core-change{font-size:14px;line-height:1.5;color:#edcda4}
 .mobile-stage-select{display:flex;flex-direction:column;gap:10px;width:100%;max-width:none;margin:0;font-size:14px;line-height:1.5}
 .mobile-stage-select select{font-size:16px;line-height:1.5;height:54px;min-width:0;width:100%;max-width:100%;padding:12px;border-radius:3px}
 .stage-readout{display:flex;flex-direction:column;width:100%;max-width:none;min-height:0;padding:0;gap:0}
 .stage-meta{font-size:12px;line-height:1.5;margin-bottom:17px;gap:15px}
 .stage-meta>span:last-child{white-space:nowrap;flex-shrink:0}
 .stage-text h3{font-size:16px;line-height:1.4;margin:0 0 13px;letter-spacing:.8px}
 .stage-text>p{font-size:27px;line-height:1.35;min-height:0;max-width:100%;letter-spacing:-.2px}
 .stage-example{min-height:0;margin-top:25px}
 .stage-example>span{font-size:12px;line-height:1.5;letter-spacing:.5px}
 .stage-example>p{font-size:18px;line-height:1.65;min-height:0;margin-top:9px}
 .stage-arrows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:26px;position:static}
 .stage-arrows button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:50px;border-radius:3px;font-size:18px;line-height:1}
 #previous-stage:after{content:'Previous';font-size:14px}
 #next-stage:before{content:'Next';font-size:14px}
 .persistent-context{margin-top:26px;padding-top:22px;align-items:flex-start;gap:12px}
 .context-seal{font-size:25px;line-height:1.3}
 .persistent-context p{min-width:0}
 .persistent-context strong{font-size:15px;line-height:1.5}
 .persistent-context p span{font-size:14px;line-height:1.6;margin-top:7px}
 .life-instruction{display:none}
 /* Read numbers as a sequence of outcomes, with the feature result as a vertical comparison. */
 .impact-heading{display:block}
 .impact-heading h2{font-size:41px;line-height:1.1;letter-spacing:-.4px;width:100%;max-width:100%}
 .impact-heading h2 br{display:none}
 .outcomes{display:flex;flex-direction:column;gap:0;margin:29px 0 31px}
 .outcomes article{display:grid;grid-template-columns:132px minmax(0,1fr);gap:17px;align-items:center;padding:18px 0;border-bottom:1px solid #d4d7c8}
 .outcomes article:first-child{padding-top:0}
 .outcomes article:last-child{border-bottom:0;padding-bottom:0}
 .metric-mark{display:none}
 .outcomes strong{font-size:72px;line-height:1;letter-spacing:-2.4px;white-space:nowrap}
 .outcomes strong>span{font-size:34px;top:6px;margin-left:2px;letter-spacing:0}
 .outcomes h3{font-size:16px;line-height:1.5;margin:0;max-width:none}
 .feature-proof{display:block;padding:28px 23px;max-width:100%}
 .feature-comparison{display:flex;flex-direction:column;align-items:center;gap:7px;width:100%;max-width:100%}
 .feature-comparison>div:not(.compression-art){display:flex;flex-direction:row;align-items:baseline;justify-content:center;gap:13px;max-width:100%;width:100%;min-width:0}
 .feature-comparison strong,.feature-comparison .feature-after strong{font-size:86px;line-height:1;letter-spacing:-2px}
 .feature-comparison>div>span{font-size:17px;line-height:1.4;margin:0}
 .feature-comparison .feature-after>span:first-child{margin:0;font-size:16px}
 .compression-art{width:44px;min-width:0;max-width:44px;height:40px;flex:none;margin:0}
 .compression-art svg{display:none}
 .compression-art>span{font-size:30px!important;line-height:1;transform:translate(-50%,-50%) rotate(90deg)}
 .feature-explanation{margin-top:25px}
 .feature-explanation>p{font-size:17px;line-height:1.65}
 .feature-explanation .qualifier{font-size:14px;line-height:1.65;margin-top:19px;color:#654b31}
 /* Distinct services, with deliberate headline breaks and comfortable reading widths. */
 .services>.container>.eyebrow{margin-bottom:25px}
 .service-pair{display:flex;flex-direction:column;gap:40px;width:100%}
 .salesforce-service{width:100%;padding:28px 24px;overflow:visible}
 .service-symbol{height:90px;width:122px;max-width:100%;margin-bottom:24px}
 .service-name{font-size:14px;line-height:1.5;margin-bottom:17px}
 .service-pair h2{font-size:39px;line-height:1.1;letter-spacing:-.35px;max-width:100%;overflow-wrap:normal;text-wrap:balance}
 .service-pair h2 br{display:block}
 .service-pair p{font-size:17px;line-height:1.65;margin-top:21px}
 .service-link{font-size:15px;line-height:1.5;min-height:48px;gap:15px;margin-top:22px;padding-top:10px;max-width:100%;overflow-wrap:normal}
 .service-link>span{font-size:23px}
 .embedded-service{width:100%;padding:0}
 .embedded-service h2{font-size:44px;line-height:1.09;letter-spacing:-.5px}
 .embedded-service h2 br{display:block}
 .team-symbol{height:78px;width:190px;max-width:100%;margin:0 0 23px;transform:none}
 .team-symbol>span{flex-shrink:0}
 /* Customer proof stays a reserved editorial space, with a vertical story structure. */
 .proof{padding-top:5px}
 .proof-layout{display:block}
 .proof h2{font-size:41px;line-height:1.1}
 .proof-layout>div:first-child>p:not(.eyebrow){font-size:16px;line-height:1.65;margin:20px 0 10px}
 .story-space{padding:22px 0 0;min-height:0}
 .story-space>span{font-size:13px;line-height:1.6}
 .story-space>div{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:19px}
 .story-space p{font-size:30px;line-height:1.2}
 .story-space i{font-size:20px;line-height:1;transform:rotate(45deg);margin-left:3px}
 /* A real brief-shaped composition, with the logo and title on separate rows. */
 .assessment{padding:53px 0 58px}
 .assessment-layout{display:flex;flex-direction:column;gap:33px;align-items:stretch}
 .assessment-copy .section-identifier{font-size:18px;line-height:1.4;max-width:100%}
 .assessment-copy h2{font-size:42px;line-height:1.1;letter-spacing:-.4px;max-width:100%}
 .assessment-copy h2 br{display:none}
 .assessment-copy h2 em:before{content:' '}
 .assessment-copy>p:not(.eyebrow){font-size:17px;line-height:1.65;margin-top:23px;max-width:100%}
 .assessment-copy .button{font-size:14px;margin-top:23px;padding:16px 17px;gap:12px}
 .brief{width:100%;padding:28px 24px;transform:none;box-shadow:5px 5px 0 #aeb89538}
 .brief-heading{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:22px}
 .brief-official-logo{width:145px;max-width:100%;height:auto}
 .brief-heading>span:last-child{font-size:34px;line-height:1.12;max-width:100%}
 .brief>p{font-size:16px;line-height:1.65}
 .brief ul{margin-top:18px}
 .brief li{font-size:16px;line-height:1.6;padding:11px 0 11px 22px}
 .brief li:before{top:11px}
 .assessment-art{overflow:hidden}
 .footer-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 23px;padding:38px 0 30px}
 .footer-main>.wordmark{grid-column:1/-1}
 .footer-main>div{gap:10px;font-size:14px;line-height:1.55}
 .footer-main>div>a{display:block;padding:5px 0;min-width:0}
 .footer-main>div:last-child{grid-column:1/-1;gap:7px}
 .footer-base{display:flex;flex-direction:column;align-items:flex-start;gap:13px;padding:5px 0 25px;font-size:12px}
 .footer-base>div{gap:24px}
 .footer-base button{font-size:13px;min-height:44px;padding:10px 0}
 dialog{width:calc(100% - 32px);max-width:500px;max-height:calc(100svh - 40px);overflow-y:auto;padding:39px 24px 28px}
 dialog h2{font-size:35px;line-height:1.15}
 dialog>p:not(.eyebrow){font-size:16px;line-height:1.65}
 dialog .eyebrow{font-size:12px;line-height:1.5;margin-right:10px}
 dialog .button{font-size:14px}
 .dialog-close{min-width:44px;min-height:44px;top:2px;right:4px}
 select:focus-visible{outline:3px solid var(--copper);outline-offset:3px}
}
@media(max-width:760px){
 .life-header h2 br,.impact-heading h2 br,.assessment-copy h2 br{display:block}
 .life-header h2 em:before,.assessment-copy h2 em:before{content:none}
}
