/* Interakcije nad postojećim dizajnom. Bez vanjskih biblioteka. */
:root {
  --motion-ease: cubic-bezier(.22, .75, .22, 1);
}

/* Header ostaje dostupan i prelazi u kompaktni oblik. */
.site-header {
  position: fixed;
  transition: background-color .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.header-inner {
  transition: height .28s var(--motion-ease);
}
.site-header.is-scrolled {
  background: #101216f5;
  border-bottom-color: #3c4049;
  box-shadow: 0 5px 24px #00000026;
}
.site-header.is-scrolled .header-inner {
  height: 74px;
}
.site-header .brand {
  transform-origin: left center;
  transition: transform .28s var(--motion-ease);
}
.site-header.is-scrolled .brand {
  transform: scale(.91);
}
.appointment-panel {
  scroll-margin-top: 28px;
}

/* Pomak slike je malen; tekst i ostali sadržaj ostaju mirni. */
.has-depth .hero-picture img {
  transform: translate3d(0, var(--hero-depth, -12px), 0) scale(1.06);
}
.has-depth .diagnostics-media img {
  transform: translate3d(0, var(--diagnostics-depth, 0px), 0) scale(1.06);
}

/* Reveal i hover imaju odvojene transformacije. */
.reveal.waiting {
  opacity: 0;
  transform: none;
  translate: 0 18px;
}
.reveal.visible {
  opacity: 1;
  transform: none;
  translate: 0 0;
  transition: opacity .62s var(--motion-ease), translate .62s var(--motion-ease);
  transition-delay: var(--reveal-delay, 0ms);
}
.service-card.reveal {
  transition: opacity .62s var(--motion-ease), translate .62s var(--motion-ease),
    transform .3s var(--motion-ease), border-color .3s ease;
}
.service-card.reveal.is-expanded {
  border-color: #ec5255;
}
.service-peek {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.service-peek:focus-visible {
  outline-offset: -5px;
}
.service-peek-label {
  position: absolute;
  z-index: 2;
  top: 18px;
  right: 18px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  background: #0c0e11d9;
  border: 1px solid #ffffff32;
  font-size: .75rem;
  line-height: 1.5;
}
.service-peek-label > span {
  font-size: 1.1rem;
  line-height: 1;
  transition: transform .25s var(--motion-ease);
}
.service-peek[aria-expanded=true] .service-peek-label > span {
  transform: rotate(45deg);
}
.service-peek[aria-expanded=true] img {
  transform: scale(1.035);
  filter: saturate(.9) brightness(.95);
}
.service-details {
  margin-top: 19px;
  padding-top: 17px;
  border-top: 1px solid #393c45;
}
.service-details ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.service-details li {
  position: relative;
  padding: 5px 0 5px 17px;
  font-size: .875rem;
  line-height: 1.65;
  color: #c2c6cf;
}
.service-details li::before {
  content: '';
  position: absolute;
  top: 15px;
  left: 0;
  width: 6px;
  height: 1px;
  background: #f5686b;
}
.service-card.reveal:active {
  transform: scale(.993);
}

/* Sitni pomaci strelice i odziv na pritisak. */
.button, .header-cta, .mobile-actions a:last-child {
  transition: background-color .23s ease, border-color .23s ease, transform .23s var(--motion-ease);
}
.button > span[aria-hidden], .header-cta > span[aria-hidden],
.mobile-actions a > span[aria-hidden], .service-foot a > span[aria-hidden],
.text-link > span[aria-hidden] {
  display: inline-block;
  transition: transform .23s var(--motion-ease);
}
.button:active, .header-cta:active, .mobile-actions a:active {
  transform: scale(.982);
}
.service-foot a:active {
  transform: scale(.95);
}

/* Manualni carousel: swipe, strelice i tipkovnica. */
#reviews-empty > p {
  color: #969aa4;
  font-size: 1rem;
  line-height: 1.8;
  margin-top: 20px;
  max-width: 420px;
}
.reviews-carousel {
  min-width: 0;
  touch-action: pan-y;
}
.reviews-track {
  display: grid;
  overflow: hidden;
  isolation: isolate;
}
.review-slide {
  grid-area: 1 / 1;
  margin: 0;
  padding: 0;
  opacity: 0;
  visibility: hidden;
  transform: translate3d(var(--review-offset, 14px), 0, 0);
  transition: opacity .36s ease, transform .44s var(--motion-ease), visibility .44s;
}
.review-slide.is-current {
  opacity: 1;
  visibility: visible;
  transform: translate3d(0, 0, 0);
  z-index: 1;
}
.review-slide .quote-mark {
  margin-bottom: 8px;
}
.review-slide blockquote {
  margin: 0 0 23px;
  font-size: clamp(1.1rem, 1.7vw, 1.45rem);
  line-height: 1.6;
  letter-spacing: -.025em;
  color: #e1e4ea;
  overflow-wrap: anywhere;
}
.review-slide figcaption {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: .875rem;
  color: #c8cbd3;
}
.review-source {
  color: #9399a5;
  font-size: .8rem;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
}
.review-source[href]:hover {
  color: #ff7175;
}
.review-rating {
  color: #f3797b;
  letter-spacing: .14em;
  font-size: .875rem;
  margin-bottom: 19px;
}
.reviews-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 28px;
  padding-top: 21px;
  border-top: 1px solid #383c45;
}
.reviews-position {
  display: flex;
  align-items: center;
  gap: 13px;
  font-size: .8rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: .07em;
}
.review-divider, #review-total {
  color: #858d9b;
}
.reviews-arrows {
  display: flex;
  gap: 10px;
}
.reviews-arrows button {
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #545b67;
  background: transparent;
  color: #e9ecf2;
  font-size: 1.3rem;
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.reviews-arrows button:active {
  transform: scale(.95);
}

@media (hover:hover) and (pointer:fine) {
  .service-card.reveal.visible:hover, .service-card.reveal.visible:focus-within {
    transform: translateY(-5px);
    border-color: #ec5255;
  }
  .button:hover > span[aria-hidden], .header-cta:hover > span[aria-hidden],
  .mobile-actions a:hover > span[aria-hidden], .service-foot a:hover > span[aria-hidden],
  .text-link:hover > span[aria-hidden] {
    transform: translate(3px, -3px);
  }
  .reviews-arrows button:hover {
    background: #282b32;
    border-color: #b5bcc8;
  }
}
@media (hover:none) {
  .service-card.reveal:hover {
    transform: none;
  }
  .service-card.reveal:active {
    transform: scale(.993);
  }
}
@media (max-width:760px) {
  .site-header.is-scrolled .header-inner {
    height: 68px;
  }
  .site-header.is-scrolled .brand {
    transform: scale(.94);
  }
  .service-peek-label {
    top: 15px;
    right: 15px;
  }
  .review-slide blockquote {
    font-size: 1.15rem;
  }
  .reviews-content {
    min-width: 0;
  }
}
@media (prefers-reduced-motion:reduce) {
  .reveal.waiting {
    opacity: 1;
    translate: none;
  }
  .has-depth .hero-picture img, .has-depth .diagnostics-media img,
  .service-card.reveal, .service-card.reveal:hover,
  .button, .button:hover, .button:active, .header-cta:active,
  .service-card img, .service-peek[aria-expanded=true] img,
  .service-card.reveal:active, .mobile-actions a:active,
  .review-slide {
    transform: none !important;
  }
}
