/* Ruhige Ankunft, direkte Reaktion. Bestehende Layouts und Inhalte bleiben stehen. */
.brand-refresh {
  --motion-response:cubic-bezier(.28,.11,.32,1);
  --motion-travel:cubic-bezier(.45,0,.1,1);
}
.brand-refresh :is(.button,.page-subnav a,.select-trigger) {
  transition:background-color 180ms var(--motion-response),color 180ms var(--motion-response),border-color 180ms var(--motion-response),box-shadow 180ms var(--motion-response),transform 180ms var(--motion-response);
}
.brand-refresh :is(.button,.page-subnav a,.select-trigger):active:not(:disabled) {
  transform:scale(.98);
  transition-duration:80ms;
}
.brand-refresh .text-link {transition:color 180ms var(--motion-response);}
.brand-refresh .text-link:hover {gap:16px;}
.brand-refresh .text-link > span {transition:translate 200ms var(--motion-response);}
@media(hover:hover) and (pointer:fine) {
  .brand-refresh .text-link:hover > span {translate:2px -2px;}
}
.brand-refresh :is(.faq-list summary,.trust-models summary,.pricing-details summary) > .icon {
  transition:transform 240ms var(--motion-response);
}
.brand-refresh .document-line {transition:background-color 180ms var(--motion-response);}

/* Native Details behalten Tastatur, Suche und ihren semantischen Zustand.
   Nur der Inhaltsbereich öffnet seinen Platz; in älteren Browsern sofort. */
@supports (interpolate-size:allow-keywords) and selector(::details-content) {
  .brand-refresh :is(.faq-list details,.trust-models,.pricing-details)::details-content {
    interpolate-size:allow-keywords;
    block-size:0;
    overflow:clip;
    opacity:0;
    transition:block-size 320ms var(--motion-travel),content-visibility 320ms allow-discrete,opacity 100ms var(--motion-response);
  }
  .brand-refresh :is(.faq-list details,.trust-models,.pricing-details)[open]::details-content {
    block-size:auto;
    opacity:1;
    transition:block-size 320ms var(--motion-travel),content-visibility 320ms allow-discrete,opacity 180ms var(--motion-response) 70ms;
  }
}

/* Der Popup bleibt am auslösenden Feld verankert, auch bei Öffnung nach oben. */
@supports (transition-behavior:allow-discrete) {
  .brand-refresh .select-popup {
    opacity:1;
    transform:scale(1);
    transform-origin:50% 0;
    transition:opacity 160ms var(--motion-response),transform 200ms var(--motion-response),display 200ms allow-discrete;
  }
  .brand-refresh .opens-up .select-popup {transform-origin:50% 100%;}
  .brand-refresh .select-popup[hidden] {opacity:0;transform:scale(.985);}
  @starting-style {
    .brand-refresh .select-popup:not([hidden]) {opacity:0;transform:scale(.985);}
  }
  @media(max-width:1000px) {
    .brand-refresh .main-nav {
      opacity:0;
      translate:0 -6px;
      transition:opacity 160ms var(--motion-response),translate 220ms var(--motion-response);
    }
    .brand-refresh .main-nav.is-open {opacity:1;translate:0 0;}
    @starting-style {
      .brand-refresh .main-nav.is-open {opacity:0;translate:0 -6px;}
    }
  }
}

/* Keine Bewegung bei entsprechendem Systemwunsch, auch während eines Wechsels.
   WAAPI-Effekte beendet der gleichnamige Listener in motion.js sofort. */
@media(prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto;}
  .brand-refresh *,.brand-refresh *::before,.brand-refresh *::after,
  .brand-refresh :is(.faq-list details,.trust-models,.pricing-details)::details-content {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
  .brand-refresh :is(.button,.page-subnav a,.select-trigger):active:not(:disabled) {transform:none;}
  .brand-refresh .text-link:hover > span {translate:none;}
  .brand-refresh .main-nav {translate:none;}
}
