/* Survol commun des boutons rectangulaires : vert profond et reflet discret. */
.btn-ink,.btn-out,.btn.btn-rect {
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:background-color .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease;
}

.btn-ink::after,.btn-out::after,.btn.btn-rect::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.12) 50%,transparent 75%);
  transform:translateX(-120%);
}

.btn-ink:focus-visible:not(:disabled),.btn-out:focus-visible,.btn.btn-rect:focus-visible {
  background:#0A5F5B;
  border-color:#0A5F5B;
  color:#fff;
  outline:2px solid #12A6A0;
  outline-offset:4px;
}

@media(hover:hover) {
  .btn-ink:hover:not(:disabled),.btn-out:hover,.btn.btn-rect:hover {
    background:#0A5F5B;
    border-color:#0A5F5B;
    color:#fff;
    filter:none;
    box-shadow:0 8px 22px -12px rgba(10,95,91,.6);
  }
  .btn-ink:hover:not(:disabled)::after,.btn-out:hover::after,.btn.btn-rect:hover::after {
    animation:button-reflection .65s cubic-bezier(.2,.65,.3,1) both;
  }
}

.btn-ink:active:not(:disabled),.btn-out:active,.btn.btn-rect:active {
  background:#084B48;
  border-color:#084B48;
  color:#fff;
  box-shadow:inset 0 2px 4px rgba(0,0,0,.15);
}

@keyframes button-reflection {
  from {transform:translateX(-120%)}
  to {transform:translateX(120%)}
}

@media(prefers-reduced-motion:reduce) {
  .btn-ink,.btn-out,.btn.btn-rect {transition:none}
  .btn-ink::after,.btn-out::after,.btn.btn-rect::after {display:none;animation:none}
}
