[hidden]{display:none !important}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#f5f8fb;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:#1f2430}
img{max-width:100%}
a{color:#0b5e6b}a:hover{color:#08434d}
@media (max-width:640px){.logo-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
@keyframes logo-slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.logo-track{animation:logo-slide 32s linear infinite}
.logo-marquee:hover .logo-track{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.logo-track{animation:none}}
.showreel-frame iframe,#showreel-player{width:100%;height:100%;display:block;border:0}
#showreel-sound:focus-visible{outline:2px solid #ffffff;outline-offset:3px}
/* Motion films row under the showreel */
.mf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px}
.mf-item{margin:0;display:flex;flex-direction:column;gap:12px}
.mf-frame{aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#000000}
.mf-frame iframe{width:100%;height:100%;display:block;border:0}
.mf-play{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:#000000;cursor:pointer}
.mf-play img{width:100%;height:100%;object-fit:cover;display:block;opacity:.85;transition:opacity .25s,transform .4s}
.mf-play:hover img{opacity:1;transform:scale(1.03)}
.mf-icon{position:absolute;left:50%;top:50%;width:60px;height:60px;margin:-30px 0 0 -30px;border-radius:50%;background:#D2D914;display:flex;align-items:center;justify-content:center;transition:transform .2s}
.mf-icon::after{content:"";margin-left:4px;border-left:17px solid #0D0D0D;border-top:10px solid transparent;border-bottom:10px solid transparent}
.mf-play:hover .mf-icon{transform:scale(1.08)}
.mf-play:focus-visible{outline:2px solid #D2D914;outline-offset:3px}
.mf-item figcaption{display:flex;flex-direction:column;gap:2px;font-size:15px}
.mf-item figcaption span{font-size:13px;color:rgba(255,255,255,0.75)}
@media (prefers-reduced-motion:reduce){.mf-play img,.mf-icon{transition:none}}
/* Testimonials carousel: slides share one grid cell so the card keeps the tallest slide's height */
.tm{background:#ffffff;border:1px solid #dfe5ec;border-radius:40px;padding:56px 48px 40px;display:flex;flex-direction:column;gap:36px}
.tm-track{display:grid}
.tm-slide{grid-area:1/1;margin:0;display:grid;grid-template-columns:184px minmax(0,1fr);gap:40px;align-items:center;max-width:880px;width:100%;justify-self:center;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s}
.tm-slide.is-active{opacity:1;visibility:visible}
.tm-photo{width:184px;height:184px;border-radius:50%;object-fit:cover;background:#e9eef3}
.tm-body{display:flex;flex-direction:column;gap:18px;min-width:0}
.tm-body figcaption{display:flex;flex-direction:column;gap:6px}
.tm-name{font-size:20px;font-weight:600;color:#1f2430}
.tm-role{font-size:13px;line-height:1.5;color:#4a5361}
.tm-quote{margin:0;display:flex;flex-direction:column;gap:14px;font-size:16px;line-height:1.7;color:#2e3542}
.tm-quote p{margin:0}
.tm-controls{display:flex;align-items:center;justify-content:center;gap:20px}
.tm-arrow{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:transparent;color:#0b5e6b;cursor:pointer}
.tm-arrow:hover{background:#eef3f6}
.tm-dots{display:flex;gap:8px}
.tm-dot{width:34px;height:34px;border:0;padding:0;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center}
.tm-dot::before{content:"";width:14px;height:14px;border-radius:50%;background:#d5dbe2;transition:background .2s}
.tm-dot[aria-current="true"]::before{background:#0b5e6b}
.tm-arrow:focus-visible,.tm-dot:focus-visible{outline:2px solid #0b5e6b;outline-offset:2px}
@media (max-width:720px){
.tm{padding:32px 20px 24px;border-radius:24px;gap:24px}
.tm-slide{grid-template-columns:1fr;gap:20px;justify-items:center;align-content:start;text-align:center}
.tm-photo{width:120px;height:120px}
.tm-quote{font-size:15px}
.tm-dots{gap:2px}
}
@media (prefers-reduced-motion:reduce){.tm-slide,.tm-dot::before{transition:none}}