/* Interacciones sobrias: movimiento breve, azul industrial y sombras suaves. */
:root{--motion-ease:cubic-bezier(.22,.61,.36,1)}
.service-card,.cap-panel,.project-gallery figure{transition:border-color .3s ease,box-shadow .35s ease,transform .35s var(--motion-ease)}
.service-card{overflow:hidden}
.service-card-image,.cap-image,.catalog-card img,.project-gallery img,.about-photo img,.service-detail-image img{transition:transform .65s var(--motion-ease),filter .65s ease}
.service-card h3,.catalog-card h2{transition:color .25s ease}
.service-card>a:not(.btn){align-self:flex-start;background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:background-size .3s ease,color .25s ease}
.btn{transition:transform .25s var(--motion-ease),box-shadow .3s ease,background-color .25s ease,border-color .25s ease}
.article-body video{transition:box-shadow .35s ease;outline-offset:5px}
.hero-slide{transform:scale(1);transition:opacity 1.1s ease}
.hero-slide.is-active{animation:hero-drift 7s linear both}
@keyframes hero-drift{from{transform:scale(1.035)}to{transform:scale(1)}}
.hero-dots button{transition:width .35s var(--motion-ease),background-color .25s ease;position:relative}
.hero-dots button:after{content:"";position:absolute;inset:-12px -3px}
.hero-carousel-controls>button{width:38px;height:38px;border-radius:50%;transition:background-color .25s ease}
.hero-carousel-controls>button[data-hero-pause]{font:600 12px RowalInter,sans-serif;width:auto;padding:0 12px;border-radius:20px;border-left:1px solid #ffffff30}
.hero-media-controls{position:absolute;bottom:58px;right:24px;z-index:4}
.hero-media-controls button{background:#0e1b31c9;color:#fff;border:1px solid #ffffff50;border-radius:24px;padding:10px 16px;font:600 12px RowalInter,sans-serif;cursor:pointer}
.hero-carousel-controls[hidden],.hero-media-controls[hidden]{display:none}
.hero-campaign.is-motion-paused .hero-slide{animation-play-state:paused}
.service-card:focus-within,.project-gallery figure:focus-within{border-color:#8db6eb;box-shadow:0 14px 32px #142b4514}
.service-card>a:not(.btn):focus-visible{background-size:100% 1px}
.btn:focus-visible,.hero-carousel-controls button:focus-visible,.hero-media-controls button:focus-visible{outline:3px solid #69aaff;outline-offset:4px}
@media(hover:hover) and (pointer:fine){
  .service-card:hover{transform:translateY(-5px);border-color:#8db6eb;box-shadow:0 18px 38px #142b4518}
  .service-card:hover .service-card-image,.cap-panel:hover .cap-image{transform:scale(1.025);filter:brightness(1.04)}
  .service-card:hover h3,.catalog-card:hover h2{color:#0864da}
  .service-card>a:not(.btn):hover{background-size:100% 1px}
  .cap-panel:hover{border-color:#5c80ac;box-shadow:0 16px 38px #0002}
  .project-gallery a:hover img,.catalog-card:hover img,.about-photo:hover img,.service-detail-image:hover img{transform:scale(1.035)}
  .btn:hover{transform:translateY(-2px);box-shadow:0 8px 22px #0864da26}
  .article-body video:hover{box-shadow:0 0 0 2px #8db6eb,0 16px 36px #142b451c}
  .hero-carousel-controls>button:hover{background:#ffffff20}
}
@media(max-width:650px){
  .hero-carousel-controls{gap:8px;padding:5px 8px;max-width:calc(100% - 24px)}
  .hero-media-controls{right:16px;bottom:66px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation:none!important;transition:none!important}
  .service-card:hover,.catalog-card:hover,.btn:hover,.service-card:hover .service-card-image,.cap-panel:hover .cap-image,.project-gallery a:hover img,.catalog-card:hover img,.about-photo:hover img,.service-detail-image:hover img,.hero-slide{transform:none}
  .hero-background video{display:block}
}
