/* Small tablets and unfolded phones: fit content to CSS pixels, not a device name.
   Load after the page stylesheet. Desktop and narrow phone compositions stay intact. */
@media (min-width:600px) and (max-width:960px) {
  :root { --compact-gutter:clamp(24px,5vw,44px); --compact-header:84px; }
  .page-gutter { padding-left:var(--compact-gutter); padding-right:var(--compact-gutter); }
  .page-gutter > *, .closing-layout > *, .access-layout > *, .business-field-grid > * { min-width:0; }
  h1,h2,h3 { overflow-wrap:normal; word-break:normal; }
  .site-header .header-inner { gap:16px; }
  .site-header.is-menu-open nav.mobile-nav { padding-top:104px; padding-bottom:24px; gap:24px; }
  .site-header .mobile-nav .nav-menu-links { gap:clamp(6px,1.4svh,16px); }
  .site-header .mobile-nav .nav-menu-links>a { font-size:clamp(36px,min(6.6vw,7svh),58px); min-height:44px; }
  .site-header .nav-menu-bottom .nav-access { min-height:56px; margin-bottom:20px; }
  .site-header .mobile-nav .nav-menu-meta { padding-top:18px; }

  /* Home: no single-letter wrapping or portrait-only gap between rail modes. */
  .opening-scene .hero-content { padding-top:112px; padding-bottom:48px; justify-content:center; }
  .opening-scene .hero h1 { font-size:clamp(42px,min(8vw,10svh),72px); line-height:1.1; }
  .opening-scene .hero h1 .headline-light { font-size:.68em; white-space:nowrap; letter-spacing:-.04em; margin-bottom:.25em; }
  .opening-scene .hero-copy { font-size:17px; line-height:1.7; max-width:560px; margin-top:25px; }
  .opening-scene .hero-buttons { margin-top:26px; }
  .opening-scene .hero-cta { min-height:56px; width:250px; }
  .opening-scene .intro { padding-top:108px; padding-bottom:40px; }
  .opening-scene .intro h2 { font-size:clamp(30px,min(5.3vw,6.1svh),48px); line-height:1.23; }
  .capabilities .horizontal-stage { height:var(--mobile-rail-height,460svh); }
  .capabilities .horizontal-sticky { position:sticky; top:0; height:100svh; padding:104px 0 24px; gap:24px; overflow:hidden; justify-content:center; }
  .capabilities .tools-heading { margin:0 var(--compact-gutter); font-size:clamp(29px,4.6vw,42px); line-height:1.17; flex:none; }
  .capabilities .cards-track { width:max-content; overflow:visible; scroll-snap-type:none; padding:0 var(--compact-gutter); gap:24px; flex:none; }
  .capabilities .cap-card { flex:0 0 calc(100vw - 2 * var(--compact-gutter)); width:calc(100vw - 2 * var(--compact-gutter)); height:clamp(280px,calc(100svh - 320px),510px); padding:28px; }
  .capabilities .card-bottom h3 { font-size:clamp(30px,4.8vw,42px); }
  .capabilities .card-bottom p { font-size:16px; line-height:1.65; max-width:540px; }
  .capabilities .card-top { font-size:9px; }
  .capabilities .card-index { font-size:88px; bottom:20px; }
  .capabilities .capabilities-progress { margin:0 var(--compact-gutter); flex:none; }
  .capability-labels { font-size:8px; gap:8px; letter-spacing:0; }
  .journey-sticky { padding-top:64px; padding-bottom:60px; gap:32px; }
  .journey .pipeline-steps { top:var(--compact-header); }
  .journey .pipeline-step { font-size:12px; min-height:44px; }
  .journey .pipeline-step-detail { font-size:14px; }
  .journey .pipeline-board { padding-inline:20px; }
  .feedback .feedback-title-stage h2 { font-size:clamp(36px,5.7vw,54px); }
  .has-review-design .review-name { font-size:27px; }
  .review-card { padding:24px; }
  .review-card-top { left:24px; right:24px; top:22px; font-size:8px; }
  .review-card blockquote p { font-size:15px; line-height:1.75; }

  /* Vision: copy and diagram share the available height, even when almost square. */
  .vision-opening { padding-top:120px; padding-bottom:64px; }
  .vision-opening h1 { font-size:clamp(54px,9vw,86px); line-height:1.08; }
  .vision-opening-description { font-size:18px; line-height:1.75; max-width:600px; margin-top:28px; }
  .vision-common { min-height:0; padding-top:56px; padding-bottom:56px; }
  .vision-common-title { font-size:clamp(40px,6.4vw,60px); margin-bottom:32px; }
  .vision-starting-points,.vision-common-after { grid-template-columns:minmax(0,1fr); }
  .vision-starting-point,.vision-starting-point+.vision-starting-point { padding:28px 0; border-left:0; }
  .vision-starting-point+.vision-starting-point { border-top:1px solid var(--vision-paper-rule); }
  .vision-starting-point h3 { font-size:clamp(30px,4.7vw,42px); margin:20px 0; }
  .vision-starting-point p,.vision-common-after p { font-size:16px; line-height:1.8; max-width:none; }
  .vision-common-after { gap:22px; padding-top:28px; }
  .vision-path { height:max(360svh,calc(var(--vision-panel-height,100svh) * 4)); min-height:0; padding:0; }
  .vision-path-sticky { position:sticky; top:min(0px,calc(100svh - var(--vision-panel-height,100svh))); height:var(--vision-panel-height,100svh); padding:104px var(--compact-gutter) 24px; gap:20px; }
  .vision-path-layout { grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(160px,1fr); gap:16px; align-items:center; }
  .vision-path-copy { padding-top:0; min-height:var(--vision-copy-height,0px); }
  .vision-stage h2 { font-size:clamp(30px,4.8vw,43px); line-height:1.13; margin:16px 0; }
  .vision-stage p { font-size:15px; line-height:1.7; margin:12px 0; max-width:none; }
  .vision-stage-tools { font-size:9px; margin-top:16px; }
  .vision-stage-art { height:100%; min-height:160px; max-height:28svh; width:min(100%,540px); aspect-ratio:auto; justify-self:center; }
  .vision-path-nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 20px; margin-top:0; }
  .vision-path-nav button { font-size:12px; min-height:42px; padding-top:10px; }
  .vision-manifesto { padding-top:56px; padding-bottom:56px; }
  .vision-manifesto-heading { font-size:clamp(40px,6.8vw,64px); margin-bottom:32px; }
  .vision-beliefs { grid-template-columns:1fr; gap:28px; }
  .vision-belief p { font-size:16px; max-width:none; }
  .vision-independence { grid-template-columns:1fr; padding-top:56px; padding-bottom:60px; gap:28px; }
  .vision-independence h2 { font-size:clamp(40px,6.5vw,62px); }
  .vision-independence-copy p { font-size:17px; line-height:1.8; max-width:none; }
  .vision-independence-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; max-width:none; }
  .vision-independence-links .vision-outline-link { min-width:0; min-height:58px; padding:16px; gap:12px; font-size:11px; white-space:normal; }

  /* Solutions: complete stacked media/copy cards, not narrow desktop columns. */
  .solutions-hero { min-height:100svh; padding-top:126px; padding-bottom:54px; }
  .solutions-hero .sol-hero-title h1 { font-size:clamp(48px,7.7vw,74px); line-height:1.1; }
  .solutions-hero .sol-hero-bottom p { font-size:18px; line-height:1.7; }
  .sol-static-art { top:0; height:100%; width:140%; opacity:.6; }
  .sol-hero-line { font-size:8px; gap:12px; margin-top:34px; }
  .solution-picker { padding-top:42px; padding-bottom:48px; }
  .sol-audience button { min-height:80px; padding:20px 16px; font-size:clamp(23px,3.7vw,32px); }
  .sol-audience button span { flex:none; }
  .sol-service-stack>.solution-feature { grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr) auto; align-content:stretch; }
  .sol-service-stack>.solution-feature::after { display:none; }
  .sol-service-stack .sol-media-panel { height:100%; padding:24px var(--compact-gutter) 20px; }
  .sol-service-stack .sol-screen { height:clamp(210px,29svh,340px); aspect-ratio:auto; background:transparent; border:0; border-radius:0; box-shadow:none; }
  .sol-media-panel figcaption { font-size:11px; margin-bottom:18px; }
  .sol-service-stack .sol-feature-copy { padding:26px var(--compact-gutter) 32px; height:auto; min-width:0; background:#f2f2ee; }
  .sol-service-stack>.solution-feature:first-child .sol-feature-copy { background:#080c0b; }
  .sol-service-stack>.solution-feature:last-child .sol-feature-copy { background:var(--sol-edge-bg,#f2f2ee); }
  .sol-service-stack .sol-feature-copy h2 { font-size:clamp(32px,4.8vw,44px); margin-bottom:18px; }
  .sol-service-stack .sol-subtitle { font-size:19px; margin-bottom:14px; }
  .sol-service-stack .sol-description,.sol-service-stack .sol-tool-detail>p:last-child { font-size:15px; line-height:1.75; margin-bottom:20px; }
  .sol-capabilities li { font-size:15px; line-height:1.6; padding:12px 0; }
  .sol-tool-tabs { gap:16px; flex-wrap:wrap; }
  .sol-tool-tabs button { font-size:11px; min-height:44px; }
  .sol-slider-bar { flex-wrap:wrap; gap:12px; }
  .sol-slider-arrows button { width:44px; height:44px; }
  .solutions-page .sol-statement { padding-top:56px; padding-bottom:60px; }
  .sol-statement h2 { font-size:clamp(42px,6.7vw,64px); margin-bottom:30px; }
  .sol-statement-grid,.biz-intro-grid,.biz-section-head,.biz-report-layout,.biz-placement { grid-template-columns:minmax(0,1fr); gap:28px; }
  .sol-statement-grid p { font-size:17px; }
  .biz-intro-grid h2,.biz-section-head h2,.biz-placement h2,.biz-pilot h2 { font-size:clamp(38px,6vw,56px); }
  .biz-intro-grid .biz-lead { font-size:22px; }
  .biz-research,.biz-value,.biz-pilot,.biz-placement { padding-top:54px; padding-bottom:54px; }
  .biz-report-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
  .biz-report-tabs button { font-size:18px; min-height:56px; }
  .biz-report-detail h3 { font-size:26px; }
  .biz-data-art { order:2; min-width:0; }
  .biz-placement-copy { order:1; min-width:0; }
  .biz-placement-copy h3 { font-size:24px; }
  .biz-placement-copy li p,.biz-value-grid p,.biz-pilot-grid p { font-size:16px; }
  .biz-pilot-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
  .biz-pilot-grid h3 { font-size:24px; }

  /* About: the same editorial grid in both fold orientations. */
  .about-hero { min-height:100svh; padding-top:126px; padding-bottom:60px; gap:32px; justify-content:center; }
  .about-hero h1 { font-size:clamp(52px,8.6vw,80px); line-height:1.12; text-wrap:balance; }
  .about-hero-description { font-size:18px; line-height:1.75; max-width:680px; }
  .about-hero-bottom { margin-top:0; }
  .about-story-pin>.about-people,.about-story-pin>.about-origin,.about-story-pin>.about-balance-story { grid-template-columns:minmax(0,1fr); gap:28px; padding-top:48px; padding-bottom:48px; }
  .about-story-pin h2 { font-size:clamp(36px,5.6vw,52px); line-height:1.16; }
  .about-story-pin>section>div { min-width:0; }
  .about-people p,.about-disciplines p,.about-story-pin .about-origin-body p,.about-story-pin .about-balance-body p { font-size:16px; line-height:1.8; }
  .about-people .about-people-intro,.about-story-pin .about-origin-body .about-lead,.about-story-pin .about-balance-body .about-lead { font-size:20px; line-height:1.7; }
  .about-disciplines h3 { font-size:28px; }
  .about-disciplines article { padding-top:20px; padding-bottom:20px; }
  .about-principles { padding-top:54px; padding-bottom:54px; }
  .about-principle-grid { grid-template-columns:1fr; gap:28px; margin-top:32px; }
  .about-principle-grid h3 { font-size:27px; }
  .about-principle-grid p { font-size:16px; max-width:none; }
  .about-next { grid-template-columns:minmax(0,1fr); gap:30px; padding-top:54px; padding-bottom:60px; }
  .about-next h2 { font-size:clamp(44px,7vw,64px); }
  .about-next p { font-size:17px; }
  .about-contact { width:100%; max-width:none; }
  .about-contact strong { font-size:clamp(21px,3.4vw,29px); }

  /* Journals, long articles and legal pages need room for prose, not a sidebar. */
  .insights-hero { grid-template-columns:minmax(0,1fr); gap:28px; padding-top:126px; padding-bottom:54px; align-content:center; }
  .insights-hero-copy { max-width:none; width:100%; }
  .insights-hero h1 { font-size:clamp(49px,7.7vw,72px); line-height:1.1; }
  .insights-hero-copy>p:not(.insight-kicker) { font-size:18px; line-height:1.75; }
  .insights-hero-art { width:100%; height:clamp(240px,34svh,380px); max-width:none; aspect-ratio:auto; }
  .insights-feature { padding-top:54px; padding-bottom:54px; }
  .insights-feature-layout { grid-template-columns:minmax(0,1fr); gap:26px; }
  .feature-visual { aspect-ratio:1.7; }
  .feature-copy h2 { font-size:clamp(34px,5.5vw,48px); }
  .insights-library { padding-top:54px; padding-bottom:54px; }
  .library-heading { flex-direction:column; gap:14px; align-items:flex-start; }
  .insight-grid { gap:36px 24px; }
  .insight-card h3 { font-size:27px; }
  .insight-cover { aspect-ratio:1.6; }
  .news-page .news-hero { min-height:100svh; padding-top:126px; padding-bottom:60px; }
  .news-hero h1 { font-size:clamp(50px,8vw,76px); line-height:1.1; }
  .news-hero-description { font-size:18px; line-height:1.75; }
  .news-feed { padding-top:54px; padding-bottom:54px; }
  .news-categories button { font-size:14px; min-height:44px; padding:12px; }
  .news-toolbar { flex-direction:column; align-items:stretch; }
  .news-search { flex:auto; width:100%; }
  .news-story-header,.insight-story-header { width:100%; max-width:none; padding-top:120px; padding-bottom:40px; }
  .news-story h1,.insight-story-header h1 { font-size:clamp(38px,6.6vw,60px); line-height:1.13; max-width:none; }
  .news-story-deck,.insight-deck { font-size:18px; line-height:1.8; max-width:none; }
  .news-story-content { width:100%; max-width:none; padding-inline:var(--compact-gutter); }
  .insight-reading-layout,.legal-layout { grid-template-columns:minmax(0,1fr); gap:30px; }
  .insight-toc,.legal-toc { position:static; border-bottom:1px solid #344238; padding-bottom:24px; }
  .insight-toc summary { pointer-events:auto; cursor:pointer; }
  .insight-toc nav,.legal-toc { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 20px; }
  .insight-prose p,.insight-prose li,.legal-copy p,.legal-copy li { font-size:16px; line-height:1.9; }
  .insight-prose h2 { font-size:32px; }
  .legal-main { padding-top:126px; padding-bottom:60px; }
  .legal-hero h1 { font-size:clamp(40px,7vw,64px); }
  .legal-hero { margin-bottom:40px; }
  .legal-copy section { margin-bottom:40px; }

  /* Shared footer and both forms: no clipped labels or half-width modal. */
  .closing-layout,.news-page .closing-layout,.insights-page .closing-layout,.about-page .closing-layout { grid-template-columns:minmax(0,1fr); min-height:0; padding-top:56px; padding-bottom:60px; gap:28px; }
  .final-cta.closing-cta .closing-layout h2 { font-size:clamp(40px,6.6vw,60px); }
  .closing-action { max-width:560px; min-width:0; }
  .closing-action p { font-size:16px; line-height:1.8; }
  .site-footer.closing-footer { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .closing-footer-cell { min-width:0; padding:28px var(--compact-gutter); }
  .closing-footer-cell:nth-child(even) { border-right:0; }
  .closing-footer-cell:nth-child(-n+2) { border-bottom:1px solid #252b28; }
  .closing-footer-cell:nth-child(3),.closing-footer-cell:nth-child(4) { padding-inline:var(--compact-gutter); }
  .access-dialog,.business-dialog { width:calc(100% - 32px); max-height:calc(100dvh - 32px); padding:40px 28px 28px; }
  .access-dialog .access-layout,.business-dialog .access-layout { display:grid; grid-template-columns:minmax(0,1fr); min-height:0; gap:26px; }
  .access-dialog .access-intro h2 { font-size:44px; }
  .access-description { font-size:15px; max-width:none; }
  .access-contact,.business-dialog .access-contact { margin-top:22px; padding-top:0; }
  .access-contact>a { font-size:17px; }
  .access-form,.business-dialog .access-form { width:100%; min-width:0; padding:24px; }
  .access-field input,.access-profile-trigger,.access-field textarea { font-size:16px; }
  .business-field-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
  .access-close { width:44px; height:44px; top:4px; right:4px; }
}

/* Short, wide unfolded displays use two balanced columns only for the Vision
   stage, where a stacked diagram would leave no room for the text. */
@media (min-width:800px) and (max-width:960px) and (max-height:740px) {
  .vision-path-layout { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); grid-template-rows:1fr; gap:24px; }
  .vision-stage h2 { font-size:32px; }
  .vision-stage p { font-size:14px; line-height:1.65; }
  .vision-stage-art { max-height:100%; min-height:220px; }
  .vision-path-nav { grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
  .vision-opening { padding-top:110px; padding-bottom:44px; }
  .capabilities .tools-heading { font-size:29px; }
  .capabilities .horizontal-sticky { gap:18px; padding-top:96px; padding-bottom:18px; }
}

@media (min-width:600px) and (max-width:640px) {
  :root { --compact-header:74px; }
  .business-field-grid { grid-template-columns:1fr; }
  .has-review-design .reviews-field .review-slot { width:100%; }
}

@media (min-width:600px) and (max-width:960px) and (prefers-reduced-motion:reduce) {
  .capabilities .horizontal-stage { height:auto; }
  .capabilities .horizontal-sticky { position:relative; height:auto; overflow:visible; }
  .capabilities .cards-track { width:100%; overflow-x:auto; scroll-snap-type:x mandatory; transform:none; }
  .vision-path { height:auto; min-height:0; padding-block:54px; }
  .vision-path-sticky { position:relative; top:auto; height:auto; padding-block:0; }
  .vision-path-layout { grid-template-rows:auto auto; }
  .vision-stage-art { height:260px; }
}
