/* Shared responsive layer, loaded after each page's component styles. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:100px}
body{overflow-wrap:break-word}
img,video,canvas{max-width:100%;height:auto}
iframe{max-width:100%}
fieldset{min-inline-size:0}
:where(main,section,article,aside,form,nav,div){min-width:0}
:where(input,textarea,select){max-width:100%}
:where(h1,h2,h3,h4,a,dd,code){overflow-wrap:anywhere}
:where(.actions,.cap-actions,.cta-options,.sb-actions,.ts-actions,.res-pack-actions,.hub-actions,.actionbar){max-width:100%}
:where(.btn,.cap-button,.res-button,.res-contact){max-width:100%;white-space:normal;text-align:center;line-height:1.5}
:where(.journal-table,.res-table-scroll,.ts-table,.hub-table-wrap,.cro-report-scroll){overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
pre{max-width:100%;overflow-x:auto;white-space:pre;tab-size:2}
.ysm-table-scroll{max-width:100%;overflow-x:auto;margin-block:24px;overscroll-behavior-x:contain;border:1px solid var(--line,#d7ddd3);border-radius:8px}
.ysm-table-scroll table{width:100%;min-width:440px;border-collapse:collapse}
.ysm-table-scroll:focus-visible{outline:3px solid #688658;outline-offset:3px}
@media screen and (max-width:1100px){
 .nav .navinner{gap:16px}
 .nav .navlinks{display:none;position:absolute;inset:100% 0 auto;background:var(--paper,#f7f5ef);padding:16px max(20px,env(safe-area-inset-left));border-bottom:1px solid var(--line,#d7ddd3);flex-direction:column;gap:4px;max-height:calc(100vh - 86px);max-height:calc(100dvh - 86px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 14px 20px #172d2310}
 .nav .navlinks.open{display:flex}
 .nav .navlinks a{display:flex;align-items:center;min-height:48px;padding:10px 12px;line-height:1.5}
 .nav .navlinks .consultation-menu-link{display:flex}
 .nav .menu{display:block;flex:none;min-width:58px;min-height:44px;padding:8px 12px;margin-left:0}
 .nav .navinner>.btn{margin-left:auto}
 .nav .logo{flex:0 1 auto}
 .case-library .case-study-grid.capability-case-rail{max-width:100%}
}
@media screen and (max-width:900px){
 .hero,.pm-hero-layout,.cap-hero-grid{grid-template-columns:minmax(0,1fr)}
 .cap-hero-grid{display:grid;gap:28px}
 .cap-signal{max-width:620px;width:100%;margin:0}
 .hero .home-growth-art{max-width:340px;margin:0 auto}
 .res-hero,.res-gate,.res-simulation{grid-template-columns:minmax(0,1fr);gap:28px}
 .res-access,.res-results{position:static}
 .res-how-grid{grid-template-columns:1fr;gap:24px}
}
@media screen and (max-width:760px){
 .wrap,.res-wrap{width:100%;padding-inline:clamp(18px,4.8vw,28px)}
 .nav .wrap{padding-inline:16px}
 .section,.pm-section{padding-block:52px}
 .hero{padding-block:42px 36px;gap:28px}
 .hero h1,.pm-hero h1,.cap-hero h1,.cs-hero h1,.cs-library-head h1,.journal-hero h1,.journal-article-hero h1,.res-hero h1,.res-gate h1,.res-work-heading h1,.contact-intro h1,.hub-intro h1,.ts h1,.ts-guide-hero h1,.tb h1,.sb h1{font-size:clamp(2.05rem,7.8vw,3rem);line-height:1.14;letter-spacing:-.045em;max-width:100%;margin-block:20px 24px}
 .section h2,.sectionhead h2,.pm-section h2,.final h2,.cap-close h2,.moments-intro h2,.faq-side h2{font-size:clamp(1.8rem,6.8vw,2.5rem);line-height:1.2;max-width:100%}
 .hero p,.cap-hero .cap-lead,.intro,.contact-intro>p,.res-intro{font-size:1.05rem;line-height:1.7}
 .hero-line{white-space:normal}
 .actions,.cap-actions,.cta-options{align-items:stretch;flex-direction:column;gap:12px}
 .actions>.btn,.cap-actions>.cap-button,.cta-options>.btn{width:100%;min-height:48px;font-size:.95rem;margin:0}
 .cap-actions>.cap-quiet{align-self:flex-start;min-height:44px;line-height:1.5}
 .cap-signal{display:block;padding:24px}
 .cap-signal-orbit{max-width:260px;margin:12px auto}
 .cap-signal h2{font-size:1.5rem;line-height:1.3;margin-block:12px}
 .cap-signal p{font-size:.95rem;line-height:1.7}
 .cap-signal-bottom{font-size:.75rem;line-height:1.6}
 .cap-invitation{display:block}
 .cap-choice strong{font-size:1.15rem;line-height:1.5}
 .cap-tags{gap:8px 14px;font-size:.8rem}
 .capability-explorer{grid-template-columns:1fr;gap:20px;margin-top:28px}
 .capability-nav{position:static}
 .capability-tabs{max-width:100%;overscroll-behavior-x:contain;scroll-padding-inline:4px}
 .cap-panel{padding:24px 22px}
 .cap-panel-main h3{font-size:clamp(1.85rem,7vw,2.5rem);line-height:1.2}
 .cap-panel-actions{gap:16px;align-items:stretch}
 .cap-panel-actions>.cap-cta{width:100%;min-height:48px}
 .cap-panel-bottom{grid-template-columns:1fr}
 .proof{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}
 .proof>div:nth-child(even){border-right:0}
 .proof strong{font-size:clamp(1.65rem,6.4vw,2.5rem);line-height:1.25}
 .proof span{display:block;line-height:1.6}
 .brands .sector-label,.brandrow .sector-label{white-space:normal;max-width:100%;font-size:1rem;line-height:1.6}
 .work,.offers,.twocol,.about,.principles,.articles,.perspectives .quotes,.method .process{grid-template-columns:minmax(0,1fr)}
 .case,.quote-card,.quote-card:first-child,.offer{min-height:0;height:auto;padding:24px}
 .case .number{max-width:100%;font-size:clamp(2rem,8vw,3rem)}
 .case h3,.offer h3{font-size:1.4rem;line-height:1.35}
 .case .metrics{margin-top:22px}
 .case>.textlink,.offer .textlink{min-height:44px;display:inline-flex;align-items:center}
 .sectionhead{grid-template-columns:1fr;gap:18px}
 .moments-layout,.faq-layout{grid-template-columns:1fr;gap:28px}
 .moments-intro{position:static}
 .moment-close{margin-top:32px}
 .faq-side{min-height:0;padding:24px}
 .faq-side h2{margin-block:18px}
 .faq-side-bottom{margin-top:18px}
 .faq-answer{padding:0 0 24px 35px}
 .faq-section summary{padding-block:20px}
 .cs-layout,.insight-layout,.journal-reading{grid-template-columns:minmax(0,1fr)}
 .cs-toc,.journal-toc,.ts-toc{position:static;max-width:100%}
 .cs-toc a{min-height:44px;line-height:1.5;white-space:normal}
 .cs-grid,.journal-grid,.journal-related .journal-grid{grid-template-columns:minmax(0,1fr)}
 .journal-related .journal-card:last-child{grid-column:auto}
 .cs-story p,.cs-story li,.journal-body p,.journal-body li{font-size:1rem;line-height:1.8}
 .journal-hero,.journal-article-hero{padding-top:44px;padding-bottom:32px}
 .journal-reading{padding-top:28px;gap:24px}
 .journal-card-meta,.study-top,.res-card-top{flex-wrap:wrap}
 .journal-card-meta>span:last-child{flex-shrink:0}
 .journal-feature,.journal-apply,.journal-resources{padding:24px}
 .journal-body h2{font-size:clamp(1.6rem,6vw,2rem);line-height:1.3}
 .journal-calculator-fields,.res-input-grid,.res-row-fields,.res-fact-grid,.res-decision-cards{grid-template-columns:minmax(0,1fr)}
 .res-nav>.res-wrap{flex-wrap:wrap;gap:10px 16px;padding-block:14px}
 .res-nav nav{order:3;flex-basis:100%;display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;justify-content:flex-start}
 .res-nav nav a{display:inline-flex;align-items:center;min-height:44px;padding:8px 0}
 .res-contact{margin-left:auto}
 .res-grid{grid-template-columns:1fr}
 .res-filters,.tb-controls,.ts-search{grid-template-columns:minmax(0,1fr)}
 .tb-controls label:first-child{grid-column:auto}
 .tb-options{align-items:stretch}
 .tb-options label{flex-wrap:wrap;min-width:0}
 .tb-options select{max-width:100%}
 .tb-goals{grid-template-columns:1fr}
 .res-hero-note,.res-access,.res-panel,.res-results{padding:24px}
 .res-results dd{font-size:clamp(1.4rem,6vw,1.85rem);overflow-wrap:anywhere}
 .res-work-heading{display:block}
 .res-toolbar{max-width:none;min-width:0;flex-wrap:wrap}
 .res-toolbar .res-button{min-width:0;flex:1 1 160px}
 .res-section-heading{display:block}
 .res-section-heading>p{margin-top:14px}
 .contact-main{padding-top:44px;padding-bottom:48px}
 .contact-layout,.booking-layout{grid-template-columns:1fr;gap:28px}
 .contact-fields{grid-template-columns:1fr}
 .contact-form-card{padding:24px 20px}
 .contact-person{margin-block:26px}
 .booking-days,.booking-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .booking-day,.booking-time{min-width:0;padding:10px 5px;font-size:14px}
 .booking-period{flex-wrap:wrap}
 .booking-period span{width:100%;order:-1}
 .sb,.tb,.ts{padding-inline:20px}
 .sb-grid,.tb-grid,.ts-grid{grid-template-columns:minmax(0,1fr)}
 .sb-controls{display:grid;grid-template-columns:1fr}
 .sb-controls label:first-child{min-width:0}
 .sb-actions,.ts-actions,.tb-actions{flex-direction:column;align-items:stretch}
 .sb-next,.sb-original,.sb-success,.ts-first,.ts-close{padding:20px}
 .ysm-footer .ysm-footer-inner{width:100%;padding-inline:20px}
 .ysm-footer .ysm-footer-top{grid-template-columns:1fr;padding-bottom:24px}
 .ysm-footer .ysm-footer-nav{gap:24px 20px}
 .ysm-footer .ysm-footer-group a{font-size:.875rem;min-height:44px;line-height:1.6}
 .ysm-footer-bottom{flex-wrap:wrap}
 input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px;min-width:0}
 .cro-mobile-actions.is-visible{bottom:calc(12px + env(safe-area-inset-bottom,0px));left:16px;right:16px;margin:0;gap:8px;padding:8px;grid-template-columns:1fr 1.15fr}
 .cro-mobile-actions a{min-height:48px;font-size:.8rem;padding:8px 10px}
 body.cro-mobile-active{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
}
@media screen and (max-width:380px){
 .nav .navinner{gap:8px}
 .nav .logo{font-size:1rem;max-width:124px;line-height:1.2;white-space:normal}
 .nav .navinner>.consultation-nav{padding-inline:9px;font-size:.72rem}
 .nav .menu{min-width:50px;padding-inline:8px}
 .res-nav .res-brand{font-size:1rem;white-space:normal}
 .res-nav .res-contact{font-size:.75rem;padding:10px}
 .res-results dl{grid-template-columns:1fr}
 .ysm-footer .ysm-footer-nav{grid-template-columns:1fr}
 .ysm-footer-group:last-child{grid-column:auto}
 .ysm-footer-group:last-child ul{grid-template-columns:1fr}
 .faq-section summary{grid-template-columns:22px minmax(0,1fr) 26px;gap:8px}
 .faq-answer{padding-left:30px}
}
@media screen and (max-width:700px){
 .shell,.seo-shell,.workspace,.split{grid-template-columns:minmax(0,1fr)}
 #seo-hub-main{padding:16px}
 .hub-filter-row label,.tools label{min-width:0;flex-basis:100%}
 .hub-kpis,#hub-kpis,#hub-performance-kpis,.stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hub-kpi strong,.stats strong{overflow-wrap:anywhere}
 .savebar{position:static;gap:12px}
 .savebar button{flex:1 1 130px}
 .hub-nav{max-width:100%;scroll-padding-inline:16px}
 .page-tabs{max-width:100%}
 .opp-board{max-width:100%;scroll-snap-type:x proximity}
 .opp-column{scroll-snap-align:start}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ui-reveal.is-pending{opacity:1;transform:none}.cro-mobile-actions,.cap-tab,.case,.journal-card{transition:none}}
