﻿.reveal{transition-delay:var(--reveal-delay,0ms)}
.medic-marquee{overflow:hidden;padding:44px 0 18px;border-block:1px solid var(--line);background:#f8fcfb;position:relative}
.marquee-track{display:flex;width:max-content;animation:medic-marquee 36s linear infinite}
.marquee-copy{display:flex;align-items:center;gap:40px;padding-right:40px;flex-shrink:0;font-size:clamp(44px,6.5vw,100px);font-weight:700;line-height:1.4;letter-spacing:-.05em;color:var(--teal)}
.marquee-star{color:#70c9c5;font-size:1.2em;animation:medic-spin 24s linear infinite}
.marquee-pause{display:block;margin:14px 24px 0 auto;border:0;border-bottom:1px solid #9bc8c4;background:none;color:var(--teal);font-size:11px;padding:6px;cursor:pointer}
.medic-marquee:hover .marquee-track,.medic-marquee:focus-within .marquee-track,.medic-marquee.is-paused .marquee-track,.medic-marquee.is-paused .marquee-star{animation-play-state:paused}
@keyframes medic-marquee{to{transform:translateX(-50%)}}
@keyframes medic-spin{to{transform:rotate(360deg)}}
.medic-carousel{min-width:0}
.medic-carousel .carousel-track{display:flex!important;gap:26px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0;padding:10px 2px 16px;margin:-10px -2px 0;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain}
.medic-carousel .carousel-track::-webkit-scrollbar{display:none;width:0;height:0}
.carousel-track>*{flex:0 0 calc((100% - 52px)/3);min-width:0;scroll-snap-align:start;scroll-snap-stop:normal}
.carousel-track>.service-card{flex-basis:calc((100% - 26px)/2.45);min-height:270px}
.carousel-track .reveal.is-pending{opacity:1;transform:none}
.carousel-controls{display:flex;align-items:center;gap:12px;margin-top:16px}.carousel-controls[hidden]{display:none}
.carousel-controls button{width:46px;height:46px;border:1px solid #bbdcd6;border-radius:50%;background:white;color:var(--teal);font-size:21px;cursor:pointer;transition:background .2s,color .2s,transform .2s}
.carousel-controls button:hover:not(:disabled){background:var(--teal);color:white;transform:translateY(-2px)}
.carousel-controls button:disabled{opacity:.35;cursor:default}.carousel-controls .carousel-pause{width:auto;border-radius:20px;padding:0 14px;font-size:11px}
.carousel-progress{height:2px;flex:1;background:#dcebe8;margin-right:22px;overflow:hidden}.carousel-progress>span{display:block;height:100%;background:var(--teal);transition:width .2s}
.carousel-count{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;margin-right:12px}
.hero-shape{animation:medic-shape 18s ease-in-out infinite alternate}
@keyframes medic-shape{from{translate:0 0}to{translate:25px -20px}}
.button span[aria-hidden],.text-link span[aria-hidden],.quick-action-arrow{transition:transform .25s}.button:hover span[aria-hidden],.text-link:hover span[aria-hidden],.quick-actions a:hover .quick-action-arrow{transform:translate(3px,-3px)}
@media(max-width:1000px){.carousel-track>*{flex-basis:calc((100% - 26px)/2)}.carousel-track>.service-card{flex-basis:60%}}
@media(max-width:700px){.medic-marquee{padding:26px 0 12px}.marquee-copy{gap:24px;padding-right:24px}.medic-carousel .carousel-track{gap:16px}.carousel-track>*,.carousel-track>.service-card{flex-basis:88%}.carousel-controls{gap:8px}.carousel-progress{margin-right:8px}.carousel-controls button{width:42px;height:42px}.carousel-count{margin-right:2px}}
.medic-motion-off *,.medic-motion-off *::before,.medic-motion-off *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.medic-motion-off .marquee-track{width:auto}.medic-motion-off .marquee-copy{font-size:clamp(24px,4vw,60px);white-space:normal}.medic-motion-off .marquee-copy:nth-child(2),.medic-motion-off .marquee-pause{display:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee-track{animation:none;width:auto}.marquee-copy{font-size:clamp(24px,4vw,60px);white-space:normal}.marquee-copy:nth-child(2),.marquee-pause{display:none}.hero-shape,.marquee-star{animation:none}.motion-ready .reveal.is-pending{opacity:1;transform:none}}
.service-card .service-photo{width:100%;aspect-ratio:1.65;margin-bottom:22px;border-radius:12px;flex-shrink:0}
.service-card:has(.service-photo){padding:18px;min-height:440px}
.service-card:has(.service-photo) .service-number{margin-bottom:14px}
.service-card:has(.service-photo) h3{font-size:22px;margin-bottom:24px}
.service-card:has(.service-photo) .text-link{padding-bottom:10px}
/* One-time viewport reveals for the hero artwork and page sections. */
.hero-building {
  animation: medic-hero-fade-down .95s cubic-bezier(.22,.75,.28,1) .12s both;
  transform-origin: 50% 35%;
}
@keyframes medic-hero-fade-down {
  from { opacity: 0; transform: translate3d(0,-34px,0) scale(.985); }
  to { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}
.section-reveal {
  transition:
    opacity .72s cubic-bezier(.22,.75,.28,1),
    transform .72s cubic-bezier(.22,.75,.28,1);
}
.motion-ready .section-reveal.is-pending {
  opacity: 0;
  will-change: opacity, transform;
}
.motion-ready .section-reveal.reveal-up.is-pending { transform: translate3d(0,32px,0); }
.motion-ready .section-reveal.reveal-down.is-pending { transform: translate3d(0,-28px,0); }
.motion-ready .section-reveal:not(.is-pending) { will-change: auto; }
@media (max-width:700px) {
  .motion-ready .section-reveal.reveal-up.is-pending { transform: translate3d(0,22px,0); }
  .motion-ready .section-reveal.reveal-down.is-pending { transform: translate3d(0,-18px,0); }
}
@media (prefers-reduced-motion:reduce) {
  .hero-building { animation: none; }
  .section-reveal { opacity: 1; transform: none; transition: none; }
}
