/* Calm interaction cues, matched to each service's palette. */
.service-button,.nav .contact{
 --button-hover-bg:#123d59;
 --button-hover-color:#fff;
 --button-hover-border:var(--button-hover-bg);
 transition:background-color .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease,transform .25s ease;
}
.service-feature-copy .service-button{
 --button-hover-bg:#ffcf88;
 --button-hover-color:#123d59;
}
.service-support .service-button{
 --button-hover-bg:#123d59;
 --button-hover-color:#fff;
}
#cm-production .service-button{
 --button-hover-bg:#fff;
 --button-hover-color:#123d59;
}
#video-production .service-button{
 --button-hover-bg:#ffcf88;
 --button-hover-color:#123d59;
}
.service-button>span[aria-hidden=true]{
 display:inline-block;
 transition:transform .25s cubic-bezier(.22,1,.36,1);
}
.service-button:focus-visible,
.service-feature .service-button:focus-visible,
.service-pair>#cm-production .service-button:focus-visible,
.service-pair>#video-production .service-button:focus-visible,
.service-pair>.service-card:nth-child(2) .service-button:focus-visible,
.nav .contact:focus-visible{
 background:var(--button-hover-bg);
 border-color:var(--button-hover-border);
 color:var(--button-hover-color);
 box-shadow:0 6px 16px #08243c20;
 transform:translateY(-2px);
}
.service-button:focus-visible>span[aria-hidden=true]{transform:translate(3px,-3px)}
.contact-route{transition:background-color .25s ease}
.contact-route .route-arrow,.back-top span{transition:background-color .25s ease,color .25s ease,transform .25s ease}
.contact-route:focus-visible{background:#ffffff14}
.contact-route:focus-visible .route-arrow{background:#ed9b49;color:#123d59;transform:translate(3px,-3px)}
.back-top:focus-visible span{background:#123d59;color:#fff;transform:translateY(-3px)}
.news-row button,.news-filters button,.controls button,.dialog-close{transition:background-color .25s ease,color .25s ease}
.news-row button:focus-visible{background:#123d5908}
.news-row button:focus-visible .news-arrow{transform:translate(3px,-3px)}
.news-filters button:focus-visible{color:#123d59;background:#123d5908}
.dialog-close:focus-visible{background:#123d59;color:#fff}
.photo-dots button{transition:background-color .25s ease}
.photo-dots button:focus-visible{background:#ed9b49}
@media(hover:hover){
 .service-button:hover,
 .service-feature .service-button:hover,
 .service-pair>#cm-production .service-button:hover,
 .service-pair>#video-production .service-button:hover,
 .service-pair>.service-card:nth-child(2) .service-button:hover,
 .nav .contact:hover{
  background:var(--button-hover-bg);
  border-color:var(--button-hover-border);
  color:var(--button-hover-color);
  box-shadow:0 6px 16px #08243c20;
  transform:translateY(-2px);
 }
 .service-button:hover>span[aria-hidden=true]{transform:translate(3px,-3px)}
 .contact-route:hover{background:#ffffff14}
 .contact-route:hover .route-arrow{background:#ed9b49;color:#123d59;transform:translate(3px,-3px)}
 .back-top:hover span{background:#123d59;color:#fff;transform:translateY(-3px)}
 .news-row button:hover{background:#123d5908}
 .news-filters button:hover{color:#123d59;background:#123d5908}
 .dialog-close:hover{background:#123d59;color:#fff}
 .photo-dots button:hover{background:#ed9b49}
}
/* Service visuals keep their size when the pointer is over the image or card. */
.service-pair .service-card:hover .service-card-image img,
.service-pair .service-card .service-card-image:hover img{transform:none;filter:none}
.service-pair .service-card-image img{transition:none}
@media(prefers-reduced-motion:reduce){
 .service-button,.nav .contact,.service-button>span[aria-hidden=true],
 .contact-route,.contact-route .route-arrow,.back-top span,.news-row button,
 .news-filters button,.controls button,.dialog-close,.photo-dots button{transition:none}
 .service-button:hover,.service-button:focus-visible,
 .service-feature .service-button:hover,.service-feature .service-button:focus-visible,
 .service-pair>#cm-production .service-button:hover,.service-pair>#cm-production .service-button:focus-visible,
 .service-pair>#video-production .service-button:hover,.service-pair>#video-production .service-button:focus-visible,
 .service-pair>.service-card:nth-child(2) .service-button:hover,.service-pair>.service-card:nth-child(2) .service-button:focus-visible,
 .nav .contact:hover,.nav .contact:focus-visible,
 .service-button:hover>span[aria-hidden=true],.service-button:focus-visible>span[aria-hidden=true],
 .contact-route:hover .route-arrow,.contact-route:focus-visible .route-arrow,
 .back-top:hover span,.back-top:focus-visible span,.news-row button:hover .news-arrow,.news-row button:focus-visible .news-arrow{transform:none}
}
