/* IDEALEE PHP deployment additions: visual language follows the original build. */
.reveal{opacity:0;pointer-events:none;transform:translateY(24px) scale(.99);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
.is-visible{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}
.site-alert{border-radius:16px 4px;position:fixed;z-index:50;top:98px;left:50%;transform:translateX(-50%);padding:14px 22px;border:1px solid #12382a;background:#f5f3ec;box-shadow:0 12px 30px #12382a22;font-size:15px;letter-spacing:.03em}
.site-alert-success{color:#006c3e}.site-alert-error{color:#ee1730}
.cases-track.is-dragging{cursor:grabbing;scroll-behavior:auto}
.footer-admin-link{color:inherit;text-decoration:none;letter-spacing:.12em;font-family:IBM Plex Mono,monospace;font-size:10px;opacity:.65}
.footer-admin-link:hover{opacity:1;color:#ee1730}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.cases-track{scroll-behavior:auto!important}}

/* Cases: three cards are visible by default; additional cards remain horizontally scrollable. */
.cases-track{display:flex;gap:24px;overflow-x:auto;overflow-y:hidden;padding:0 0 18px;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none!important;-ms-overflow-style:none!important}
.case-slide{flex:0 0 calc((100% - 48px)/3);min-width:0;scroll-snap-align:start}
.case-card{height:100%}
.cases-track::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.insight-image-wrap{aspect-ratio:16/9;margin-bottom:22px;overflow:hidden;background:#dfe4db}.insight-image{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-out)}.article-card:hover .insight-image{transform:scale(1.035)}.insight-excerpt{margin:14px 0 0;max-width:48ch;color:#666;line-height:1.8;font-size:15px}.insight-link{margin-top:22px}
@media (max-width:900px){.case-slide{flex-basis:calc((100% - 24px)/2)}}
@media (max-width:640px){.case-slide{flex-basis:100%}.cases-track{gap:18px}.insight-image-wrap{margin-bottom:18px}}

.intro-image-wrap{width:min(100%,360px);margin-top:30px;overflow:hidden;background:#dfe4db}.intro-about-image{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .7s var(--ease-out)}.intro-image-wrap:hover .intro-about-image{transform:scale(1.035)}

/* Accessible fixed back-to-top control. */
.to-top{position:fixed;right:24px;bottom:24px;z-index:40;width:58px;height:58px;border:1px solid rgba(255,255,255,.55);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:#006c3e;color:#f7f4eb;box-shadow:0 10px 28px rgba(19,46,35,.2);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s ease,visibility .25s ease,transform .25s ease,background .25s ease}.to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}.to-top:hover{background:#123d2d;transform:translateY(-3px)}.to-top:focus-visible{outline:3px solid #f2b632;outline-offset:4px}.to-top-arrow{font-size:20px;line-height:18px;font-weight:400}.to-top-label{font-size:8px;line-height:10px;letter-spacing:.12em;font-weight:700}@media (max-width:640px){.to-top{right:16px;bottom:16px;width:50px;height:50px}.to-top-arrow{font-size:18px}.to-top-label{font-size:7px}}@media (prefers-reduced-motion:reduce){.to-top{transition:none}.to-top:hover{transform:none}}

/* Services image/icon presentation */
.service-image-placeholder{position:relative;display:block;width:100%;height:100%;overflow:hidden;background:#dce7d9}.service-image-placeholder:before,.service-image-placeholder:after{content:"";position:absolute;background:#006c3e}.service-image-placeholder:before{width:58%;height:1px;top:42%;left:21%;box-shadow:0 12px 0 rgba(0,108,62,.45)}.service-image-placeholder:after{width:16px;height:16px;left:42%;top:29%;border:1px solid #c6283a;border-radius:50%;background:#c6283a;box-shadow:0 0 0 9px rgba(198,40,58,.11)}.service-image-placeholder i{position:absolute;width:22px;height:22px;right:13%;bottom:15%;border-right:1px solid #006c3e;border-bottom:1px solid #006c3e;transform:rotate(-45deg)}.service-image-placeholder b{position:absolute;width:42%;height:42%;left:29%;bottom:-18%;border:1px solid rgba(0,108,62,.55);border-radius:50% 50% 0 0}.service-row:hover .service-image-placeholder{background:#cbdacb}.service-row:hover .service-image-placeholder:after{transform:scale(1.08)}
@media(max-width:640px){.service-row .service-image-wrap{grid-column:2;width:92px;height:92px}.service-title p{margin-bottom:9px}.service-description{max-width:34em}}

/* Contact social links */
.social-links{margin-top:clamp(28px,4vw,54px)}.social-links-label{margin:0 0 14px;color:#d7e6d9;font:10px 'IBM Plex Mono',monospace;letter-spacing:.16em}.social-links-list{display:flex;flex-wrap:wrap;gap:9px}.social-link{display:inline-flex;align-items:center;gap:10px;min-height:42px;padding:9px 12px;border:1px solid rgba(245,243,236,.34);color:#f5f3ec;font:11px 'IBM Plex Mono',monospace;letter-spacing:.05em;transition:background .25s ease,border-color .25s ease,transform .25s ease}.social-link span{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:24px;padding:2px 5px;border-color:rgba(245,243,236,.5);font-size:13px}.social-link i{font-style:normal;color:#d7e6d9;transition:transform .25s ease}.social-link:hover,.social-link:focus-visible{background:#f5f3ec;color:#006c3e;border-color:#f5f3ec;transform:translateY(-2px)}.social-link:hover i,.social-link:focus-visible i{color:#006c3e;transform:translate(2px,-2px)}
@media(max-width:640px){.social-links{margin-top:30px}.social-links-list{gap:7px}.social-link{min-height:40px;padding:8px 10px}.social-link i{display:none}}
