:root{
  --bsgm-ease:cubic-bezier(.22,.8,.25,1);
  --bsgm-fast:420ms;
  --bsgm-medium:680ms;
  --bsgm-slow:900ms;
}

html{scroll-behavior:smooth}

/* No-JS safe: elements only hide once JS has explicitly prepared them. */
.bsgm-motion-ready [data-bsgm-reveal]{
  opacity:0;
  will-change:transform,opacity,filter;
  transition:
    opacity var(--bsgm-medium) var(--bsgm-ease),
    transform var(--bsgm-medium) var(--bsgm-ease),
    filter var(--bsgm-medium) var(--bsgm-ease);
  transition-delay:var(--bsgm-delay,0ms);
}
.bsgm-motion-ready [data-bsgm-reveal="up"]{transform:translate3d(0,22px,0)}
.bsgm-motion-ready [data-bsgm-reveal="left"]{transform:translate3d(-24px,0,0)}
.bsgm-motion-ready [data-bsgm-reveal="right"]{transform:translate3d(24px,0,0)}
.bsgm-motion-ready [data-bsgm-reveal="scale"]{transform:scale(.975);filter:saturate(.92)}
.bsgm-motion-ready [data-bsgm-reveal].bsgm-in{
  opacity:1;
  transform:none;
  filter:none;
}

/* Hero/header load motion. */
.bsgm-motion-ready header[id*="global-header"],
.bsgm-motion-ready .bsgh-header,
.bsgm-motion-ready .header{
  animation:bsgm-header-in 520ms var(--bsgm-ease) both;
}
@keyframes bsgm-header-in{
  from{opacity:0;transform:translate3d(0,-10px,0)}
  to{opacity:1;transform:none}
}

.bsgm-motion-ready main h1{
  animation:bsgm-title-in 760ms var(--bsgm-ease) both;
}
@keyframes bsgm-title-in{
  from{opacity:0;transform:translate3d(0,24px,0);letter-spacing:-.02em}
  to{opacity:1;transform:none}
}

/* Premium hover motion rather than gimmicky movement. */
.bsgm-motion-ready main figure,
.bsgm-motion-ready main article,
.bsgm-motion-ready main [class*="card"]{
  transition:transform var(--bsgm-fast) var(--bsgm-ease),box-shadow var(--bsgm-fast) var(--bsgm-ease),border-color var(--bsgm-fast) ease;
}

@media (hover:hover) and (pointer:fine){
  .bsgm-motion-ready main figure:hover img,
  .bsgm-motion-ready main [class*="gallery"] figure:hover img,
  .bsgm-motion-ready main [class*="card"]:hover img{
    transform:scale(1.025);
  }
  .bsgm-motion-ready main figure img,
  .bsgm-motion-ready main [class*="gallery"] img,
  .bsgm-motion-ready main [class*="card"] img{
    transition:transform 720ms var(--bsgm-ease),filter 720ms var(--bsgm-ease);
    will-change:transform;
  }
  .bsgm-motion-ready main a[class*="btn"]:hover,
  .bsgm-motion-ready main a[class*="button"]:hover,
  .bsgm-motion-ready main button:not(.bsgh-menu-btn):hover,
  .bsgm-motion-ready .bsgh-header-cta:hover{
    transform:translate3d(0,-2px,0);
  }
}

.bsgm-motion-ready main a[class*="btn"],
.bsgm-motion-ready main a[class*="button"],
.bsgm-motion-ready main button,
.bsgm-motion-ready .bsgh-header-cta{
  transition:transform 240ms var(--bsgm-ease),background-color 240ms ease,border-color 240ms ease,color 240ms ease,box-shadow 240ms ease;
}

/* Form focus motion improves clarity without moving the form around. */
.bsgm-motion-ready input,
.bsgm-motion-ready textarea,
.bsgm-motion-ready select{
  transition:border-color 220ms ease,box-shadow 220ms ease,background-color 220ms ease;
}
.bsgm-motion-ready input:focus,
.bsgm-motion-ready textarea:focus,
.bsgm-motion-ready select:focus{
  outline:none;
  box-shadow:0 0 0 3px rgba(181,138,80,.18);
}

/* FAQs feel responsive when opened. */
.bsgm-motion-ready details > *:not(summary){
  animation:bsgm-detail-in 320ms var(--bsgm-ease) both;
}
@keyframes bsgm-detail-in{
  from{opacity:0;transform:translate3d(0,-6px,0)}
  to{opacity:1;transform:none}
}

/* Footer arrives subtly rather than snapping in. */
.bsgm-motion-ready #bsgf-global-footer.bsgm-in,
.bsgm-motion-ready footer.bsgm-in{
  transition:opacity 700ms var(--bsgm-ease),transform 700ms var(--bsgm-ease);
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
  .bsgm-motion-ready [data-bsgm-reveal]{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
  }
}
