/* Interaction access and small-screen adaptations; approved desktop geometry stays in approved.css. */
.rt{visibility:hidden}
.rt.on,.rt:focus-within{visibility:visible}
.rt .fill{pointer-events:none}
.route-toggle,.p-map .mobile-map{display:none}
.lb{box-sizing:border-box;padding:24px;overflow:auto;grid-template-columns:minmax(0,1fr)}
.lb-in{min-width:0;max-height:calc(100dvh - 48px);display:flex;flex-direction:column}
.lb-toolbar{display:flex;justify-content:flex-end;gap:12px;margin-bottom:12px;flex:none}
.lb-close,.lb-zoom{position:static;min-height:44px;padding:10px 18px;border:1px solid #ffffff80;border-radius:999px;color:#fff;background:#151413;font:600 16px/1.2 "Familjen Grotesk",system-ui,sans-serif;cursor:pointer}
.lb-zoom:focus-visible{outline:2px solid white;outline-offset:3px}
#lb-slot{min-height:0;overflow:auto;overscroll-behavior:contain}
.lb-media{overflow:auto;max-height:calc(100dvh - 230px);touch-action:pan-x pan-y pinch-zoom}
.lb-in img{max-height:calc(100dvh - 230px)}
.lb.zoomed .lb-media{max-height:calc(100dvh - 230px)}
.lb.zoomed img{max-width:none;max-height:none;width:auto;height:auto;margin:0}
.lb-in figcaption{padding:0 8px 4px}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media(max-width:1180px){
  .rt{display:block;top:auto;bottom:max(16px,env(safe-area-inset-bottom));left:auto;right:16px;transform:translateY(6px);padding:0;border-radius:22px;max-width:calc(100vw - 32px)}
  .rt.on{transform:none}
  .route-toggle{display:block;min-height:44px;border:0;border-radius:22px;padding:12px 20px;background:#fff;color:#1A5C44;font:600 16px/1.25 "Familjen Grotesk",system-ui,sans-serif;cursor:pointer}
  .route-toggle:focus-visible{outline:2px solid #1E6A4E;outline-offset:3px}
  .rt ol{display:none;gap:0;padding:0 8px 8px;max-height:60dvh;overflow:auto}
  .rt.expanded ol{display:flex}
  .rt ol::before,.rt .fill{display:none}
  .rt a,.rt a.cur,.rt a:hover,.rt a:focus-visible{width:100%;height:auto;min-height:44px;border:0;border-radius:12px;background:transparent;transform:none;display:flex;align-items:center;padding:10px 12px;box-sizing:border-box;text-decoration:none;color:#151413}
  .rt a::after{display:none}
  .rt a.cur{background:#EEF3EF;color:#1A5C44}
  .rt a span,.rt a:hover span,.rt a:focus-visible span{position:static;white-space:normal;opacity:1;transform:none;font-size:16px;line-height:1.3;border:0;padding:0;background:transparent;box-shadow:none}
  .rt a:focus-visible{outline-offset:-2px}
  .p-end{padding-bottom:88px}
}
@media(max-width:900px){
  .p{--g:clamp(24px,5vw,44px)}
  .p-hero8{padding-top:32px}
  .p-hero-row{gap:28px}
  .p-hero-text{max-width:60ch}
  .p-hero8 .p-map{width:100%;max-width:none;box-sizing:border-box}
  .p-demo-first .side{gap:28px}
  .desktop-demo-explanation{margin:0;padding:0;border:0}
  .p-decision{gap:24px}
  .p-sec.p-doc{padding-top:56px}
  .p-evo{padding-top:56px}
  .p-evo-top{gap:28px}
  .p-evo .decision-line{max-width:52ch}
  .p-lesson{gap:28px}
  .p-lesson h2{font-size:44px;max-width:20ch}
  .p-lesson blockquote{font-size:34px;max-width:32ch}
}
@media(max-width:600px){
  .p{font-size:18px;--g:24px}
  .p-hero8 h1{font-size:clamp(40px,10.8vw,58px);line-height:.98;max-width:12ch}
  .p .role{font-size:19px;line-height:1.3;margin-top:12px}
  .hero-heading-row{gap:14px;margin-bottom:26px}
  .p .hero-heading-row .hero-profile-links{gap:24px}
  .p .links a{min-height:44px;display:flex;align-items:center;box-sizing:border-box;padding-bottom:0}
  .p-hero8 .intro,.p .intro-motivation{font-size:20px;line-height:1.5}
  .p-hero8 .p-map{padding:18px 12px}
  .p-map h2{font-size:12px;margin-left:6px}
  .p-map .desktop-map{display:none}
  .p-map .mobile-map{display:block}
  .p-map text{font-size:28px}
  .p-map text.sub{font-size:25px}
  .p-rule{margin-top:32px}
  .p-demo-first{padding-top:32px;padding-bottom:64px}
  .p .project-heading{font-size:28px;line-height:1.12;margin-bottom:24px;max-width:20ch}
  .p-demo-first .p-demo{gap:28px}
  .p-demo-first .side{grid-template-columns:1fr;gap:24px}
  .p .p-demo-first .side p{font-size:19px;line-height:1.5}
  .p-demo-first .side h3{font-size:22px}
  .desktop-demo-explanation{margin:0;padding-top:24px}
  .p-demo-first .desktop-demo-steps{gap:24px;margin-top:32px}
  .p-demo-first .desktop-demo-steps li,.p-demo-first .desktop-demo-steps li:last-child{padding:0 0 0 36px}
  .p-demo-first .desktop-demo-steps::before{display:block;left:8px;right:auto;top:12px;bottom:24px;width:4px;height:auto}
  .p-sec>h2,.p-evo h2{font-size:34px;line-height:1.08;margin-bottom:24px}
  .p-doc .p-decision{padding:24px;gap:24px}
  .p-decision div{font-size:17px}
  .p-stage{padding-top:24px}
  .p-pair,.p-shift{grid-template-columns:1fr;gap:32px}
  .p-evo-top{gap:24px}
  .p-evo-top p,.p-evo .decision-line{font-size:19px}
  .p-shift figcaption,.p-pair figcaption{max-width:none}
  .p-lesson{padding-top:44px;padding-bottom:44px;gap:24px}
  .p-lesson h2{font-size:38px;max-width:13ch}
  .p-lesson blockquote{font-size:30px;line-height:1.25}
  .p-lesson p{font-size:18px}
  .lb{padding:12px}
  .lb-in{max-height:calc(100dvh - 24px)}
  .lb-in figcaption{text-align:left;font-size:15px}
}
