/* Specular CTA — mouse-proximity shine (static HTML + optional React twin) */
.btn.specular-btn,
button.specular-btn,
a.specular-btn{
  position:relative;isolation:isolate;overflow:hidden;z-index:0;
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  box-sizing:border-box;cursor:pointer;text-decoration:none;
  font:550 1rem/1.25 var(--font, system-ui, sans-serif);letter-spacing:-.01em;
  border:var(--spec-thickness,1px) solid var(--spec-line,#fff);
  border-radius:var(--spec-radius,18px);
  background:var(--spec-base,#525252);
  color:var(--spec-text,#f5f5f5);
  min-height:var(--spec-min-h,3rem);
  padding-block:var(--spec-pad-y,.8125rem);
  padding-inline:var(--spec-pad-x,1.5rem);
  transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s,border-color .3s;
  will-change:transform;
}
.btn.specular-btn .arw,
button.specular-btn .arw,
a.specular-btn .arw{position:relative;z-index:2;transition:transform .3s cubic-bezier(.22,1,.36,1)}
.btn.specular-btn:hover .arw,
button.specular-btn:hover .arw,
a.specular-btn:hover .arw{transform:translateX(4px)}
.specular-btn__label{position:relative;z-index:2}
.specular-btn__shine{
  position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:1;
  opacity:0;
  background:radial-gradient(
    circle calc(var(--spec-shine-size,10) * 1.2rem) at var(--mx,50%) var(--my,50%),
    rgba(255,255,255,calc(.55 * var(--spec-intensity,1))) 0%,
    rgba(255,255,255,calc(.12 * var(--spec-intensity,1) * var(--spec-tint-opacity,0))) 35%,
    transparent calc(var(--spec-shine-fade,40) * 1%)
  );
  filter:blur(var(--spec-blur,0px));
  transition:opacity var(--spec-speed,.35s) ease;
}
.specular-btn.is-active .specular-btn__shine,
.specular-btn:hover .specular-btn__shine{opacity:1}
.specular-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(0,0,0,.22);
}
.specular-btn:focus-visible{outline:2px solid var(--spec-line,#fff);outline-offset:3px}
.specular-btn--card{
  --spec-base:#525252;--spec-text:#f5f5f5;--spec-line:#ffffff;
  --spec-radius:18px;--spec-intensity:1;--spec-shine-size:10;--spec-shine-fade:40;
  --spec-thickness:1px;--spec-speed:.35s;--spec-blur:0px;--spec-tint-opacity:0;
  --spec-min-h:3.35rem;
  width:100%;
  justify-content:space-between;
  align-items:center;
  gap:.75rem;
  padding-inline:1.15rem;
  text-align:left;
}
.specular-btn--card .specular-btn__label{
  position:relative;z-index:2;flex:1 1 auto;min-width:0;
  text-align:left;line-height:1.25;
}
.specular-btn--card .arw{
  position:relative;z-index:2;flex:0 0 auto;margin-left:.35rem;
}
.route .specular-btn{margin:14px 0 0}
.cocard__foot{margin-top:auto;padding-top:22px;width:100%}
.cocard__more.specular-btn{margin:0}
.cmp__actions .specular-btn--card{margin:0}
.specular-btn--card .cmp__cta-stack{
  display:flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.2;width:100%;text-align:left;
}
.specular-btn--card .cmp__cta-verb{font-size:.78rem;font-weight:550;opacity:.88;letter-spacing:.01em}
.specular-btn--card .cmp__cta-path{font-size:.98rem;font-weight:650;letter-spacing:-.01em;line-height:1.15}

@media(prefers-reduced-motion:reduce){
  .specular-btn,.specular-btn__shine{transition:none!important}
  .specular-btn:hover{transform:none}
}
