:root{--reveal-opacity-in:1s;--reveal-move-in:1.55s;--reveal-ease-in:cubic-bezier(.16,.65,.22,1);--reveal-opacity-out:.45s;--reveal-move-out:1.35s;--reveal-ease-out:cubic-bezier(.18,.7,.2,1)}
.services-intro{display:grid;grid-template-columns:1.5fr 1fr;column-gap:9%;padding:72px 0 54px;align-items:end}
.services-intro .eyebrow{grid-column:1/-1;margin:0 0 24px}
.services-intro h1{font-size:clamp(58px,6.7vw,96px);font-weight:400;letter-spacing:-3.5px;line-height:1.02;margin:0}
.services-intro h1 em{font-weight:400;letter-spacing:0;margin-inline-start:.06em}
.services-intro>p:last-child{max-width:360px;font-size:18px;line-height:1.65;margin:0 0 4px;color:var(--muted)}
.services-gallery{display:grid;grid-template-columns:1.25fr 1fr;gap:8%;align-items:center;padding:10px 0 80px;position:relative;overflow:clip}
.service-intros{position:relative;z-index:2;padding:20px 0}
.reveal-help{font-size:12px;letter-spacing:.25px;color:var(--muted);margin:0 0 20px}.touch-help{display:none}
.service-intros h2{margin:0}.service-intros h2:last-child .service-intro-button{border-bottom:1px solid var(--line)}
.service-intro-button{position:relative;display:flex;align-items:baseline;gap:20px;width:100%;padding:24px 0;border:0;background:transparent;color:var(--ink);text-align:left;font:400 clamp(34px,4.5vw,65px)/1.15 var(--display);letter-spacing:-1.8px;cursor:pointer;transition:color .25s}
.intro-number{font:400 12px/1.4 var(--font);letter-spacing:1px;white-space:nowrap}
.service-intro-button{border-top:1px solid var(--line)}
.services-page{overflow-anchor:none}
.service-intro-button>span:nth-child(2){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:9px;text-decoration-color:transparent;transition:text-decoration-color .3s}
.service-intro-button.is-previewed>span:nth-child(2){text-decoration-color:#7d7f5c}
.service-intro-button:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}
.held-label{font:400 10px/1.4 var(--font);letter-spacing:.5px;position:absolute;right:0;bottom:5px;opacity:0;transition:opacity .2s}
.service-intro-button[aria-pressed=true] .held-label{opacity:1}
.service-image-stage{position:relative;height:470px;pointer-events:none;isolation:isolate}
.service-image{position:absolute;inset:20px 0;max-width:390px;margin:0 auto;opacity:0;visibility:hidden;transform:translate3d(var(--enter-x),var(--enter-y),0) rotate(var(--enter-angle)) scale(.91);transform-origin:center;transition:opacity .45s ease,transform 1.35s cubic-bezier(.18,.7,.2,1),visibility 0s linear 1.35s;will-change:transform,opacity}
.service-image.from-left{--enter-x:-70px;--enter-y:40px;--enter-angle:-13deg}
.service-image.from-right{--enter-x:80px;--enter-y:55px;--enter-angle:12deg}
.service-image.from-above{--enter-x:35px;--enter-y:-75px;--enter-angle:-8deg}
.service-image.is-visible{opacity:1;visibility:visible;transform:translate3d(0,0,0) rotate(0) scale(1);z-index:1;transition:opacity 1s ease,transform 1.55s cubic-bezier(.16,.65,.22,1),visibility 0s}
.service-image img{width:100%;height:100%;display:block;object-fit:cover;border-radius:3px}
.reveal-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.service-detail{display:grid;grid-template-columns:1fr 1.35fr;gap:10%;padding:58px 0;border-top:1px solid var(--line);scroll-margin-top:30px}
.service-detail .eyebrow{margin:0 0 19px}.service-detail h2{font-size:43px;line-height:1.15;margin:0;max-width:360px}
.service-detail .detail-description{font-size:19px;line-height:1.65;color:var(--muted);margin:0 0 26px;max-width:590px}
.offerings{list-style:none;padding:0;margin:0 0 30px;display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;font-size:15px}
.offerings li{border-top:1px solid var(--line);padding-top:12px}
.service-detail .text-link{display:inline-block}.services-contact{margin-top:25px}
.service-details-stage{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--reveal-move-out) var(--reveal-ease-out)}
.service-details-stage.has-details{grid-template-rows:1fr;transition-duration:var(--reveal-move-in);transition-timing-function:var(--reveal-ease-in)}
.service-details-inner{min-height:0;overflow:hidden;display:grid}
.service-detail{grid-area:1/1;min-width:0;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(40px)}
.service-image,.service-detail{transition:opacity var(--reveal-opacity-out) ease,transform var(--reveal-move-out) var(--reveal-ease-out),visibility 0s linear var(--reveal-move-out)}
.service-image.is-visible,.service-detail.is-visible{opacity:1;visibility:visible;transition:opacity var(--reveal-opacity-in) ease,transform var(--reveal-move-in) var(--reveal-ease-in),visibility 0s}
.service-detail.is-visible{transform:translateY(0);pointer-events:auto;z-index:1}
.site-header nav a[aria-current=page]{text-decoration:underline;text-underline-offset:6px}
@media(hover:none){.pointer-help{display:none}.touch-help{display:inline}}
@media(max-width:1000px){.services-intro{column-gap:6%}.services-gallery{gap:5%}.service-image-stage{height:400px}.service-intro-button{gap:12px;font-size:42px}.service-detail{gap:7%}.service-detail h2{font-size:36px}}
@media(max-width:760px){.services-intro{display:block;padding:42px 0 26px}.services-intro .eyebrow{font-size:10px;letter-spacing:1.4px}.services-intro h1{font-size:clamp(53px,11.7vw,80px);letter-spacing:-2.5px}.services-intro>p:last-child{font-size:17px;margin:24px 0 0;max-width:450px}.services-gallery{grid-template-columns:1fr;gap:0;padding:0 0 40px}.service-intros{padding:16px 0}.service-intro-button{font-size:clamp(30px,8vw,46px);letter-spacing:-1px;padding:22px 0;gap:16px}.intro-number{font-size:11px}.service-image-stage{height:0;transition:height .7s cubic-bezier(.2,.7,.2,1)}.services-gallery.has-image .service-image-stage{height:min(85vw,360px)}.service-image{inset:12px 0 0;max-width:none}.service-detail{grid-template-columns:1fr;gap:24px;padding:36px 0}.service-detail h2{font-size:35px}.service-detail .eyebrow{font-size:10px;margin-bottom:14px}.service-detail .detail-description{font-size:17px;margin-bottom:22px}.offerings{font-size:14px}.services-contact{margin-top:12px}}
@media(prefers-reduced-motion:reduce){.service-image,.service-image.is-visible,.service-detail,.service-detail.is-visible{transform:none;transition:none}.service-image-stage,.service-details-stage{transition:none}}
