/* Stagger testimonials: a row of overlapping cards, the centre one raised and in the accent colour.
   Positions come from --p (set by testimonials.js); everything else is CSS. */
.stagger{--w:400px;--h:440px;--step:calc(var(--w) / 1.5);--corner:40px;
 --spring:linear(0, 0.057 4.2%, 0.179 8.3%, 0.319 12.5%, 0.453 16.7%, 0.571 20.8%, 0.669 25%, 0.748 29.2%, 0.811 33.3%, 0.859 37.5%, 0.895 41.7%, 0.923 45.8%, 0.944 50%, 0.959 54.2%, 0.97 58.3%, 0.979 62.5%, 0.985 66.7%, 0.992 75%, 0.996 83.3%, 0.999 95.8%, 1);
 position:relative;overflow:hidden;padding-bottom:4px;
 -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.stagger-stage{position:relative;height:calc(var(--h) + 140px);touch-action:pan-y}
.stagger-card{position:absolute;left:50%;top:50%;z-index:calc(10 - var(--d,0));box-sizing:border-box;display:flex;flex-direction:column;gap:18px;
 width:var(--w);height:var(--h);margin:0;padding:30px 32px;border:2px solid #dfe5ee;cursor:pointer;
 color:#33445a;background:#f6f8fb;
 clip-path:polygon(0 0,calc(100% - var(--corner)) 0,100% var(--corner),100% 100%,0 100%);
 transform:translate(-50%,-50%) translateX(calc(var(--p,0) * var(--step))) translateY(var(--y,0px)) rotate(var(--r,0deg));
 transition:transform 590ms var(--spring),background-color 440ms ease,border-color 440ms ease,color 440ms ease,opacity 300ms ease}
.stagger-card{--y:-14px;--r:-2.5deg}
.stagger-card.is-odd{--y:16px;--r:2.5deg}
.stagger-card.is-center{--y:-56px;--r:0deg;z-index:20;cursor:default;color:var(--chosen-on,#fff);background:var(--chosen-accent,#2f6bff);border-color:var(--chosen-accent,#2f6bff)}
.stagger-card.is-far{opacity:0;pointer-events:none}
.stagger-card.is-jump{transition:none}
.stagger-corner{position:absolute;right:-2px;top:calc(var(--corner) - 2px);width:calc(var(--corner) * 1.4142 + 2px);height:2px;background:#dfe5ee;transform:rotate(45deg);transform-origin:top right;transition:background-color 440ms ease}
.stagger-card.is-center .stagger-corner{background:color-mix(in srgb,var(--chosen-on,#fff) 35%,transparent)}
.stagger-avatar{flex:none;width:52px;height:52px;border-radius:14px;object-fit:cover;box-shadow:0 0 0 2px #fff}
.stagger-initials{display:grid;place-items:center;font-size:.85rem;font-weight:650;letter-spacing:.04em;color:var(--chosen-accent,#2f6bff);background:#fff}
html[data-theme] .testimonials .stagger-card blockquote{flex:1;max-width:none;margin:0;font-size:1rem;line-height:1.6;color:inherit}
.stagger-card footer{display:flex;flex-direction:column;gap:2px;font-size:.85rem;line-height:1.35}
.stagger-card footer strong{font-weight:650}
.stagger-card footer span{opacity:.75}
@media(hover:hover){.stagger-card:not(.is-center):hover{border-color:color-mix(in srgb,var(--chosen-accent,#2f6bff) 45%,#dfe5ee)}}
.stagger-nav{display:flex;justify-content:center;gap:10px;margin-top:6px}
.stagger-nav button{display:grid;place-items:center;width:52px;height:52px;padding:0;border:2px solid #dfe5ee;border-radius:14px;background:#fff;color:#1d2a3a;cursor:pointer;
 transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform 440ms var(--spring)}
.stagger-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media(hover:hover){.stagger-nav button:hover{background:var(--chosen-accent,#2f6bff);border-color:var(--chosen-accent,#2f6bff);color:var(--chosen-on,#fff)}}
.stagger-nav button:active{transform:scale(.94);transition-duration:.2s,.2s,.2s,90ms}
@media(max-width:700px){
 .stagger{--w:min(320px,84vw);--corner:32px}
 .stagger-card{padding:24px 22px;gap:14px}
 html[data-theme] .testimonials .stagger-card blockquote{font-size:.9375rem;line-height:1.55}
}
@media(prefers-reduced-motion:reduce){
 .stagger-card{transition:background-color .2s ease,border-color .2s ease,color .2s ease,opacity .2s ease}
}
