/* Service demonstrations: inherit the approved page palette and type. */
.service-intro:has(.service-scene){--scene-layout-gap:clamp(24px,4vw,76px);--scene-copy-space:28px;--scene-heading-size:clamp(44px,5.25vw,86px);--scene-lead-size:clamp(18px,1.5vw,23px);--scene-small-size:10px;--scene-label-tracking:.12em;--scene-label-weight:700;--scene-stage-focus-gap:5px;--scene-focus-width:2px;--scene-caption-size:11px;--scene-caption-leading:1.55;--scene-hint-space:4px;--scene-control-gap:2px 18px;--scene-icon-gap:7px;--scene-control-padding:8px 0;--scene-border-width:1px;--scene-control-focus-gap:3px;--scene-sr-offset:-1px;--scene-stage-space:10px}

.service-hero-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--scene-layout-gap);align-items:center}
.service-hero-copy{min-width:0}
.service-hero-copy>.eyebrow{margin-bottom:var(--scene-copy-space)}
.customer-page .service-hero-copy h1{font-size:var(--scene-heading-size);overflow-wrap:normal}
.service-hero-copy .page-lead{font-size:var(--scene-lead-size);max-width:36em}
.service-scene{--scene-ink:var(--ink);--scene-paper:var(--paper);--scene-accent:var(--tone);--scene-accent-dark:color-mix(in srgb,var(--tone) 62%,var(--ink));--scene-muted:color-mix(in srgb,var(--paper) 16%,var(--ink));--scene-line:color-mix(in srgb,var(--ink) 24%,transparent);margin:0;min-width:0;width:100%;max-width:680px;justify-self:center;color:var(--scene-ink);align-self:center}
.scene-title{font-size:var(--scene-small-size);letter-spacing:var(--scene-label-tracking);text-transform:uppercase;font-weight:var(--scene-label-weight);text-align:center}
.scene-stage{margin-block:var(--scene-stage-space);position:relative;touch-action:pan-y;cursor:grab;outline-offset:var(--scene-stage-focus-gap);user-select:none;-webkit-user-select:none}
.scene-stage:active{cursor:grabbing}
.scene-stage:focus-visible{outline:var(--scene-focus-width) solid var(--scene-ink)}
.scene-graphic{display:block;width:100%;height:auto;aspect-ratio:600/520;overflow:visible}
.scene-hint{font-size:var(--scene-caption-size)!important;line-height:var(--scene-caption-leading)!important;margin:0 auto var(--scene-hint-space)!important;max-width:36em;text-align:center;min-height:3.1em}
.scene-controls{display:flex;flex-wrap:wrap;gap:var(--scene-control-gap);justify-content:center;align-items:center}
.scene-controls button{display:inline-flex;align-items:center;justify-content:center;gap:var(--scene-icon-gap);min-height:44px;padding:var(--scene-control-padding);border:0;border-bottom:var(--scene-border-width) solid transparent;background:transparent;color:var(--scene-ink);font:inherit;font-size:var(--scene-caption-size);cursor:pointer}
.scene-controls button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;flex:none}
.scene-controls button:hover,.scene-controls button:focus-visible{border-bottom-color:currentColor}
.scene-controls button:focus-visible{outline:var(--scene-focus-width) solid var(--scene-ink);outline-offset:var(--scene-control-focus-gap)}
.scene-controls button[aria-pressed=true] svg{stroke-width:2.5}
.scene-controls button:disabled{display:none}
.scene-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:var(--scene-sr-offset);overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:1000px){.service-hero-layout{grid-template-columns:minmax(0,1fr) minmax(0,.85fr);--scene-layout-gap:24px}.service-intro:has(.service-scene){--scene-heading-size:clamp(40px,5.5vw,64px)}}
@media(max-width:760px){.service-hero-layout{grid-template-columns:minmax(0,1fr);--scene-layout-gap:28px}.service-intro:has(.service-scene){--scene-heading-size:clamp(44px,8vw,62px)}.service-scene{max-width:430px}.scene-graphic{max-height:330px}.scene-title{--scene-small-size:9px;font-size:var(--scene-small-size)}.scene-hint{font-size:var(--scene-small-size)!important;max-width:30em}.scene-controls{--scene-control-gap:0 16px}.scene-controls button{font-size:var(--scene-small-size)}.service-intro:has(.service-scene){padding-bottom:var(--scene-copy-space)}}

/* Explicit touch mode gives vertical orbit without taking over page scrolling. */
.scene-controls .scene-touch{display:none}
@media(any-pointer:coarse){.scene-controls .scene-touch:not(:disabled){display:inline-flex}}
.scene-variants{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--scene-icon-gap);margin-bottom:var(--scene-stage-space)}
.scene-variants button{font:inherit;font-size:var(--scene-caption-size);min-height:44px;padding:var(--scene-control-padding);padding-inline:var(--scene-icon-gap);color:var(--scene-ink);border:var(--scene-border-width) solid var(--scene-line);background:transparent;cursor:pointer}
.scene-variants button[aria-pressed=true],.scene-variants button:hover{background:var(--scene-ink);color:var(--scene-paper)}
.scene-variants button:focus-visible{outline:var(--scene-focus-width) solid var(--scene-ink);outline-offset:var(--scene-control-focus-gap)}
.scene-variants button:disabled{display:none}

/* Orbit guides appear on deliberate interaction, as on the homepage. */
.scene-rings{opacity:0;pointer-events:none;transition:opacity .35s ease}
@media(hover:hover){.scene-stage:hover .scene-rings-back{opacity:.20}.scene-stage:hover .scene-rings-front{opacity:.42}}
.scene-stage:focus-visible .scene-rings-back,.scene-stage:active .scene-rings-back{opacity:.20}
.scene-stage:focus-visible .scene-rings-front,.scene-stage:active .scene-rings-front{opacity:.42}
@media(prefers-reduced-motion:reduce){.scene-rings{transition:none}}
