/* Shared star control for homepage, service catalogue and service detail cards. */
.service-favorite-toggle { width: 38px; height: 38px; display: inline-flex; flex: 0 0 38px; align-items: center; justify-content: center; padding: 0; border: 1px solid #e5e9ee; border-radius: 50%; color: #7a8794; background: #fff; font: inherit; cursor: pointer; box-shadow: 0 3px 10px rgb(18 48 77 / 8%); transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.service-favorite-toggle .fa { font-size: 15px; }
.service-favorite-toggle:hover, .service-favorite-toggle:focus-visible { transform: translateY(-1px); border-color: #c9ad6e; color: #987126; background: #fffaf0; box-shadow: 0 5px 14px rgb(18 48 77 / 12%); }
.service-favorite-toggle.is-favorited { border-color: #e7d5a8; color: #aa812a; background: #fff8e7; }
.service-favorite-toggle[disabled] { opacity: .62; cursor: wait; }
.service-favorite-toggle:focus-visible { outline: 3px solid rgb(182 138 53 / 38%); outline-offset: 2px; }
.home-service-card { position: relative; }
.home-service-card > .service-favorite-toggle { position: absolute; z-index: 4; inset-block-start: 9px; inset-inline-end: 9px; }
.service-tile > .service-favorite-toggle { position: absolute; z-index: 4; inset-block-start: 12px; inset-inline-end: 12px; }
.service-tile--favorite-enabled .service-tile__topline { padding-inline-end: 45px; }
.service-info-hero__actions > .service-favorite-toggle { justify-self: end; }

@media (max-width: 560px) {
    .service-favorite-toggle { width: 35px; height: 35px; flex-basis: 35px; }
    .service-favorite-toggle .fa { font-size: 14px; }
    .home-service-card > .service-favorite-toggle { inset-block-start: 7px; inset-inline-end: 7px; }
    .service-tile > .service-favorite-toggle { inset-block-start: 10px; inset-inline-end: 10px; }
}
