/* Small, state-driven feedback only. No entrance animations or scene transforms. */
:root { --pp-feedback-duration: 200ms; --pp-feedback-ease: cubic-bezier(.2,.7,.3,1); }

/* Existing underlines stay visible; only the directional glyph travels. */
:is(a.link-arrow, a.pp-editorial, a.pp-action, a.pp-action-text, a.concept) .pp-arrow-icon {
  transition: transform var(--pp-feedback-duration) var(--pp-feedback-ease);
}
:is(a.link-arrow, a.pp-editorial, a.pp-action, a.pp-action-text, a.concept):focus-visible .pp-arrow-icon {
  transform: translate(2px,-2px);
}
:is(a.link-arrow, a.pp-editorial, a.concept):focus-visible,
.faq summary:focus-visible { outline:2px solid #507c94;outline-offset:5px; }

/* Refine the existing offer halo, rather than adding a second lift or shadow. */
.offers-grid .offer::before {
  transform:none;
  transition:opacity var(--pp-feedback-duration) var(--pp-feedback-ease);
}
.offers-grid .offer:hover::before { opacity:0;transform:none; }
.offers-grid .offer:focus-within::before { opacity:1; }
.service-card { transition:background-color var(--pp-feedback-duration) ease; }
.service-card:hover { background:transparent; }
.service-card:focus-within { background:rgba(200,234,255,.2); }
.concept .concept-image span { transition:none; }
.concept:hover .concept-image span { transform:none; }

/* Keep native details semantics and immediate content access.
   The vertical stroke folds away; the horizontal stroke remains a minus. */
.faq summary { position:relative;min-height:44px;align-items:center;padding-right:40px; }
.faq summary::before,.faq summary::after {
  content:"";position:absolute;right:4px;top:50%;width:14px;height:1px;
  background:currentColor;pointer-events:none;
}
.faq summary::before { transform:rotate(90deg);transition:transform var(--pp-feedback-duration) var(--pp-feedback-ease); }
.faq details[open] summary::after { content:""; }
.faq details[open] summary::before { transform:rotate(0deg); }

@media (hover:hover) and (pointer:fine) {
  :is(a.link-arrow, a.pp-editorial, a.pp-action, a.pp-action-text, a.concept):hover .pp-arrow-icon { transform:translate(2px,-2px); }
  .offers-grid .offer:hover::before { opacity:1; }
  .service-card:hover { background:rgba(200,234,255,.2); }
}
@media (prefers-reduced-motion:reduce) {
  :is(a.link-arrow, a.pp-editorial, a.pp-action, a.pp-action-text, a.concept) .pp-arrow-icon,
  .offers-grid .offer::before,.service-card,.faq summary::before { transition:none; }
  :is(a.link-arrow, a.pp-editorial, a.pp-action, a.pp-action-text, a.concept):is(:hover,:focus-visible) .pp-arrow-icon { transform:none; }
}
