/* Living Workshop — authored motion layer. Base layout, images and palette retained. */
:root{--shop-ease:cubic-bezier(.16,1,.3,1);--tool-cursor:url("assets/cursor-spanner.svg") 6 5,auto;--tool-point:url("assets/cursor-spanner-active.svg") 6 5,pointer}
.bay-atmosphere,.bay-portals{position:absolute;inset:0;pointer-events:none}
.bay-atmosphere{z-index:1;overflow:hidden;isolation:isolate}
.bay-room,.bay-portal{position:absolute;overflow:hidden}
.bay-room[data-room="pickup"],.bay-portal[data-vehicle-select="pickup"]{left:8.9%;width:23.8%;top:42%;height:41.1%}
.bay-room[data-room="medium"],.bay-portal[data-vehicle-select="medium"]{left:36.5%;width:24.7%;top:38%;height:45.4%}
.bay-room[data-room="heavy"],.bay-portal[data-vehicle-select="heavy"]{left:65.4%;width:29.9%;top:31.8%;height:51.8%}
/* The photograph supplies the light. Selection is a painted mark, not a beam. */
.room-light,.threshold-light,.wall-lamp,.inspection-light{display:none}
.room-shutter{display:none}
.motion-enhanced .room-shutter{display:block;position:absolute;inset:-1% 0 0;background:repeating-linear-gradient(180deg,#263f50 0 11px,#1a3040 12px 14px,#4c5c61 15px 16px);border-bottom:6px solid #adb3a0;box-shadow:inset 0 0 70px #06192880,0 9px 24px #07151f80;transform:translateY(-104%)}
.shop-opening .room-shutter{animation:shop-door-rise 1.35s var(--shop-ease) both}
.shop-opening [data-room="medium"] .room-shutter{animation-delay:.16s}
.shop-opening [data-room="heavy"] .room-shutter{animation-delay:.32s}
.floor-routes{position:absolute;inset:0;width:100%;height:100%;stroke:none;overflow:visible}
.route-wash{fill:#d7b75f;opacity:0;transition:opacity .7s}
.route-line{stroke:#f4d27c;stroke-width:2.7;fill:none;stroke-dasharray:1;stroke-dashoffset:1;opacity:.8;transition:stroke-dashoffset .95s .12s var(--shop-ease)}
.route-stop{stroke:#e7c168;stroke-width:5;fill:none;opacity:0;transition:opacity .4s .25s}
.hero-scene[data-lit="pickup"] [data-route="pickup"] .route-line,.hero-scene[data-lit="medium"] [data-route="medium"] .route-line,.hero-scene[data-lit="heavy"] [data-route="heavy"] .route-line{stroke-dashoffset:0}
.hero-scene[data-lit="pickup"] [data-route="pickup"] .route-wash,.hero-scene[data-lit="medium"] [data-route="medium"] .route-wash,.hero-scene[data-lit="heavy"] [data-route="heavy"] .route-wash{opacity:.055}
.hero-scene[data-lit="pickup"] [data-route="pickup"] .route-stop,.hero-scene[data-lit="medium"] [data-route="medium"] .route-stop,.hero-scene[data-lit="heavy"] [data-route="heavy"] .route-stop{opacity:.55}
.bay-portals{z-index:2}
.bay-portal{background:transparent;padding:0;pointer-events:auto;border:0}
.portal-corner{position:absolute;bottom:16px;right:16px;width:24px;height:24px;border-right:1px solid var(--coral);border-bottom:1px solid var(--coral);opacity:0;transform:translate(-4px,-4px);transition:opacity .25s,transform .45s var(--shop-ease)}
.bay-portal:hover .portal-corner,.bay-portal:focus-visible .portal-corner{opacity:.7;transform:translate(0)}
.bay-portal:focus-visible{outline-offset:-7px;outline-width:2px}
.bay-sign{transition:background .4s,box-shadow .45s,transform .6s var(--shop-ease),border-color .4s;transform-origin:center top}
.bay-sign:hover{transform:perspective(600px) rotateX(-3deg);box-shadow:0 3px 0 var(--active),0 5px 16px #08172270;border-color:#eadbbd66}
.bay-sign .bay-light,.bay-sign:hover .bay-light,.bay-sign.is-selected .bay-light{box-shadow:none}
.hero-scene[data-lit="pickup"] .bay-sign[data-vehicle-select="pickup"],.hero-scene[data-lit="medium"] .bay-sign[data-vehicle-select="medium"],.hero-scene[data-lit="heavy"] .bay-sign[data-vehicle-select="heavy"]{background:#162e40c4;border-bottom-color:#e2c17a}
.hero-scene[data-lit="pickup"] .bay-sign[data-vehicle-select="pickup"] .bay-light,.hero-scene[data-lit="medium"] .bay-sign[data-vehicle-select="medium"] .bay-light,.hero-scene[data-lit="heavy"] .bay-sign[data-vehicle-select="heavy"] .bay-light{background:#d7b75f;box-shadow:none}
@media(hover:hover) and (pointer:fine){.motion-enhanced body{cursor:var(--tool-cursor)}.motion-enhanced :is(a,button,summary,select){cursor:var(--tool-point)}.motion-enhanced :is(input,textarea,[contenteditable="true"]){cursor:text}}
@keyframes shop-door-rise{0%{transform:translateY(0)}9%{transform:translateY(1.2%)}72%{transform:translateY(-100%)}86%{transform:translateY(-98.4%)}100%{transform:translateY(-104%)}}
@media(max-width:600px){.bay-atmosphere,.bay-portals{display:none}.bay-sign.is-selected:after{display:block;content:'';position:absolute;bottom:0;left:0;top:auto;width:100%;height:3px;border-radius:0;background:var(--active);animation:mobile-bay-line .75s var(--shop-ease)}.bay-sign:hover{transform:none}.bay-signs{isolation:isolate}}
@keyframes mobile-bay-line{from{transform:scaleX(.05);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}

/* A small engraved gauge stays on the object's edge; its jaw travels only 24 px. */
[data-workshop-surface],.fleet-planner{isolation:isolate}
.material-register{display:none;position:absolute;top:17px;right:17px;width:56px;height:12px;z-index:2;pointer-events:none;color:var(--cream);opacity:0;transform:translateY(-3px);transition:opacity .22s,transform .36s var(--shop-ease)}
.material-register:before{content:'';position:absolute;left:0;right:0;top:4px;height:5px;border-top:1px solid currentColor;background:repeating-linear-gradient(90deg,currentColor 0 1px,transparent 1px 7px);opacity:.6}
.material-register:after{content:'';position:absolute;left:0;right:0;top:2px;height:9px;border-inline:1px solid currentColor;opacity:.65}
.register-jaw{position:absolute;left:25px;top:0;width:5px;height:12px;border:1px solid var(--coral);border-bottom-width:3px;background:var(--navy);transform:translateX(var(--register-shift,0px));transition:transform .24s cubic-bezier(.2,.7,.3,1),height .12s}
.is-under-tool>.material-register,.bay-portal:focus-visible>.material-register{opacity:1;transform:translateY(0)}
.is-tool-pressed>.material-register .register-jaw{height:10px}
.bay-portal>.material-register{top:auto;bottom:18px;right:53px}
@media(hover:hover) and (pointer:fine){.material-register{display:block}}
.vehicle-panel{--panel-line:0;transition:box-shadow .6s}
.vehicle-panel:before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--navy);opacity:.45;transform:scaleX(var(--panel-line));transform-origin:left;transition:transform .9s var(--shop-ease)}
.vehicle-panel.is-in-view{--panel-line:1}
.vehicle-panel:nth-child(2):before{transition-delay:.13s}.vehicle-panel:nth-child(3):before{transition-delay:.26s}
.vehicle-panel.is-selected .panel-selected{animation:work-stamp .4s var(--shop-ease)}
.vehicle-services button>svg:first-child{transition:transform .4s var(--shop-ease)}
.vehicle-services button:hover>svg:first-child{transform:rotate(-12deg) scale(1.08)}
.vehicle-services button{transition:padding .35s var(--shop-ease),background .3s}
.vehicle-services button:hover{padding-left:7px;background:#f1eddf0c}
.service-photo{clip-path:inset(0);transition:clip-path .75s var(--shop-ease)}
.service-photo:before{content:'';position:absolute;inset:10px;border:1px solid #f1eddf44;z-index:2;pointer-events:none;clip-path:polygon(0 0,22px 0,22px 1px,1px 1px,1px 22px,0 22px,0 0,100% 100%,calc(100% - 22px) 100%,calc(100% - 22px) calc(100% - 1px),calc(100% - 1px) calc(100% - 1px),calc(100% - 1px) calc(100% - 22px),100% calc(100% - 22px));opacity:0;transition:opacity .4s}
.vehicle-panel:hover .service-photo:before{opacity:1}
.service-photo figcaption{transition:transform .5s var(--shop-ease)}
.vehicle-panel:hover .service-photo figcaption{transform:translateY(-3px)}
.vehicle-heading .vehicle-icon{transition:transform .6s var(--shop-ease)}
.vehicle-panel.is-selected .vehicle-icon{transform:translateX(4px)}

/* Six separate workshop plates take the place of the empty icon field. */
.detail-heading{height:43px;margin:12px 0 0;position:relative}
.detail-heading>svg{width:27px;height:27px}
.service-watermark{font-size:46px;line-height:1;color:#172e4025;letter-spacing:-.05em}
.mechanical-plate{width:100%;aspect-ratio:600/230;max-height:210px;margin:3px 0 20px;position:relative;overflow:hidden;background-color:#edeadf;background-image:linear-gradient(#172e4009 1px,transparent 1px),linear-gradient(90deg,#172e4009 1px,transparent 1px);background-size:19px 19px;border-block:1px solid #172e4024}
.mechanical-plate>svg{width:100%;height:100%;display:block;stroke:var(--navy);fill:none}
.mechanical-plate:after{content:'';position:absolute;left:12px;bottom:10px;width:45px;height:5px;border-bottom:1px solid #172e4059;background:repeating-linear-gradient(90deg,#172e4059 0 1px,transparent 1px 6px);pointer-events:none;opacity:0;transform:scaleX(.72);transform-origin:left;transition:transform .38s var(--shop-ease),opacity .25s}
.mechanical-plate.is-under-tool:after{opacity:1;transform:scaleX(1)}
.mechanical-plate.is-drawing .plate-draw{stroke-dasharray:1;stroke-dashoffset:1;animation:plate-trace .8s .05s var(--shop-ease) forwards}
.mechanical-plate.is-drawing .plate-moving{transform-box:fill-box;transform-origin:center;animation:plate-seat .85s var(--shop-ease) both}
.mechanical-plate.is-drawing .mechanical-plate--brakes .plate-moving{animation:rotor-seat .95s var(--shop-ease) both}
.mechanical-plate.is-drawing .mechanical-plate--fleet .plate-moving{animation:record-seat .8s var(--shop-ease) both}
.mechanical-plate .plate-accent{transition:opacity .4s}
.service-detail.is-under-tool .plate-accent{opacity:.85}
.service-detail{min-height:650px;overflow:clip}
.service-detail.is-switching{animation:none}
.service-detail.is-switching>h3{animation:sheet-type .42s var(--shop-ease)}
.service-detail.is-switching>.scope-list li{animation:sheet-type .48s var(--shop-ease) both}
.service-detail.is-switching>.scope-list li:nth-child(2){animation-delay:.045s}.service-detail.is-switching>.scope-list li:nth-child(3){animation-delay:.09s}
.ledger-index{position:relative}
.ledger-tab:after{content:'';position:absolute;left:-1px;top:0;bottom:0;width:4px;background:var(--coral);transform:scaleY(0);transform-origin:top;transition:transform .5s var(--shop-ease)}
.ledger-tab.is-active:after{transform:scaleY(1)}
.ledger-tab.is-active>span{opacity:1;color:var(--yellow)}
.ledger-tab>strong{transition:transform .4s var(--shop-ease)}
.ledger-tab:hover>strong{transform:translateX(3px)}
.detail-utility{position:relative}
.detail-utility:after{content:'';position:absolute;bottom:-1px;left:0;height:1px;width:100%;background:var(--coral);transform:scaleX(0);transform-origin:left}
.service-detail.is-switching .detail-utility:after{animation:detail-rule .7s var(--shop-ease)}

/* A work order is handed from station to station; it never implies a real repair. */
.work-process{isolation:isolate}
.process-step{transition:background .6s}
.process-step.is-current{background:#e2bc6a0d}
.process-step:after{content:'';height:3px;position:absolute;inset:0 0 auto;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--shop-ease)}
.process-step.is-current:after{transform:scaleX(1)}
.process-step.is-current>svg{color:var(--yellow);opacity:1;transform:rotate(-7deg)}
.process-step>svg{transition:color .4s,opacity .4s,transform .6s var(--shop-ease)}
.process-number{transition:color .4s}
.process-step.is-current .process-number{color:var(--yellow)}
.process-carriage{position:absolute;top:-11px;left:0;z-index:4;background:var(--navy);border:1px solid var(--coral);padding:4px 7px;color:var(--cream);pointer-events:none;opacity:0;transition:transform .85s var(--shop-ease),opacity .4s}
.process-carriage svg{width:24px;height:17px;stroke-width:1.5}
.work-process.is-in-view .process-carriage{opacity:1}
.workshop-title{pointer-events:none}

/* The fleet clipboard has paper depth, a metal clip and magnet-like moving tickets. */
.clipboard-clip{background:linear-gradient(100deg,#526164 0%,#a5aca0 45%,#677778 74%,#46595c);transition:transform .38s var(--shop-ease),box-shadow .38s;z-index:3}
.fleet-planner.is-under-tool .clipboard-clip{transform:translateY(1px);box-shadow:0 2px 2px #172e4033}
.fleet-planner:before{content:'';position:absolute;inset:9px -6px -7px 6px;border:1px solid #172e4028;background:#d7d3c7;transform:rotate(-.8deg);transform-origin:top center;transition:transform .5s var(--shop-ease);z-index:-1}
.fleet-planner.is-under-tool:before{transform:translate(var(--paper-shift,0px),-2px) rotate(-.45deg)}
.schedule-board{position:relative}
.schedule-slot{border:1px solid #172e4022;box-shadow:2px 3px 0 #172e401a;transition:transform .9s var(--shop-ease),background .4s,box-shadow .4s}
.schedule-slot:before{content:'';width:4px;height:4px;position:absolute;top:3px;right:4px;background:#e9d5a0;border:1px solid #172e4044;border-radius:50%;box-shadow:0 1px 1px #0003}
.fleet-planner[data-priority="coordinate"] .slot-one{transform:translateX(40%) rotate(-2deg);transition-delay:.04s}
.fleet-planner[data-priority="coordinate"] .slot-two{transform:translateX(-45%) rotate(1.7deg);transition-delay:.13s}
.fleet-planner[data-priority="coordinate"] .slot-three{transform:translateX(13%) rotate(-.7deg);transition-delay:.2s}
.fleet-planner[data-priority="records"] .slot-one{transform:translateX(2%) rotate(0)}
.fleet-planner[data-priority="records"] .slot-two{transform:translateX(-16%) rotate(0)}
.fleet-planner[data-priority="records"] .slot-three{transform:translateX(23%) rotate(0)}
.schedule-board.is-settling .schedule-slot{box-shadow:3px 5px 0 #172e4025}
.schedule-board.is-settling .schedule-days{animation:sheet-type .5s var(--shop-ease)}
.fleet-size{position:relative}
.fleet-size button{transition:background .3s,color .3s,box-shadow .3s}
.fleet-size button.is-active{box-shadow:inset 0 -3px 0 var(--yellow)}
.fleet-size button:active{box-shadow:inset 0 2px 4px #172e4070}
.fleet-photo{transition:aspect-ratio .45s var(--shop-ease)}
.fleet-photo img{transition:transform .9s var(--shop-ease),filter .6s}
.fleet-photo img[data-scene-state="ready"]{animation:photo-develop .6s var(--shop-ease)}
.photo-note{transform-origin:top center;transition:transform .7s var(--shop-ease)}
.fleet-photo:hover .photo-note{transform:rotate(1deg)}

/* Paperwork, controls and the closing sign share the same physical vocabulary. */
.button{border-bottom:3px solid #10243333}
.button:active{transform:translateY(1px);box-shadow:inset 0 2px 5px #10243330}
.button:focus-visible{outline-color:var(--yellow)}
.button:after{content:'';position:absolute;inset:0 auto 0 0;width:5px;background:repeating-linear-gradient(135deg,transparent 0 3px,#f1eddf88 3px 5px);transform:translateX(-6px);transition:transform .35s}
.button:hover:after,.button:focus-visible:after{transform:translateX(0)}
.brand img{transition:transform .6s var(--shop-ease)}.brand:hover img{transform:translateY(-2px)}
.request-stamp{transition:transform .48s var(--shop-ease),box-shadow .35s;transform:rotate(var(--stamp-angle,-17deg))}
.request-heading.is-under-tool .request-stamp{box-shadow:3px 3px 0 #172e4015}
#request-form label{position:relative;transition:color .3s}
#request-form label:focus-within{color:var(--navy)}
#request-form label:before{content:'';position:absolute;left:-7px;top:28px;bottom:0;width:2px;background:var(--navy);transform:scaleY(0);transform-origin:top;transition:transform .35s var(--shop-ease)}
#request-form label:focus-within:before{transform:scaleY(1)}
.mini-work-order{position:relative;overflow:hidden;border-style:solid;border-top:4px double #f1eddf66;border-bottom:4px double #f1eddf66}
.mini-work-order.is-updated strong{animation:sheet-type .38s var(--shop-ease)}
.mini-work-order:after{content:'';position:absolute;inset:0 auto 0 0;width:6px;background:repeating-linear-gradient(180deg,transparent 0 8px,#f1eddf4d 8px 10px,transparent 10px 18px)}
.request-dialog[open]{animation:desk-sheet .5s var(--shop-ease)}
.request-dialog.is-saved .dialog-brand{border-color:var(--sage);animation:work-stamp .45s var(--shop-ease)}
.faq-list details{position:relative;transition:background .35s}
.faq-list details[open]{background:#e1dbc733}
.faq-list summary>span{transition:background .3s,transform .5s var(--shop-ease)}
.faq-list summary:hover>span{transform:rotate(7deg)}
.faq-list details[open] summary>span{transform:rotate(-3deg)}
.faq-list details p{overflow-wrap:anywhere}
.visit-sign{transform:rotate(-2deg);transition:transform .8s var(--shop-ease),box-shadow .8s;transform-origin:50% 8%}
.visit-sign.is-under-tool{transform:rotate(1deg);box-shadow:11px 11px 0 #172e4030}
.visit-sign:before{content:'';position:absolute;top:8px;left:12px;right:12px;height:3px;background:radial-gradient(circle at left,#172e4060 0 2px,transparent 2px),radial-gradient(circle at right,#172e4060 0 2px,transparent 2px)}
.footer-wordmark{position:relative}
.footer-upper>a svg{transition:transform .5s var(--shop-ease)}.footer-upper>a:hover svg{transform:translate(4px,-5px)}
.mobile-nav:not([hidden]){animation:menu-unfold .35s var(--shop-ease)}

@keyframes plate-trace{to{stroke-dashoffset:0}}
@keyframes plate-seat{from{opacity:.15;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes rotor-seat{from{opacity:.2;transform:rotate(-14deg) scale(.96)}to{opacity:1;transform:rotate(0) scale(1)}}
@keyframes record-seat{from{opacity:.2;transform:translateX(12px) rotate(2deg)}to{opacity:1;transform:translateX(0) rotate(0)}}
@keyframes work-stamp{0%{transform:scale(1.12) rotate(-3deg);opacity:.2}68%{transform:scale(.98) rotate(1deg)}100%{transform:scale(1) rotate(0);opacity:1}}
@keyframes sheet-type{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes detail-rule{0%{transform:scaleX(0)}80%,100%{transform:scaleX(1)}}
@keyframes photo-develop{from{filter:brightness(.8);transform:scale(1.022)}to{filter:brightness(1);transform:scale(1)}}
@keyframes desk-sheet{from{opacity:0;transform:translateY(18px) rotate(-1.2deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes menu-unfold{from{opacity:0;clip-path:inset(0 0 85% 0)}to{opacity:1;clip-path:inset(0)}}
@media(max-width:800px){.mechanical-plate{margin-bottom:17px}.service-detail{min-height:650px}.process-carriage{transition-duration:.65s}}
@media(max-width:600px){
  .masthead{gap:6px}.brand strong{font-size:18px}
  .header-cta{min-height:44px}
  .menu-toggle{width:44px;min-width:44px;height:44px;padding:10px}
  .fleet-tabs button,.fleet-size button{min-height:44px}
  .motion-toggle{width:44px}
  .dialog-close{min-width:44px;min-height:44px}
  .footer-bottom nav a{display:inline-flex;align-items:center;min-height:44px}
  .service-ledger{display:grid;grid-template-columns:1fr;overflow:clip}
  .ledger-index{display:contents}
  .ledger-tab{order:var(--tab-position);min-height:68px;flex-direction:row;align-items:center;gap:15px;padding:19px 17px;border:0!important;border-bottom:1px solid #172e4030!important}
  .ledger-tab strong{font:18px/1.2 var(--display);max-width:none;padding-right:16px}
  .ledger-tab>span{font-size:10px}
  .ledger-tab>svg{position:static;margin-left:auto;width:18px;height:18px}
  .service-detail{order:var(--detail-position,1);min-height:0;padding:22px;border-bottom:1px solid #172e404a}
  .service-detail h3{font-size:31px}
  .detail-heading{height:36px;margin-top:8px}
  .service-watermark{font-size:36px}
  .mechanical-plate{aspect-ratio:600/270;max-height:none;margin:8px 0 22px}
  .mechanical-plate>svg{height:100%;min-height:135px}
  .request-stamp{--stamp-angle:17deg}
  .material-register{display:none}
  .process-carriage{padding:3px 5px;top:-10px}.process-carriage svg{width:18px;height:13px}
  .vehicle-panel.is-in-view .service-photo:before{opacity:.5}
  .button:active{margin-bottom:0;border-bottom-width:3px}
}
@media(max-width:360px){.brand strong{font-size:17px}}
.motion-still .room-shutter,.motion-still .material-register{display:none}
.motion-still .reveal{opacity:1!important;transform:none!important}.motion-still .mechanical-plate .plate-draw{stroke-dashoffset:0!important}.motion-still .process-carriage{display:none}
.motion-still *,.motion-still *:before,.motion-still *:after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){.room-shutter,.material-register{display:none!important}}
