/* RJP signature motion. The supplied logo and photographs remain unchanged. */
:root{--motion-ease:cubic-bezier(.2,.75,.25,1)}
.header-tools{display:flex;align-items:center;gap:10px;flex-shrink:0}
.site-header .nav{margin-left:auto}
.motion-toggle{position:relative;display:none;align-items:center;justify-content:center;width:38px;height:38px;min-width:38px;padding:9px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--navy);flex-shrink:0}
.rjp-motion .motion-toggle{display:inline-flex}
.motion-toggle:hover{background:var(--pale);border-color:var(--blue)}
.motion-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;pointer-events:none}
.motion-toggle .motion-play{display:none}
.motion-toggle[data-paused=true] .motion-pause{display:none}
.motion-toggle[data-paused=true] .motion-play{display:block}
.motion-toggle:disabled{cursor:default;opacity:.7}
.motion-tooltip{position:absolute;right:-5px;top:calc(100% + 12px);padding:6px 11px;background:var(--navy);color:#fff;font-size:11px;font-weight:400;white-space:nowrap;line-height:1.5;border-radius:3px;opacity:0;visibility:hidden;transform:translateY(-3px);transition:opacity .15s,transform .15s;pointer-events:none}
.motion-toggle:hover .motion-tooltip,.motion-toggle:focus-visible .motion-tooltip{opacity:1;visibility:visible;transform:none}
.site-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;overflow:hidden;pointer-events:none;opacity:0}
.rjp-motion .site-progress{opacity:1}
.site-progress span{display:block;height:100%;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left center}
/* A generous, articulated spine replaces the old static oval and four dots. */
.hero-visual:before,.hero-visual:after{display:none}
.hero-visual{isolation:isolate}
.hero-spine{position:absolute;right:-140px;top:-24px;width:170px;height:calc(100% + 48px);z-index:0;pointer-events:none;overflow:visible}
.spine-curve{fill:none;stroke:var(--accent);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.spine-dot{fill:var(--blue)}
.hero-photo{z-index:1}
.portrait-label{z-index:2}
.float-motion{animation:none}
/* Draw-on introduction; a quiet travelling flex is handled by motion.js. */
.rjp-motion:not([data-motion=reduced]) .hero-spine.has-entered .spine-curve{animation:rjp-spine-ink 1.8s var(--motion-ease) both}
@keyframes rjp-spine-ink{from{stroke-dasharray:1 1;stroke-dashoffset:1}to{stroke-dasharray:1 1;stroke-dashoffset:0}}
.rjp-motion:not([data-motion=reduced]) .hero-spine.has-entered .spine-node{animation:rjp-vertebra-in .8s var(--motion-ease) both;animation-delay:var(--node-delay,0ms)}
@keyframes rjp-vertebra-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
/* Keep the reading and portrait surfaces steady. Animate the brand accents. */
.hero h1 em{position:relative;display:inline-block;text-decoration:none;z-index:0}
.hero h1 em:after{content:'';position:absolute;left:0;right:0;bottom:.015em;height:.075em;background:var(--accent);z-index:-1;transform-origin:left center}
.rjp-motion:not([data-motion=reduced]) .hero h1 em:after{animation:rjp-underline 1.05s var(--motion-ease) .25s both}
@keyframes rjp-underline{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.motion-ready .reveal{transition:opacity .7s var(--motion-ease),transform .7s var(--motion-ease);transition-delay:var(--reveal-delay,0ms);transform:translateY(18px)}
.motion-ready .reveal.is-visible{transform:translateY(0)}
/* The signature is a brand divider, not an exercise demonstration. */
.motion-signature{background:var(--paper);border-top:1px solid #E6E8E7;border-bottom:1px solid #E6E8E7;padding:25px 0 15px;overflow:hidden}
.signature-words{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;gap:20px;font-family:var(--serif);font-size:clamp(27px,3.2vw,42px);letter-spacing:-.035em;line-height:1.25;color:var(--navy)}
.signature-words span{display:block}
.mobility-flow{display:block;width:100%;height:70px;overflow:visible;pointer-events:none}
.flow-curve{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linecap:round}
.flow-node{fill:var(--blue)}
.flow-fine-line{fill:none;stroke:#CADBE8;stroke-width:1}
/* Inner pages carry the same spine, quietly in the margin. */
.page-hero{position:relative;overflow:hidden;isolation:isolate}
.page-hero>.container{position:relative;z-index:1}
.page-spine{position:absolute;right:max(30px,calc((100vw - 1240px)/2 + 40px));top:-74px;width:160px;height:490px;opacity:.28;transform:rotate(13deg);z-index:0;pointer-events:none}
/* Clear feedback for cards, buttons, downloads and the treatment finder. */
.service-card{overflow:hidden;transition:transform .35s var(--motion-ease),box-shadow .35s,border-color .35s}
.service-card:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--motion-ease)}
.service-card:hover:after,.service-card:focus-within:after{transform:scaleX(1)}
.service-card:focus-within{border-color:var(--blue)}
.service-card .service-top .icon{transition:transform .4s var(--motion-ease)}
.service-card:hover .service-top .icon,.service-card:focus-within .service-top .icon{transform:translateY(-3px)}
.arrow{transition:transform .35s var(--motion-ease)}
.text-link:hover .arrow,.text-link:focus-visible .arrow,.btn:hover .arrow,.btn:focus-visible .arrow{transform:translateX(6px)}
.resource-card{transition:border-color .25s,box-shadow .35s,transform .35s var(--motion-ease)}
.resource-card:hover,.resource-card:focus-within{border-color:var(--blue);box-shadow:0 12px 26px #0A31570B;transform:translateY(-3px)}
.resource-art>.icon{transition:transform .4s var(--motion-ease)}
.resource-card:hover .resource-art>.icon{transform:translateY(-3px)}
.patient-download .btn .icon{transition:transform .3s var(--motion-ease)}
.patient-download .btn:hover .icon,.patient-download .btn:focus-visible .icon{transform:translateY(3px)}
.chip{transition:background .2s,color .2s,border-color .2s,transform .25s var(--motion-ease)}
.chip:hover{transform:translateY(-2px);border-color:var(--blue)}
.steps .step{transition:border-color .4s}
.steps .step:after{content:'';position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:var(--accent);transform:scaleX(var(--step-progress,0));transform-origin:left}
.contact-banner{position:relative;overflow:hidden}
.contact-banner .container{position:relative;z-index:1}
.footer-motion{border:0;background:transparent;padding:0;color:var(--muted);text-decoration:underline;text-underline-offset:4px;font-size:11px;margin-top:10px;display:none}
.rjp-motion .footer-motion{display:inline-block}
/* Motion is opt-out, respects device settings and never carries essential information. */
html[data-motion=paused]{scroll-behavior:auto}
html[data-motion=paused] *,html[data-motion=paused] *:before,html[data-motion=paused] *:after{animation-play-state:paused!important;transition:none!important}
html[data-motion=paused] .reveal,html[data-motion=reduced] .reveal{opacity:1!important;transform:none!important}
html[data-motion=paused] .service-card:hover,html[data-motion=paused] .resource-card:hover,html[data-motion=paused] .resource-card:focus-within,html[data-motion=paused] .chip:hover,html[data-motion=paused] .btn:hover{transform:none}
@media(min-width:1101px){.nav{gap:22px}.nav-wrap{gap:18px}}
@media(min-width:901px) and (max-width:1100px){.nav{gap:14px}.nav-wrap{gap:13px}.nav .btn{padding-left:12px;padding-right:12px;gap:10px}.brand-name{font-size:13px}}
@media(max-width:1400px){.hero-visual{width:calc(100% - 48px);justify-self:start}.hero-spine{right:-94px;width:110px;top:-18px;height:calc(100% + 36px)}}
@media(max-width:1100px){.page-spine{right:-15px;opacity:.16}}
@media(max-width:900px){.site-header .nav{margin-left:0}.header-tools{margin-left:auto}.page-spine{right:-38px;opacity:.12}.motion-toggle{width:38px;height:38px}}
@media(max-width:680px){.hero-visual{width:calc(100% - 50px);margin-left:0;margin-right:30px}.hero-spine{right:-69px;width:82px;top:-20px;height:calc(100% + 40px)}.hero-grid{gap:39px}.signature-words{font-size:28px;gap:10px}.motion-signature{padding-top:24px;padding-bottom:14px}.mobility-flow{height:57px}.page-spine{right:-85px;top:-100px;height:460px;opacity:.08}.motion-tooltip{right:0}.header-tools{gap:8px}.nav-wrap{gap:12px}.motion-toggle{width:36px;height:36px;min-width:36px}.menu-toggle{min-width:43px;min-height:43px}.brand{gap:8px}.brand-name{font-size:12px}.hero-visual .portrait-label{left:-10px}}
@media(max-width:360px){.container{padding-left:18px;padding-right:18px}.brand-name{font-size:10px;letter-spacing:.09em}.brand-name small{font-size:9px}.brand img{width:36px}.header-tools{gap:6px}.nav-wrap{gap:7px}.motion-toggle{width:34px;height:34px;min-width:34px}.signature-words{font-size:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.spine-node,.hero h1 em:after{opacity:1!important;transform:none!important}.spine-curve{stroke-dasharray:none!important;stroke-dashoffset:0!important}.service-card:hover,.resource-card:hover,.resource-card:focus-within,.chip:hover,.btn:hover,.service-card:hover .service-top .icon{transform:none!important}.motion-ready .reveal{opacity:1!important;transform:none!important}}
@media print{.hero-spine,.page-spine,.motion-signature,.motion-toggle,.motion-tooltip,.footer-motion,.site-progress{display:none!important}.step:after{display:none!important}}
