/* JDI: restrained depth, editorial testimonials, keyboard and touch support. */
.jdi-testimonials { --testimonial-gap:clamp(24px,3vw,44px);margin-top:48px;min-width:0; }
.jdi-testimonials-track { display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2 * var(--testimonial-gap)) / 3);gap:var(--testimonial-gap);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#a5c9cc transparent;padding:8px 0 14px;align-items:stretch; }
.jdi-testimonial { display:flex;flex-direction:column;min-width:0;margin:0;scroll-snap-align:start;scroll-margin-inline:0; }
.jdi-testimonial>.quote-mark { display:block;flex:none;height:54px;font-size:68px;color:#287f86; }
.jdi-testimonial blockquote { flex:1;font-size:clamp(15px,1.15vw,18px);line-height:1.85;margin:22px 0 30px;overflow-wrap:anywhere; }
.jdi-testimonial figcaption { display:flex;gap:16px;align-items:flex-start;border-top:1px solid var(--line,#dce6e7);padding:24px 0 8px;min-height:104px;box-sizing:border-box; }
.jdi-testimonial-avatar { position:relative;display:grid;place-items:center;flex:0 0 56px;width:56px;height:56px;aspect-ratio:1;border-radius:50%;overflow:hidden;background:#edf5f4;color:#287f86;border:1px solid #d0e4e4; }
.jdi-testimonial-avatar img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center; }
.jdi-testimonial-initials { font-size:17px;letter-spacing:.04em; }
.jdi-testimonial-person { display:block;min-width:0;padding-top:3px; }
.jdi-testimonial-person strong,.jdi-testimonial-person>span { display:block;line-height:1.55;overflow-wrap:anywhere; }
.jdi-testimonial-person strong { color:var(--ink,#232829);font-size:15px;font-weight:500; }
.jdi-testimonial-person>span { color:var(--muted,#647579);font-size:13px;margin-top:4px; }
.jdi-testimonials-controls { display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px; }
.jdi-testimonials-controls[hidden] { display:none; }
.jdi-testimonials-count { margin:0;font-size:13px;color:var(--muted,#647579);font-variant-numeric:tabular-nums; }
.jdi-testimonials-buttons { display:flex;gap:10px; }
.jdi-testimonials-buttons button { display:grid;place-items:center;width:46px;height:46px;min-width:46px;min-height:46px;padding:0;border:1px solid #aacacc;border-radius:50%;background:transparent;color:#287f86;cursor:pointer; }
.jdi-testimonials-buttons svg { display:block;width:22px;height:22px; }
.jdi-testimonials-buttons button:disabled { opacity:.35;cursor:default; }
.jdi-testimonials-buttons button:focus-visible,.jdi-testimonials-track:focus-visible { outline:2px solid #287f86;outline-offset:4px; }
.jdi-testimonials-track:focus-visible { outline-offset:0; }
@media (max-width:1100px) { .jdi-testimonials-track { grid-auto-columns:calc((100% - var(--testimonial-gap)) / 2); } }
@media (max-width:640px) { .jdi-testimonials { margin-top:32px; }.jdi-testimonials-track { grid-auto-columns:100%; }.jdi-testimonial blockquote { font-size:16px;margin-top:12px; }.jdi-testimonial figcaption { gap:14px; }.jdi-testimonials-controls { margin-top:16px; } }
@media (prefers-reduced-motion:no-preference) {
 .jdi-testimonials-track { scroll-behavior:smooth; }
 body:not(.admin-body) :is(.case-card,.service-feature,.project-card) { transition:transform 280ms cubic-bezier(.2,.7,.3,1),box-shadow 280ms ease,border-color 280ms ease; }
 body:not(.admin-body) .project-card :is(.desktop-shell,.project-visual) { transition:transform 480ms cubic-bezier(.2,.7,.3,1); }
 body:not(.admin-body) :is(.btn,.text-link) .link-arrow { transition:transform 220ms ease; }
 .jdi-testimonials-buttons button { transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease; }
}
@media (hover:hover) and (pointer:fine) {
 body:not(.admin-body) :is(.case-card,.service-feature):hover { transform:translateY(-4px);box-shadow:0 16px 32px -22px #164e5766;border-color:#7db6ba; }
 body:not(.admin-body) .project-card:hover { transform:translateY(-3px); }
 body:not(.admin-body) .project-card:hover :is(.desktop-shell,.project-visual) { transform:scale(1.012); }
 body:not(.admin-body) :is(.btn,.text-link):hover .link-arrow { transform:translate(2px,-2px); }
 .jdi-testimonials-buttons button:not(:disabled):hover { background:#287f86;border-color:#287f86;color:white; }
}
body:not(.admin-body) :is(.case-card,.service-feature,.project-card):focus-within { outline:1px solid #75afb4;outline-offset:5px; }
#testimonial,#about,#services { scroll-margin-top:calc(var(--jdi-header-height,90px) + var(--jdi-crumb-height,44px) + 24px); }
@media (min-width:1101px) { .footer-bottom { grid-template-columns:minmax(190px,1.15fr) minmax(140px,.8fr) minmax(185px,1fr) minmax(235px,1.25fr);gap:clamp(24px,2.5vw,42px); } }
@media (min-width:801px) and (max-width:1100px) { .footer-bottom { grid-template-columns:repeat(2,minmax(0,1fr));gap:36px; } }
@media (max-width:800px) { .footer-bottom { grid-template-columns:minmax(0,1fr); }.footer-strategic-links { align-items:center;text-align:center;margin-inline:auto;width:min(100%,330px); }.footer-strategic-links a { justify-content:center; } }
@media (prefers-reduced-motion:reduce) {
 .jdi-testimonials-track { scroll-behavior:auto!important; }
 body:not(.admin-body) :is(.case-card,.service-feature,.project-card),body:not(.admin-body) .project-card :is(.desktop-shell,.project-visual),body:not(.admin-body) :is(.btn,.text-link) .link-arrow { transition:none!important;transform:none!important; }
}
