/* Contextual photography: one scene supports one message; no photo-only galleries. */
@keyframes contextArrival{from{opacity:.2;translate:var(--reveal-x,0px) var(--reveal-y,24px)}to{opacity:1;translate:0 0}}
.contextReveal{animation:contextArrival .75s cubic-bezier(.2,.7,.2,1) both}
.medicalDemo .medicalContextVisual{position:relative;width:100%;height:min(66vw,650px);min-height:480px;isolation:isolate;overflow:hidden;border-radius:12px}
.medicalContextVisual>.medicalPhoto,.contextStandalone{position:absolute!important;inset:0!important;width:100%;height:100%;object-fit:cover;border-radius:12px!important;transform:none!important}
.medicalContextVisual>aside{position:absolute;bottom:24px;left:24px;right:24px;padding:22px;background:rgba(15,30,26,.91);color:#fff7eb;border:1px solid #ffffff30;border-radius:8px}
.medicalContextVisual aside :is(span,b,small){display:block;line-height:1.4}
.medicalContextVisual aside span{font-size:14px;margin-bottom:9px}.medicalContextVisual aside b{font-size:clamp(21px,2vw,30px);font-weight:500}.medicalContextVisual aside small{font-size:14px;margin-top:10px;color:#dddace}
.medicalContextBackdrop{position:relative;isolation:isolate;overflow:hidden;color:#fff7eb!important;background:#14241e!important}
.medicalContextBackdrop>.contextBackdrop{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center 38%}
.medicalContextBackdrop:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,21,17,.93),rgba(8,21,17,.45))}
.medicalContextBackdrop .dentalQuoteCard{background:rgba(18,37,31,.87);border:1px solid #ffffff40;color:inherit}
.medicalDemo .dentalRoomsStage .dentalRoomWide{inset:0;width:100%;height:100%;min-height:0;transform:none}
.medicalDemo .dentalRoomsStage{height:min(65vw,660px)}
.medicalDemo-veterinary .vetHeroBlob,.medicalDemo-veterinary .vetHeroBlob .medicalPhoto{border-radius:12px;transform:none}
.medicalDemo-veterinary .vetSpaceVisual>.medicalPhoto{border-radius:12px!important;transform:none;inset:0 0 7%}
.medicalDemo .medicalGallery{display:none}
@media(max-width:700px){.medicalDemo .medicalContextVisual{height:110vw;min-height:390px;max-height:590px}.medicalContextVisual>aside{left:16px;right:16px;bottom:16px;padding:18px}.medicalDemo .dentalRoomsStage{height:110vw;min-height:390px}.medicalContextBackdrop:after{background:rgba(8,21,17,.73)}.medicalContextBackdrop .remoteOfferSurface{margin-top:25px}}
@media(prefers-reduced-motion:reduce){.contextReveal{animation:none!important;transition:none!important;translate:none!important;opacity:1!important}}
/* These short narrative pages must stay paintable during fast scroll and reveal. */
.medicalDemo>section{content-visibility:visible;contain-intrinsic-size:none}

@media(min-width:900px){.medicalDemo.medicalDemo>section{min-height:calc(100svh - 80px);padding-top:clamp(48px,5vw,76px);padding-bottom:clamp(48px,5vw,76px)}}

/* Padding belongs inside the scene height, including the medical sections. */
.medicalDemo>section{box-sizing:border-box}
/* JS drives a small reversible photo movement, without hiding content. */
.landingScrub{translate:0 var(--landing-scrub-y,0px)}
.landingScrub,.landingScrub>img{animation:none!important}
@media(prefers-reduced-motion:reduce),(max-width:900px){.landingScrub{translate:none}}

/* Shared rhythm; short decisions/FAQ/closing sections never reserve a blank screen. */
:is(.constructionDemo,.legalDemo,.medicalDemo,.contextLanding,.storyLanding){--scene-space:clamp(48px,5vw,76px)}
.constructionDemo :is(.buildFinish,.buildFaq,.buildChoice),.legalDemo :is(.legalFinish,.legalFaq,.legalChoice),.medicalDemo.medicalDemo :is(.dentalFaq,.clinicFaq,.vetFaq,.vetFinal,.remoteFaq,.remoteFinal,.remoteSelect,.remoteLimits),.contextLanding :is(.contextFaq,.contextStudio){min-height:0!important;padding-block:var(--scene-space)!important}
@media(max-width:900px){.contextReveal{--reveal-x:0px!important;--reveal-y:16px!important}}

/* Second remote-care photo scene, using its existing atlas crop. */
.medicalDemo .remoteConversation{position:relative;isolation:isolate;overflow:hidden;display:flex;justify-content:flex-end;min-height:clamp(580px,82svh,960px);background:#142c30;color:#fffaf0}
.medicalDemo .remoteConversationVisual{position:absolute;inset:0;z-index:-2;width:100%;height:100%;min-height:0;border-radius:0;transform:none!important;translate:none!important}
.remoteConversationVisual>.medicalPhoto{inset:0!important;width:100%;height:100%;border-radius:0!important}
.remoteConversation:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#112d3033,#112d30ce 48%,#112d30ed)}
.remoteConversationTag{display:none}
.remoteConversationCopy{position:relative;max-width:650px}
.remoteConversationCopy :is(h2,p,.remoteLabel){color:#fffaf0}
.remoteConversationCopy .remoteDialog{background:#142c30cc;border-color:#ffffff35}
@media(max-width:760px){.medicalDemo .remoteConversation{min-height:680px}.remoteConversation:after{background:#10292dc9}}
