
/* ServePro monochrome depth and scroll ambience */
:root{--sp-white:#fff;--sp-ink:#090909}
html{scroll-behavior:smooth}
body{overflow-x:hidden}
.sp-scroll-shade{position:fixed;inset:auto 0 0;height:76px;z-index:80;pointer-events:none;background:linear-gradient(to top,rgba(255,255,255,.24),rgba(255,255,255,.07) 35%,transparent);opacity:0;transition:opacity .45s ease}
body.sp-scrolled .sp-scroll-shade{opacity:1}
.sp-scroll-ball{position:fixed;left:0;top:0;z-index:79;pointer-events:none;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 30% 26%,#fff 0%,#dedede 35%,#999 75%,#555 100%);box-shadow:0 8px 15px #0007, inset -3px -4px 7px #0005;opacity:0;transform:translate3d(-100px,-100px,0)}
.sp-scroll-ball:before,.sp-scroll-ball:after{content:"";position:absolute;width:14px;height:25px;border:2px solid #222;border-radius:50%;top:1px;left:5px;transform:rotate(36deg)}
.sp-scroll-ball:after{left:12px;transform:rotate(-36deg)}
.sp-depth-ready :is(section,article,.card,.tile,.merch-card){transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.sp-depth-ready :is(.card,.tile,.merch-card){box-shadow:0 13px 34px rgba(0,0,0,.19),inset 0 1px rgba(255,255,255,.15)}
@media (hover:hover){.sp-depth-ready :is(.card,.tile,.merch-card):hover{transform:translateY(-5px);box-shadow:0 18px 42px #0005,0 0 0 1px #fff5}}
.sp-reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}
.sp-reveal.sp-visible{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sp-reveal{opacity:1;transform:none;transition:none}.sp-scroll-ball{display:none!important}.sp-depth-ready :is(section,article,.card,.tile,.merch-card){transition:none}}

/* V23 branded tennis-racket call to action */
.sp-racket-cta{position:fixed;right:18px;bottom:20px;width:178px;height:128px;z-index:1000;text-decoration:none;display:block;filter:drop-shadow(0 10px 15px #0009)}
.sp-racket-head{position:absolute;right:5px;bottom:24px;width:138px;height:96px;border:7px solid #101820;border-radius:50%;background:repeating-linear-gradient(0deg,transparent 0 12px,#ffffff9c 12px 13px),repeating-linear-gradient(90deg,#1874ba 0 12px,#e8f3ff 12px 13px);transform:rotate(-14deg);display:grid;place-items:center;box-shadow:inset 0 0 0 3px #fff,0 0 0 2px #fff}
.sp-racket-text{display:block;text-align:center;background:#081724e8;color:#fff;font:bold 12px/1.5 Arial,sans-serif;padding:6px;border-radius:12px;transform:rotate(14deg)}
.sp-racket-handle{position:absolute;bottom:2px;left:0;width:74px;height:13px;border:3px solid #111;background:repeating-linear-gradient(90deg,#171717 0 7px,#fff 7px 9px);border-radius:9px;transform:rotate(-35deg);transform-origin:right center}
.sp-scroll-ball{width:53px!important;height:53px!important;background:radial-gradient(circle at 28% 22%,#edff87 0%,#c4e92b 42%,#95b70c 79%,#526a08 100%)!important;box-shadow:inset -8px -10px 12px #2537008c,inset 3px 3px 7px #fff8,0 12px 16px #0008!important;opacity:1;z-index:1001;background-size:cover}
.sp-scroll-ball:before{content:''!important;position:absolute!important;inset:4px!important;width:auto!important;height:auto!important;border:0!important;border-radius:50%!important;background:url('../images/servepro-logo-transparent-black.png') center / 70% auto no-repeat!important;transform:none!important;top:4px!important;left:4px!important;opacity:.88}
.sp-scroll-ball:after{content:''!important;position:absolute!important;inset:0!important;width:auto!important;height:auto!important;left:0!important;top:0!important;border:3px solid #f4f6da!important;border-left-color:transparent!important;border-right-color:transparent!important;border-radius:50%!important;transform:rotate(-25deg)!important}
@media(max-width:520px){.sp-racket-cta{transform:scale(.82);transform-origin:bottom right;right:9px;bottom:8px}}

/* V24: detailed tennis frame, authentic string bed, curved ball seams */
.sp-racket-cta{width:195px;height:160px;right:17px;bottom:12px}
.sp-racket-head{width:142px;height:111px;right:10px;bottom:35px;border:8px solid #172333;border-radius:49% 49% 47% 47%;transform:rotate(-18deg);background:
repeating-linear-gradient(0deg,transparent 0 10px,rgba(242,249,255,.78) 10px 11px),
repeating-linear-gradient(90deg,#0b3558 0 10px,rgba(245,250,255,.83) 10px 11px),
#123f65;box-shadow:inset 0 0 0 3px #d7e8f5,inset 0 0 0 6px #0b1927,0 0 0 2px #050b12,0 12px 20px #0008}
.sp-racket-head:after{content:"";position:absolute;bottom:-18px;left:calc(50% - 10px);width:20px;height:22px;background:linear-gradient(90deg,#172333,#ddeaf4 45%,#172333);z-index:-1}
.sp-racket-handle{width:82px;height:17px;left:0;bottom:8px;transform:rotate(-47deg);border:3px solid #111b27;background:repeating-linear-gradient(110deg,#111a24 0 8px,#a6b6c3 8px 10px)}
.sp-racket-text{font-size:11px;background:#0b1b2deb;color:white;transform:rotate(18deg);padding:7px 5px;border:1px solid #d4e8f5}
.sp-scroll-ball{background:radial-gradient(circle at 30% 23%,#e8f99a,#c8e64c 38%,#a6c52b 75%,#667e17 100%)!important;box-shadow:inset -9px -10px 13px #293d1470,inset 3px 3px 6px #fff8,0 9px 18px #0009!important}
.sp-scroll-ball:after{border:0!important;border-radius:50%!important;transform:rotate(-24deg)!important;background:
radial-gradient(ellipse 44px 64px at -14px 27px,transparent 78%,#f2f3d7 81%,#e2e6ce 84%,transparent 87%),
radial-gradient(ellipse 44px 64px at 65px 27px,transparent 78%,#f2f3d7 81%,#e2e6ce 84%,transparent 87%)!important}
@media(max-width:520px){.sp-racket-cta{transform:scale(.78);right:5px;bottom:6px}}

/* V25 refined, scale-correct racket: original merchandise and logos untouched */
:root{--sp-brand-blue:#8fd9f5}
.sp-racket-cta{width:180px!important;height:205px!important;right:14px!important;bottom:10px!important;filter:drop-shadow(0 8px 12px #0008)!important}
.sp-racket-head{width:112px!important;height:148px!important;right:24px!important;bottom:46px!important;box-sizing:border-box!important;border:7px solid var(--sp-brand-blue)!important;border-radius:52% 52% 49% 49%!important;transform:rotate(-24deg)!important;background:repeating-linear-gradient(0deg,transparent 0 10px,#ffffff85 10px 11px),repeating-linear-gradient(90deg,#071827 0 10px,#ffffff85 10px 11px)!important;box-shadow:inset 0 0 0 2px #09141c,0 0 0 2px #071827,0 10px 18px #0007!important}
.sp-racket-head:after{bottom:-25px!important;left:calc(50% - 8px)!important;width:16px!important;height:28px!important;background:linear-gradient(90deg,#071827,var(--sp-brand-blue),#071827)!important}
.sp-racket-handle{width:79px!important;height:14px!important;left:1px!important;bottom:12px!important;transform:rotate(-59deg)!important;border:2px solid #071827!important;background:repeating-linear-gradient(90deg,#101820 0 7px,#ddd 7px 8px)!important}
.sp-racket-text{position:absolute!important;top:43px!important;left:-11px!important;width:134px!important;padding:0!important;background:none!important;border:0!important;border-radius:0!important;transform:rotate(24deg)!important;font:700 12px/1.2 Arial,sans-serif!important;letter-spacing:.02em!important;color:white!important;text-shadow:0 1px 4px #000,0 2px 7px #000!important;pointer-events:none}
.sp-scroll-ball{width:38px!important;height:38px!important;background:radial-gradient(circle at 30% 25%,#e6fa87 0%,#c9e64b 38%,#9fbc23 78%,#627d13 100%)!important;box-shadow:inset -5px -6px 8px #233b0b99,inset 2px 2px 4px #fff7,0 5px 12px #0009!important}
.sp-scroll-ball:before{content:''!important;position:absolute!important;inset:0!important;border-radius:50%!important;opacity:.45!important;background-image:repeating-radial-gradient(circle at 40% 40%,#fff7 0 .35px,transparent .65px 2px)!important;pointer-events:none!important}
.sp-scroll-ball:after{content:''!important;position:absolute!important;inset:4px!important;border:2px solid #e9ebcb!important;border-left-color:transparent!important;border-right-color:transparent!important;border-radius:50%!important;transform:rotate(35deg)!important;opacity:.65!important;pointer-events:none!important}
@media(max-width:520px){.sp-racket-cta{transform:scale(.74)!important;transform-origin:bottom right!important;right:4px!important;bottom:4px!important}}
