
.reveal-pending{opacity:0;transform:translateY(14px)}
.reveal-ready{transition:opacity .55s ease,transform .55s ease}
.photo-gallery{position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:20px;border:0;background:#141b18;color:#fff;box-sizing:border-box;overflow:auto}
.photo-gallery::backdrop{background:rgba(0,0,0,.9)}
.photo-gallery[open]{display:flex;flex-direction:column;gap:12px}
.photo-gallery .gallery-bar{display:flex;align-items:center;justify-content:space-between;gap:16px}
.photo-gallery button{min-width:48px;min-height:48px;border:1px solid #748373;background:#25302a;color:#fff;font:inherit;cursor:pointer;padding:8px 16px}
.photo-gallery button:focus-visible{outline:3px solid #009999;outline-offset:3px}
.photo-gallery .gallery-image{display:block;flex:1;min-height:0;width:100%;height:calc(100dvh - 175px);object-fit:contain;touch-action:pan-y pinch-zoom}
.photo-gallery .gallery-caption{margin:0;text-align:center;font-size:18px;color:#fff}
.photo-gallery .gallery-controls{display:flex;justify-content:center;align-items:center;gap:20px}
@media(max-width:600px){.photo-gallery{padding:12px}.reveal-pending{transform:translateY(7px)}.reveal-ready{transition-duration:.35s}.photo-gallery .gallery-caption{font-size:16px}}
@media(prefers-reduced-motion:reduce){.reveal-pending{opacity:1;transform:none}.reveal-ready{transition:none}}

/* Subtle mouse interactions; touch screens keep their normal tap behavior. */
.practice-photos .project-card > a:first-child{overflow:hidden;background:#202622}
.practice-photos .project-card > a:first-child img{transition:transform .35s ease}
.button,.header-cta,.project-filters button,.photo-gallery button,.project-link{transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}
.button:focus-visible,.header-cta:focus-visible,.project-filters button:focus-visible,.project-link:focus-visible,.practice-photos .project-card > a:first-child:focus-visible{outline:3px solid #008080;outline-offset:4px}
@media(hover:hover) and (pointer:fine){
 .practice-photos .project-card > a:first-child:hover img{transform:scale(1.035)}
 .button:hover,.header-cta:hover,.photo-gallery button:not(:disabled):hover{background:#009999;color:#18221b;border-color:#009999;box-shadow:0 3px 12px rgba(24,34,27,.12)}
 .project-filters button:not(.active):hover{background:#d5eeee;color:#18221b}
 .project-filters button.active:hover{background:#175451;color:#fff}
 .project-link:hover{color:#006b6b;border-color:#008080}
}
@media(prefers-reduced-motion:reduce){
 .practice-photos .project-card > a:first-child img{transition:none;transform:none!important}
 .button,.header-cta,.project-filters button,.photo-gallery button,.project-link{transition:none}
}

.client-ribbon{min-width:0}
.client-ribbon-viewport{overflow-x:auto;overflow-y:hidden;scroll-behavior:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#8c9d80 transparent;padding-bottom:12px}
.client-ribbon-viewport:focus-visible{outline:3px solid #008080;outline-offset:4px}
.client-ribbon .company-logos{display:flex;flex-wrap:nowrap;gap:18px;width:max-content;max-width:none;margin:0;padding:0;list-style:none}
.client-ribbon .company-logos li{flex:0 0 190px;width:190px;height:130px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:16px}
.client-ribbon .company-logos img{display:block;max-width:100%;max-height:98px;width:auto;height:auto;object-fit:contain}
@media(max-width:600px){.client-ribbon .company-logos{gap:12px}.client-ribbon .company-logos li{flex-basis:145px;width:145px;height:110px;padding:12px}.client-ribbon .company-logos img{max-height:86px}}

.brands .equipment-ribbon{flex:1;min-width:0;max-width:100%}
.brands .equipment-ribbon .brand-list{display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:18px;width:max-content;max-width:none}
.brands .equipment-ribbon .brand-list .brand-logo{flex:0 0 190px;width:190px;max-width:none;height:76px;padding:12px 16px}
.brands .equipment-ribbon .brand-list .brand-logo img{max-height:48px}
.brands .equipment-ribbon .brand-list .brand-logo img.padded-wordmark{max-height:none}
@media(max-width:600px){.brands .equipment-ribbon .brand-list{gap:12px}.brands .equipment-ribbon .brand-list .brand-logo{flex-basis:145px;width:145px;height:66px}.brands .equipment-ribbon .brand-list .brand-logo img{max-height:42px}}

.client-ribbon-viewport{scrollbar-width:none;-ms-overflow-style:none;padding-bottom:0}
.client-ribbon-viewport::-webkit-scrollbar{display:none;width:0;height:0}

/* Always-available contact actions; footer space prevents covered content. */
body{padding-bottom:calc(108px + env(safe-area-inset-bottom,0px))}
.quick-contact{position:fixed;right:24px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:45;display:flex;gap:6px;padding:6px;border:1px solid #435048;border-radius:18px;background:#19231e;box-shadow:0 10px 36px rgba(0,0,0,.22);max-width:calc(100% - 32px);box-sizing:border-box}
.quick-contact a{display:flex;align-items:center;justify-content:center;gap:12px;min-height:60px;padding:10px 20px;border-radius:12px;text-decoration:none;box-sizing:border-box;transition:background-color .2s ease,color .2s ease}
.quick-contact .quick-contact-call{background:#009999;color:#18221b}
.quick-contact .quick-contact-email{background:#203c3b;color:#f6f8ef}
.quick-contact svg{width:22px;height:22px;flex-shrink:0}
.quick-contact span{display:flex;flex-direction:column;gap:4px}
.quick-contact strong{font:600 15px/1.2 Arial,sans-serif;letter-spacing:0;text-transform:none}
.quick-contact small{font:400 11px/1.2 Arial,sans-serif;letter-spacing:0;opacity:.85;text-transform:none}
.quick-contact a:focus-visible{outline:3px solid #fff;outline-offset:2px}
@media(hover:hover){.quick-contact .quick-contact-call:hover{background:#20b3b3}.quick-contact .quick-contact-email:hover{background:#245957}}
@media(max-width:600px){
 .quick-contact{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom,0px));max-width:none;border-radius:16px;gap:5px;padding:5px}
 .quick-contact a{flex:1;min-width:0;gap:8px;padding:10px 8px;min-height:54px}
 .quick-contact strong{font-size:14px}.quick-contact small{font-size:10px}.quick-contact svg{width:20px;height:20px}
 body{padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}
}
@media(prefers-reduced-motion:reduce){.quick-contact a{transition:none}}
@media print{.quick-contact{display:none}body{padding-bottom:0}}

.button-lime,.button-lime:hover,.language-switch a:hover,.language-switch a.is-active,.quick-contact .quick-contact-call{color:#071f20}
@media(hover:hover){.button:hover,.header-cta:hover,.photo-gallery button:not(:disabled):hover{color:#071f20}}

.hero-video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;margin:28px auto;border-radius:12px;background:#101918;border:1px solid #34504a}

.hero-video::-webkit-media-controls{display:none!important}
