
/* Positions driven ONLY by CSS variables from PHP */
.csu-wrap{position:fixed;z-index:var(--csu-z)}
@media (max-width: 782px){
  .csu-wrap.pm-center_bottom{left:calc(50% + var(--csu-mx));bottom:var(--csu-mb);transform:translateX(-50%)}
  .csu-wrap.pm-left_bottom{left:calc(16px + var(--csu-mx));bottom:var(--csu-mb)}
  .csu-wrap.pm-right_bottom{right:calc(16px - var(--csu-mx));bottom:var(--csu-mb)}
  .csu-wrap.pm-center_middle{left:50%;top:50%;transform:translate(-50%,-50%)}
  .csu-wrap.pm-none{display:none}
  .csu-wrap[data-csu-full="1"] .csu-link{width:calc(100vw - 24px)}
}
@media (min-width: 783px){
  .csu-wrap.pd-center_bottom{left:calc(50% + var(--csu-dx));bottom:var(--csu-db);transform:translateX(-50%)}
  .csu-wrap.pd-left_bottom{left:calc(24px + var(--csu-dx));bottom:var(--csu-db)}
  .csu-wrap.pd-right_bottom{right:calc(24px - var(--csu-dx));bottom:var(--csu-db)}
  .csu-wrap.pd-center_middle{left:50%;top:50%;transform:translate(-50%,-50%)}
  .csu-wrap.pd-none{display:none}
}

/* Button look */
.csu-link{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;background:var(--csu-b);color:var(--csu-t);
border-radius:var(--csu-r);padding:.9rem 1.2rem;font-weight:700;
transition:transform .15s ease, background-color .15s ease, color .15s ease, box-shadow .15s ease;
box-shadow:0 10px 28px rgba(0,0,0,.18)}
.csu-link:hover{background:var(--csu-bh);color:var(--csu-th);transform:translateY(-1px)}

/* Shadow presets */
.shadow-none .csu-link{box-shadow:none}
.shadow-soft .csu-link{box-shadow:0 6px 18px rgba(0,0,0,.12)}
.shadow-medium .csu-link{box-shadow:0 10px 28px rgba(0,0,0,.18)}
.shadow-strong .csu-link{box-shadow:0 14px 40px rgba(0,0,0,.25)}

/* Icon */
.csu-link .csu-icon{width:var(--csu-is);height:var(--csu-is);display:inline-block;background:var(--csu-ic);
mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="white" d="M16 2C8.269 2 2 8.269 2 16s6.269 14 14 14c2.57 0 4.974-.703 7.032-1.918L30 30l-1.92-4.95A13.97 13.97 0 0 0 30 16C30 8.269 23.731 2 16 2zm0 24c-5.514 0-10-4.486-10-10S10.486 6 16 6s10 4.486 10 10-4.486 10-10 10zm5-7.5c-.326-.172-2.008-1.008-2.322-1.119-.314-.111-.517-.172-.737.172-.22.345-.84 1.104-1.033 1.326-.194.223-.369.245-.691.081-.321-.164-1.366-.493-2.62-1.571-.964-.87-1.604-1.952-1.8-2.28-.196-.328-.025-.497.14-.66.154-.151.342-.406.506-.623.164-.217.23-.373.345-.622.115-.25.064-.462-.025-.637-.089-.176-.78-1.871-1.073-2.565-.294-.694-.592-.63-.78-.63-.201 0-.431-.03-.661-.03-.23 0-.604.087-.921.43-.317.344-1.211 1.183-1.211 2.885s1.24 3.35 1.413 3.579c.173.228 2.402 3.667 5.82 5.147 3.418 1.48 3.418.987 4.033.924.615-.062 2.007-.813 2.292-1.599.285-.785.285-1.458.201-1.6-.085-.142-.31-.223-.636-.395z"/></svg>');
-webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="white" d="M16 2C8.269 2 2 8.269 2 16s6.269 14 14 14c2.57 0 4.974-.703 7.032-1.918L30 30l-1.92-4.95A13.97 13.97 0 0 0 30 16C30 8.269 23.731 2 16 2zm0 24c-5.514 0-10-4.486-10-10S10.486 6 16 6s10 4.486 10 10-4.486 10-10 10zm5-7.5c-.326-.172-2.008-1.008-2.322-1.119-.314-.111-.517-.172-.737.172-.22.345-.84 1.104-1.033 1.326-.194.223-.369.245-.691.081-.321-.164-1.366-.493-2.62-1.571-.964-.87-1.604-1.952-1.8-2.28-.196-.328-.025-.497.14-.66.154-.151.342-.406.506-.623.164-.217.23-.373.345-.622.115-.25.064-.462-.025-.637-.089-.176-.78-1.871-1.073-2.565-.294-.694-.592-.63-.78-.63-.201 0-.431-.03-.661-.03-.23 0-.604.087-.921.43-.317.344-1.211 1.183-1.211 2.885s1.24 3.35 1.413 3.579c.173.228 2.402 3.667 5.82 5.147 3.418 1.48 3.418.987 4.033.924.615-.062 2.007-.813 2.292-1.599.285-.785.285-1.458.201-1.6-.085-.142-.31-.223-.636-.395z"/></svg>') no-repeat center / contain;
}
.csu-link:hover .csu-icon{background:var(--csu-ich)}
.csu-icon-right .csu-link{flex-direction:row-reverse}
.csu-btn.csu-small .csu-link{padding:.6rem .9rem}
.csu-btn.csu-medium .csu-link{padding:.8rem 1.1rem}
.csu-btn.csu-large .csu-link{padding:1rem 1.25rem}
.csu-text{font-size:var(--csu-ts)}

/* Mobile: hide label if disabled */
@media (max-width: 782px){
  html:not(.csu-show-label) .csu-text{display:none}
}

/* Animations */
@media (prefers-reduced-motion: no-preference){
  .anim-pulse .csu-link{animation:csuPulse 1.8s ease-in-out infinite}
  .anim-bounce .csu-link{animation:csuBounce 1.4s ease-in-out infinite}
  .anim-wiggle .csu-link{animation:csuWiggle .9s ease-in-out infinite}
  .anim-glow .csu-link{animation:csuGlow 2s ease-in-out infinite}
  .anim-infinite .csu-link{animation-iteration-count: infinite}
}
@keyframes csuPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@keyframes csuBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes csuWiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(2.5deg)}75%{transform:rotate(-2.5deg)}}
@keyframes csuGlow{0%,100%{box-shadow:0 0 0 rgba(37,211,102,0)}50%{box-shadow:0 0 22px rgba(37,211,102,.55)}}
